# İmleçle listeleme

siparis.app liste uçları `{data, has_more, next_cursor}` zarfı verir. API temel adresi `https://api.siparis.app/v1`; Bearer anahtarı ve okunan kaynağın kapsamı gerekir. Varsayılan `limit=50`, en büyük `limit=100`; offset veya toplam kayıt sayısı yoktur.

İlk çağrıda `cursor` göndermeyin. Sonraki sayfada `next_cursor` değerini çözmeden/değiştirmeden gönderin. Kaynak, bağlantı, kapsamlar, marka ve süzgeçler aynı kalmalıdır. Anahtar döndürmek aynı bağlantının imlecini bozmaz. URL kodlaması için curl `--data-urlencode`, Python `urlencode`, TypeScript `URLSearchParams` kullanın.

```typescript
// Node.js 22+; SIPARIS_API_KEY sunucu ortamında tanımlı olmalı.
const base = process.env.SIPARIS_API_URL ?? "https://api.siparis.app/v1";
let cursor: string | null = null;
do {
  const query = new URLSearchParams({ limit: "100" });
  if (cursor) query.set("cursor", cursor);
  const response = await fetch(`${base}/orders?${query}`, {
    headers: { Authorization: `Bearer ${process.env.SIPARIS_API_KEY}` },
    signal: AbortSignal.timeout(30_000),
  });
  if (!response.ok) throw new Error(`${response.status}: ${await response.text()}`);
  const page = await response.json();
  for (const order of page.data) console.log(order.id, order.total, order.currency);
  cursor = page.has_more ? page.next_cursor : null;
} while (cursor);
```

Bu örnek anlık sipariş listesini okur; üretimde [hız ve tekrar kurallarını](https://developer.siparis.app/hiz-siniri) uygulayın. Kaynak listesi `has_more=false`, `next_cursor=null` ile biter. **Olay akışı farklıdır:** son sayfanın imleci kalır, bekledikten sonra aynı imleçle yeni olaylar okunur; boş sayfada `has_more=true` olabilir.

Sipariş/müşteri sırası varsayılan olarak son değişiklikten ileri gider (`sort=updated_at`). En yeni eklenen kaydı başta görmek için `sort=-created_at` gönderin. Eşit zamanlı kayıtlar kimlikle sıralanır. Sayfalar arasında `sort` değişirse eski imleç `400 invalid_cursor` verir; imleçsiz yeni liste başlatın. Stok seviyesi sırası depo/seçenek, marka fiyatı sırası marka/ürün/seçenek, webhook listeleri en yeniden eskiye şeklindedir. Diğer katalog/stok kaynakları kayıt sırasındadır. Liste sayfaları tek bir anı dondurmaz; kalıcı aktarım için [İlk eşitleme](https://developer.siparis.app/ilk-esitleme) kullanın.

Zaman süzgeçlerinde başlangıç dahil, bitiş hariçtir; saat dilimi zorunludur. Örneğin Türkiye’de 16 Ekim gününü okumak için `created_at_from=2026-10-16T00:00:00+03:00`, `created_at_to=2026-10-17T00:00:00+03:00` gönderin. `archived=true` yalnız arşivi değil, açık kayıtlarla birlikte arşivi de kapsar.
