Rate limits
Tier başı API cap'leri, header'lar, retry policy ve canlı kalan sayıyı nereden okuyacağın.
Rate limiting org başı ve gateway'de uygulanır. Üç kol noktası: dakika başı request, gün başı request ve endpoint başı uzmanlaşma (örn. generation okumalardan daha kısıtlı).
Tier başı default'lar
| Tier | Req/dk | Req/gün | Eşzamanlı generation |
|---|---|---|---|
| Free | 60 | 5.000 | 1 |
| Pro | 600 | 50.000 | 5 |
| Team | 3.000 | 250.000 | 25 |
| Enterprise | custom | custom | custom |
Generation endpoint'leri (POST /v1/personas,
POST /v1/personas/{id}/refine, POST /v1/personas/{id}/fork)
dakika başı cap'ten ayrı olarak concurrent-generation bütçesini
yakar. Okumalar (GET *) yakmaz.
Header'lar
Her response taşır:
X-RateLimit-Limit: <dakika başı cap>
X-RateLimit-Remaining: <mevcut pencerede kalan>
X-RateLimit-Reset: <pencere reset olduğunda Unix timestamp>
429'da, ek olarak:
Retry-After: 12
(bir sonraki request'in izinli olmasına saniye)
Endpoint'e özgü cap'ler
Bazı endpoint'lerin upstream LLM provider'ları korumak için daha sıkı bireysel bütçeleri var:
| Endpoint ailesi | Pro cap |
|---|---|
POST /v1/personas (generation) | 60/saat, 5 concurrent |
POST /v1/personas/{id}/refine | 120/saat |
POST /v1/chat/sessions/{id}/messages | 600/dk (genel cap'e sayar) |
POST /v1/personas/{id}/audit | 300/saat |
Tier başı cap çarpanları: Free × 0.1, Pro × 1, Team × 5, Enterprise custom.
Client-tarafı backpressure
429'u bekleme. SDK'lar her çağrıdan sonra X-RateLimit-Remaining'i
okur; reset'e > 30 saniyeyle cap'in %10'unun altındaysan, yavaşla.
SDK custom backpressure için bir callback açar:
const client = new Moonborn({
apiKey: process.env.MOONBORN_API_KEY,
onRateLimitNearCap: ({ remaining, resetIn }) => {
if (remaining < 50) setMyOwnBackpressure(resetIn);
},
});Kota vs rate limit
Bunlar farklı. Rate limit throughput'u korumak için dakika başı /
gün başı şekillendirilmiştir. Kota belirli operasyonlarda
tier-bağlı aylık cap (örn. "Pro'da ayda 100 generation"). Kota cap'i
quota_exceeded (429) döner; rate limit rate_limited (429) döner.
Aynı status, envelope'da farklı code.
Enterprise
Sözleşme üzerinden org başı custom cap'ler. api.rate_limit.*
config item'ları üzerinden konfigüre edilebilir (Owner role,
sadece Enterprise).
Dürüst kapsam
Rate limit'ler sistemi korur; uygulamanın UX'ini şekillendirmez. Kodunda buffer, queue ve retry yap; 429'u istisnai değil, rutin ele al.