Hesap
Hız limitleri
Plana göre dakikalık istek limitlerini, anahtar başına RPM ve günlük USD limitlerini ve 429 hatasını geri çekilme ile nasıl ele alacağınızı öğrenin.
Hız limitleri hem bakiyenizi hem de servisi korur. Limitler API anahtarı başına dakikalık istek sayısı (RPM) olarak hesaplanır; anahtarların ayrıca günlük bir USD harcama limiti de olabilir.
Plana göre limitler
| Plan | Dakikalık istek |
|---|---|
| Free | 5 |
| Pro | 100 |
| Team | 3,000 |
| Enterprise | 3,000+ |
Limitinizi yükseltmek için fiyatlandırma sayfasından planınızı yükseltin.
Anahtar başına limitler
API anahtarları sayfasında bir anahtar oluştururken veya düzenlerken şunları ayarlayabilirsiniz:
| Limit | Etkisi |
|---|---|
| RPM limiti | Bu anahtar için dakikalık istek sayısını sınırlar. Geçerli limit, anahtar limiti ile plan limitinizden düşük olanıdır. |
| Günlük USD limiti | Anahtar bugün (UTC) bu tutarı harcadığında, sonraki istekler ertesi güne kadar 429 daily_limit_reached döndürür. |
| Model izin listesi | Bu anahtarla yalnızca listelenen model kimlikleri kullanılabilir; diğerleri 403 model_not_allowed döndürür. |
RPM penceresi bir dakikadır ve anahtar başına sayılır; bu nedenle farklı uygulamalar için ayrı anahtarlar aynı limiti paylaşmaz, ancak her anahtar yine de plan limitinizle sınırlıdır.
Hız sınırı başlıkları
Her üretim yanıtı (başarılı ya da hatalı) nerede olduğunuzu söyler; sınıra çarpmadan önce yavaşlayabilirsiniz:
| Başlık | Anlamı |
|---|---|
X-RateLimit-Limit | Bu anahtar için geçerli bir dakikalık pencerede izin verilen istek sayısı. |
X-RateLimit-Remaining | Pencerede kalan istek sayısı. |
X-RateLimit-Reset | Pencerenin sıfırlanmasına kalan saniye. |
Tarayıcı istemcileri de okuyabilir (başlıklar Access-Control-Expose-Headers içinde).
Anlık yoğunluk ve eşzamanlılık
Sınırı aşan istekler hemen reddedilmez: sırada bekler ve dakikalık pencere açılınca başlar. Hesap başına aynı anda en çok 10 istek çalışır, gerisi biri bitene kadar bekler. Her istek başlamadan önce tahmini en yüksek bedeli, çalışan isteklerinkiyle birlikte bakiyenden ayrılır; paralel istekler bakiyenden fazlasını harcayamaz. 60 saniye içinde başlayamayan istek Retry-After ile 429 (rate_limited ya da concurrency_limit) döner; bedeli artık bakiyene sığmayan istek 402 insufficient_balance döner.
Idempotency-Key ile güvenli yeniden deneme
Bir ağ hatasından sonra isteğin bize ulaşıp ulaşmadığından emin olamayabilirsiniz. Bir Idempotency-Key başlığı gönderin (en fazla 120 karakterlik benzersiz bir dize, örneğin bir UUID) ve aynı anahtarla yeniden deneyin. İlk istek modele zaten gönderildiyse yeniden deneme işi iki kez çalıştırıp iki kez ücretlendirmek yerine 409 idempotency_conflict döner. İlk istek modele ulaşmadan düştüyse anahtar serbest kalır ve yeniden deneme normal çalışır. Bir anahtar hesap başına 24 saat içinde bir kez kullanılabilir.
curl https://api14.com/api/v1/images/generations \
-H "Authorization: Bearer $API14_KEY" \
-H "Idempotency-Key: 6f1c2a3e-siparis-1842" \
-H "Content-Type: application/json" \
-d '{"model": "black-forest-labs/flux-3-image", "prompt": "kırmızı bir bisiklet"}'
Bir limite takıldığınızda
Çok fazla istek
HTTP/1.1 429 Too Many Requests
Retry-After: 60
{
"error": {
"message": "Rate limit of 5 requests per minute exceeded.",
"type": "rate_limit_error",
"code": "rate_limited"
}
}
Retry-After içindeki saniye kadar bekleyin, ardından yeniden deneyin. Resmi OpenAI SDK'ları 429 yanıtlarını backoff ile otomatik olarak yeniden dener (varsayılan olarak iki deneme; maxRetries / max_retries ile yapılandırılır).
Günlük harcama limiti
{
"error": {
"message": "This API key reached its daily spend limit.",
"type": "rate_limit_error",
"code": "daily_limit_reached"
}
}
Bir sonraki UTC gününe kadar yeniden denemek işe yaramaz. Bu beklenen bir trafikse, anahtarın günlük limitini API anahtarları sayfasından yükseltin veya kaldırın.
Upstream limitleri
Sağlayıcıların kendi limitleri vardır ve bunlar :free model varyantları için daha sıkıdır. Bir sağlayıcı bir isteği hız limitine takarsa, onun 429 yanıtı size iletilir. Yükü sağlayıcılar arasında dağıtmak için model yedeklerini veya sağlayıcı yönlendirmeyi kullanın.
Kodda limitleri ele almak
Retry-Afterdeğerine uyun ve üstel backoff ile jitter kullanarak yeniden deneyin.rate_limited(daha sonra yeniden deneyin) iledaily_limit_reachedveinsufficient_balance(yeniden denemek işe yaramaz) durumlarını birbirinden ayırın.- Arka plan işlerini hepsini birden göndermek yerine kuyruğa alın.
- Uzun yanıtları stream edin: stream edilen bir istek tek bir istek sayılır.
import time
from openai import OpenAI, RateLimitError
client = OpenAI(base_url="https://api14.com/api/v1", api_key="sk-api14-...", max_retries=0)
for attempt in range(5):
try:
r = client.chat.completions.create(model="openai/gpt-5-mini", messages=[{"role": "user", "content": "Hi"}])
break
except RateLimitError as e:
if e.code == "daily_limit_reached":
raise
time.sleep(int(e.response.headers.get("retry-after", 2 ** attempt)))
Tüm durum kodları için bkz. Hatalar.