Vi använder cookies. Cookies och webbläsarlagring håller dig inloggad och kommer ihåg dina preferenser. Med ditt tillstånd mäter vi också hur webbplatsen används. Du kan när som helst. Läs vår cookiepolicy.

Hastighetsgränser

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

PlanAnrop per minut
Free5
Pro100
Team3,000
Enterprise3,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änsEffekt
RPM-gränsBegrä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änsNä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 modellerEndast 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:

RubrikBetydelse
X-RateLimit-LimitTillå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-ResetSekunder 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-After och försök igen med exponentiell backoff och jitter.
  • Skilj på rate_limited (försök igen senare) och daily_limit_reached och insufficient_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.