Hız Sınırlama (Rate Limit)
API'yi aşırı yüklenmeye karşı korumak için istek sayısı dakika bazında sınırlanır. Sınır, kayan pencere (sliding window) yöntemiyle hesaplanır.
Kotalar
| Kova (bucket) | Varsayılan limit | Kapsam |
|---|---|---|
| Varsayılan | 60 istek / dakika | Çoğu uç nokta |
services_status_300rpm | 300 istek / dakika | GET /services/{id}/status (yüksek frekanslı polling) |
services_changes_120rpm | 120 istek / dakika | Mutasyon uç noktaları (power, rebuild, upgrade, password) |
Yanıt Başlıkları
Her yanıtta güncel kota bilgisi döner:
| Başlık | Anlamı |
|---|---|
X-RateLimit-Limit | Dakikadaki toplam kota |
X-RateLimit-Remaining | Kalan istek sayısı |
X-RateLimit-Reset | Kotanın yenileneceği Unix zaman damgası |
Kota Aşımı (429)
Kota aşıldığında 429 Too Many Requests döner ve Retry-After başlığı kaç
saniye beklemeniz gerektiğini bildirir:
HTTP/1.1 429 Too Many Requests
Retry-After: 42
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 1785000000
{
"success": false,
"error": {
"code": "rate_limited",
"message": "İstek limiti aşıldı. Lütfen daha sonra tekrar deneyin."
},
"meta": { "trace_id": "...", "timestamp": "..." }
}
Öneriler
429alırsanızRetry-Aftersüresi kadar bekleyip üstel geri çekilme (exponential backoff) ile tekrar deneyin.- Servis durumu için sürekli polling yerine mümkünse Webhooks kullanın — bildirimler anlık gelir, kota tüketmez.
- Toplu işlemlerde istekleri zamana yayın; aynı anda yüzlerce istek göndermeyin.