PushizoDocs
API referansı

Hız sınırları ve kota

Plan bazlı API istek hızı (api_rps), X-RateLimit başlıkları, 429 ve Retry-After davranışı, uç başına özel sınırlar, nginx IP sınırları, plan kotaları ve SDK yeniden deneme kuralları.

Pushizo iki katmanda sınır uygular: uygulama içi token kovası (API anahtarı/aktör başına, Redis) ve kenar katmanında IP bazlı nginx sınırı. Plan kotaları (abone, aylık mesaj, app, üye) ayrı bir mekanizmadır.

Plan bazlı istek hızı

API anahtarıyla yapılan isteklerde kova kapasitesi planın api_rps değeridir (saniyede dolar):

Planapi_rpsAboneMesaj / ayAppÜyeSaklama
Free2010.000100.0001330 gün
Starter10050.0001.000.00031090 gün
Growth500500.00010.000.0001050365 gün
Enterprise2.000sınırsızsınırsızsınırsızsınırsız730 gün

Değerler plan matrisinden okunur (planlar ve kota); kendi kurulumunuzda plan tanımları değiştirilebilir. Bazı uçlar kendi daha dar sınırını taşır (ör. kişisel veri indirme 5 istek / 5 dk, SDK hata raporları, kayıt/giriş).

Yanıt başlıkları

Her yanıt şu başlıkları taşır:

BaşlıkAnlam
X-RateLimit-LimitKova kapasitesi (izin verilen ani istek sayısı)
X-RateLimit-RemainingKovada kalan hak
X-RateLimit-ResetKova tamamen dolana (429 ise yeniden denenebilene) kadar saniye

Aşımda:

HTTP/1.1 429 Too Many Requests
Retry-After: 2
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 2

{ "error": { "code": "HS_RATE_LIMITED", "message": "…", "details": { "retry_after_seconds": 2 }, "request_id": "req_…" } }

Kenar (nginx) IP sınırları

Üretim yığınındaki nginx, kaynak IP başına ek sınır uygular (limit_req, aşımda 429):

BölgeYollarHızBurst
api_ip/v1/*200 r/s400
sdk_ip/sdk/v1/*60 r/s120
auth_ipkayıt/giriş/parola uçları5 r/s10

Vekil arkasında gerçek IP için TRUST_PROXY yapılandırılır (XFF sahteciliğiyle sınır ya da IP izin listesi atlatılamaz).

Plan kotaları

Kota aşımında 429 HS_QUOTA_EXCEEDED (details.metric, limit, used); özellik planda yoksa 403 HS_PLAN_FEATURE_REQUIRED (details.feature, details.plan). Kullanım: GET /v1/organization/usage ve dashboard Faturalama → Kullanım. Deneme süresi ve askıya alma kuralları: planlar ve kota.

Yeniden deneme önerileri

  • 429 ve 5xx için Retry-After/X-RateLimit-Reset kadar bekleyip üstel geri çekilme + jitter ile yeniden deneyin; 4xx (429 hariç) yeniden denenmez.
  • Sunucu SDK'ları bunu otomatik yapar (maxRetries, varsayılan 3) ve idempotent işlemlerde aynı Idempotency-Key'i kullanır.
  • Toplu işlemler için uçların toplu biçimlerini kullanın: POST /v1/apps/{app_id}/events (olay dizisi), target.include_external_ids (≤ 2000), CSV içe aktarma; tek tek çağrı yerine users.upsert + subscriptions dizisi.
  • Liste uçlarında limit en fazla 200; sayfalama için cursor (sayfalama).
  • Webhook ile olayları almak, durum sorgulamak için yoklama yapmaktan daha verimlidir (webhook'lar).

Bu sayfada