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

# Sayfalama ve arama

> Liste endpoint'lerinde sayfa sayfa okuma ve arama.

Kayıt sayısı büyüyebilen liste endpoint'leri (ör. [cari listesi](/tr/v1/customers/list)) sonuçları sayfalı döner.

## Parametreler

<ParamField query="page" type="integer" default="1">
  Sayfa numarası, 1'den başlar. 1'den küçük değerler 1 kabul edilir.
</ParamField>

<ParamField query="pageSize" type="integer" default="50">
  Sayfadaki kayıt sayısı, en fazla **50**. 1'den küçük ya da 50'den büyük değerler 50 kabul edilir.
</ParamField>

<ParamField query="search" type="string">
  Aranacak metin. Cari listesinde cari adı, cari kodu ve vergi numarasında "içerir" araması yapılır.
</ParamField>

## Yanıt

<ResponseField name="Data.Page" type="integer">Dönen sayfa numarası.</ResponseField>
<ResponseField name="Data.PageSize" type="integer">Uygulanan sayfa boyutu.</ResponseField>
<ResponseField name="Data.TotalCount" type="integer">Filtreye uyan toplam kayıt sayısı.</ResponseField>
<ResponseField name="Data.Items" type="array">Bu sayfadaki kayıtlar.</ResponseField>

Toplam sayfa sayısı: `ceil(TotalCount / PageSize)`.

## Tüm kayıtları okumak

<CodeGroup>
  ```javascript Node.js theme={null}
  async function getAllCustomers(client) {
    const customers = [];
    let page = 1;

    while (true) {
      const { Data } = await client.get(`customers?page=${page}&pageSize=50`);
      customers.push(...Data.Items);

      if (page * Data.PageSize >= Data.TotalCount) break;
      page++;
    }

    return customers;
  }
  ```

  ```python Python theme={null}
  def get_all_customers(session):
      customers, page = [], 1
      while True:
          data = session.get(f"{BASE_URL}/customers", params={"page": page, "pageSize": 50}).json()["Data"]
          customers.extend(data["Items"])
          if page * data["PageSize"] >= data["TotalCount"]:
              break
          page += 1
      return customers
  ```
</CodeGroup>

<Note>
  Liste sayfalar arasında gezinirken kayıt eklenir ya da silinirse bir kayıt iki kez görülebilir ya da atlanabilir. Kayıtları `Id` ile tekilleştirin.
</Note>

Alt kayıt listeleri (adresler, telefonlar vb.) bir cariye ait olduğu için sayfalanmaz ve tüm kayıtları tek seferde döner.
