Konto
Hastighetsgränser
Anrop per minut per plan, RPM och dagliga USD-gränser per nyckel i api14, och hur du hanterar 429-fel med backoff och återförsök.
Hastighetsgränser skyddar ditt saldo och tjänsten. Gränserna räknas i anrop per minut (RPM) per API-nyckel, och nycklar kan även ha en daglig utgiftsgräns i USD.
Gränser per plan
| Plan | Anrop per minut |
|---|---|
| Free | 5 |
| Pro | 100 |
| Team | 3,000 |
| Enterprise | 3,000+ |
Uppgradera på prissidan för att höja din gräns.
Gränser per nyckel
När du skapar eller redigerar en nyckel under API-nycklar kan du ställa in:
| Gräns | Effekt |
|---|---|
| RPM-gräns | Begränsar antalet anrop per minut för den här nyckeln. Den gräns som gäller är den lägsta av nyckelns gräns och din plans gräns. |
| Daglig USD-gräns | När nyckeln har spenderat så mycket i dag (UTC) returnerar ytterligare anrop 429 daily_limit_reached fram till nästa dygn. |
| Lista över tillåtna modeller | Endast de listade modell-id:na kan användas med den här nyckeln; andra returnerar 403 model_not_allowed. |
RPM-fönstret är en minut och räknas per nyckel, så separata nycklar för separata appar delar inte på en gräns, men varje nyckel begränsas ändå av din plans gräns.
Rubriker för hastighetsgränser
Varje genereringssvar (lyckat eller fel) visar var du står, så att du kan sakta ner innan du når gränsen:
| Rubrik | Betydelse |
|---|---|
X-RateLimit-Limit | Tillåtna förfrågningar i det aktuella enminutsfönstret för nyckeln. |
X-RateLimit-Remaining | Återstående förfrågningar i fönstret. |
X-RateLimit-Reset | Sekunder tills fönstret nollställs. |
Webbläsarklienter kan också läsa dem (de finns i Access-Control-Expose-Headers).
Toppar och samtidighet
Förfrågningar över gränsen avvisas inte direkt: de väntar i en kö och startar så fort minutfönstret blir ledigt. Upp till 10 förfrågningar per konto körs samtidigt; resten väntar tills en är klar. Innan en förfrågan startar reserveras dess uppskattade maxkostnad från ditt saldo tillsammans med de förfrågningar som redan körs, så parallella förfrågningar kan aldrig spendera mer än du har. En förfrågan som inte kan starta inom 60 sekunder får 429 (rate_limited eller concurrency_limit) med Retry-After; om kostnaden inte längre ryms i saldot får den 402 insufficient_balance.
Säkra omförsök med Idempotency-Key
Efter ett nätverksfel vet du kanske inte om förfrågan kom fram. Skicka en Idempotency-Key-rubrik (en unik sträng på högst 120 tecken, till exempel ett UUID) och försök igen med samma nyckel: om den första förfrågan redan skickades till modellen returnerar omförsöket 409 idempotency_conflict i stället för att köra och debitera jobbet två gånger. Om den första misslyckades innan den nådde modellen frigörs nyckeln och omförsöket körs som vanligt. En nyckel kan användas en gång per konto under 24 timmar.
curl https://api14.com/api/v1/images/generations \
-H "Authorization: Bearer $API14_KEY" \
-H "Idempotency-Key: 6f1c2a3e-order-1842" \
-H "Content-Type: application/json" \
-d '{"model": "black-forest-labs/flux-3-image", "prompt": "a red bicycle"}'
När du når en gräns
För många anrop
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"
}
}
Vänta det antal sekunder som anges i Retry-After och försök sedan igen. De officiella OpenAI-SDK:erna gör automatiskt om 429-svar med backoff (två nya försök som standard; ställ in med maxRetries / max_retries).
Daglig utgiftsgräns
{
"error": {
"message": "This API key reached its daily spend limit.",
"type": "rate_limit_error",
"code": "daily_limit_reached"
}
}
Nya försök hjälper inte förrän nästa UTC-dygn. Höj eller ta bort nyckelns dagliga gräns under API-nycklar om trafiken är förväntad.
Gränser uppströms
Leverantörerna har egna gränser, som är striktare för modellvarianterna :free. När en leverantör begränsar ett anrop skickas dess 429 vidare till dig. Använd reservmodeller eller leverantörsroutning för att sprida belastningen över flera leverantörer.
Hantera gränser i koden
- Respektera
Retry-Afteroch försök igen med exponentiell backoff och jitter. - Skilj på
rate_limited(försök igen senare) ochdaily_limit_reachedochinsufficient_balance(nya försök hjälper inte). - Köa bakgrundsjobb i stället för att skicka alla på en gång.
- Strömma långa svar: ett strömmat anrop räknas som ett anrop.
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)))
Se Fel för alla statuskoder.