İçeriğe geç

Hatalar, sınırlar ve idempotency

Hatalar JSON gövdede detail alanıyla döner. Çoğu hata kısa bir makine kodudur:

{"detail": "insufficient_scope"}

Doğrulama hatalarında detail, alan listesidir:

{"detail": [{"type": "missing", "loc": ["body", "items", 0, "urun_adi"], "msg": "Field required"}]}

Paket limiti aşılırsa detail okunur bir mesaj taşır:

{"detail": [{"code": "limit_asildi", "limit": "gunluk_giden_arama", "deger": 200, "message": "…"}]}
KoddetailAnlamı
401api_key_requiredAuthorization: Bearer … yok (yanıtta WWW-Authenticate: Bearer)
401invalid_api_keyAnahtar geçersiz ya da iptal edilmiş
403insufficient_scopeAnahtarda gereken kapsam yok
403publishable_key_not_allowedYayınlanabilir anahtar bu uçta kullanılamaz
404not_foundKayıt yok ya da paketinizde bu özellik kapalı
409idempotency_in_progressAynı Idempotency-Key ile ilk istek hâlâ işleniyor
413payload_too_largeGövde 5 MB’ı aşıyor
422duplicate_key: <id>Aynı kimlik bir istekte iki kez
422idempotency_key_reusedAynı Idempotency-Key farklı bir istekle kullanıldı
422invalid_idempotency_keyAnahtar 255 karakterden uzun
422idempotency_key_requiredPOST /api/v1/aramalar anahtarsız gönderildi
422unknown_purpose, invalid_phone, invalid_status, invalid_range, unknown_filterUca özel doğrulama
422limit_asildi (liste)Paket limiti
429rate_limitedHız sınırı; Retry-After başlığındaki saniye kadar bekleyin
5xx—Geçici hata; aynı Idempotency-Key ile tekrar deneyin

Anahtar başına dakikada 120 istek (sabit pencere). Aşılırsa 429 rate_limited ve pencerenin bitmesine kalan saniyeyi veren Retry-After başlığı döner. Butonun tarayıcı uçlarında sayaç yalnız izinli alan adından gelen isteklerde artar; başarısız buton denemeleri ayrıca IP başına dakikada 20 ile sınırlıdır (429 too_many_failures).

  • Gövde en çok 5 MB (413 payload_too_large).
  • Toplu yazmada istek başına 1–1000 kayıt.

Yazma isteklerinde (POST, PUT, PATCH, DELETE) Idempotency-Key başlığı gönderirseniz:

  • Yanıt 24 saat saklanır. Aynı anahtar ve aynı istek (yöntem, yol, sorgu ve gövde) aynı yanıtı döner; yanıtta Idempotent-Replayed: true başlığı bulunur.
  • Aynı anahtar farklı bir istekle kullanılırsa 422 idempotency_key_reused.
  • İlk istek sürerken aynı anahtarla gelen ikinci istek 409 idempotency_in_progress alır.
  • 5xx yanıtlar ve 401, 403, 413, 429 saklanmaz; bunlardan sonra aynı anahtarla tekrar deneyebilirsiniz.
  • Anahtar, API anahtarınıza özeldir; en çok 255 karakter.

Listeleme uçları imleç (cursor) kullanır: yanıttaki next_cursor’ı sonraki istekte cursor olarak gönderin. limit 1–100 (varsayılan 50). Talepler ve çağrılar artımlıdır (eskiden yeniye; boş sayfada imleç korunur), sepetler yeniden eskiye sıralanır.