> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flextell.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Filtreleme, Sıralama, Arama

> Liste endpoint'lerinde yaygın olarak kullanılan ortak sorgu parametreleri.

Flextell'in tüm liste uçları benzer bir sorgu parametresi dilini paylaşır. Kaynaklara özgü ekstra filtreler olsa da, aşağıdaki parametreler **tüm liste uçlarında** geçerlidir.

## Ortak parametreler

<ParamField query="search" type="string">
  Serbest metin araması. Kaynağa göre farklı alanlarda (isim, telefon, başlık, vb.) tam-metin araması yapar.
</ParamField>

<ParamField query="sort_by" type="string">
  Sıralama yapılacak alan. İzin verilen değerler kaynağa göre değişir; aşağıdaki tabloya bakın.
</ParamField>

<ParamField query="sort_order" type="enum" default="desc">
  Sıralama yönü: `asc` veya `desc`.
</ParamField>

<ParamField query="trashed" type="boolean" default="false">
  `true` gönderirseniz soft-delete edilmiş kayıtlar da yanıta dâhil olur. Soft-delete destekleyen kaynaklarda kullanılabilir.
</ParamField>

## Kaynaklara özgü filtreler

Her liste uç'unun desteklediği filtreleri [API Referansı](/api-reference)'ndan doğrulayın. İşte en sık kullanılanların bir özeti:

### `GET /v1/customers`

| Parametre | Tür     | Açıklama                                                                         |
| --------- | ------- | -------------------------------------------------------------------------------- |
| `search`  | string  | Ad, soyad, telefon, e-posta içinde arama                                         |
| `sort_by` | enum    | `first_name`, `last_name`, `date_of_birth`, `gender`, `created_at`, `updated_at` |
| `gender`  | enum    | `male`, `female`, `other`                                                        |
| `min_age` | integer | Minimum yaş                                                                      |
| `max_age` | integer | Maksimum yaş                                                                     |
| `user_id` | integer | Kayıtlı olduğu personel                                                          |

### `GET /v1/appointments`

| Parametre     | Tür       | Açıklama                                           |
| ------------- | --------- | -------------------------------------------------- |
| `search`      | string    | Hasta adı, doktor adı, tedavi başlığı içinde arama |
| `sort_by`     | enum      | `starts_at`, `ends_at`, `created_at`, `updated_at` |
| `from`        | date-time | `starts_at >= from`                                |
| `to`          | date-time | `starts_at <= to`                                  |
| `doctor_id`   | integer   | Belirli bir doktora filtrele                       |
| `customer_id` | integer   | Belirli bir hastaya filtrele                       |
| `status`      | enum      | Randevu durumu                                     |

### `GET /v1/conversations`

| Parametre      | Tür    | Açıklama                     |
| -------------- | ------ | ---------------------------- |
| `search`       | string | Hasta adı, son mesaj içeriği |
| `channel_type` | enum   | `whatsapp`, `telegram`       |

<Note>
  Tüm uç'ların tam parametre listesi için [API Referansı](/api-reference) sekmesine bakın. Şema ve örnekler her endpoint için otomatik üretilir.
</Note>

## Örnek: karmaşık bir sorgu

Bu ay yaratılmış, kadın ve 30-40 yaş arası hastaları `created_at`'e göre azalan sırada listeleyin:

```bash theme={null}
curl --request GET \
  --get "https://dev.flextell.ai/api/v1/customers" \
  --header "Authorization: Bearer $TOKEN" \
  --header "X-Tenant: 12" \
  --data-urlencode "gender=female" \
  --data-urlencode "min_age=30" \
  --data-urlencode "max_age=40" \
  --data-urlencode "sort_by=created_at" \
  --data-urlencode "sort_order=desc" \
  --data-urlencode "per_page=50"
```

## Tarih formatı

Tarih-saat parametreleri **ISO 8601** biçiminde beklenir. Mümkünse UTC offset'i ekleyin:

```
2026-04-19T09:00:00+03:00
```

Sadece tarih alanları için: `2026-04-19`.

## Sıralama kuralı

* `sort_by` için desteklenmeyen bir alan gönderirseniz `422 Unprocessable Entity` alırsınız.
* `sort_order` yalnızca `asc` veya `desc` değerlerini kabul eder.
* Varsayılan sıralama genellikle `created_at desc`'tir; her uçtaki ayar için referansa bakın.
