Używamy plików cookie. Pliki cookie i pamięć przeglądarki pozwalają utrzymać logowanie i zapamiętać Twoje preferencje. Za Twoją zgodą mierzymy też, jak korzystasz ze strony. W każdej chwili możesz . Zobacz naszą politykę cookie.

Limity zapytań

Konto

Limity zapytań

Liczba żądań na minutę w zależności od planu, limity RPM i dzienne limity w USD dla kluczy oraz obsługa błędu 429 z ponowieniami.

Limity zapytań chronią twoje saldo i usługę. Limity liczone są w żądaniach na minutę (RPM) dla każdego klucza API, a klucze mogą dodatkowo mieć dzienny limit wydatków w USD.

Limity według planu

PlanŻądania na minutę
Free5
Pro100
Team3,000
Enterprise3,000+

Przejdź na wyższy plan na stronie z cennikiem, aby podnieść limit.

Limity dla kluczy

Podczas tworzenia lub edycji klucza w sekcji Klucze API możesz ustawić:

LimitEfekt
Limit RPMOgranicza liczbę żądań na minutę dla tego klucza. Obowiązuje niższa z wartości: limit klucza lub limit planu.
Dzienny limit w USDGdy klucz wyda tego dnia (UTC) tę kwotę, kolejne żądania zwracają 429 daily_limit_reached aż do następnego dnia.
Lista dozwolonych modeliZ tym kluczem można używać tylko wymienionych identyfikatorów modeli; pozostałe zwracają 403 model_not_allowed.

Okno RPM trwa jedną minutę i jest liczone osobno dla każdego klucza, więc oddzielne klucze dla oddzielnych aplikacji nie dzielą limitu, ale każdy klucz nadal podlega limitowi twojego planu.

Nagłówki limitów

Każda odpowiedź generowania (udana lub z błędem) mówi, gdzie jesteś, więc możesz zwolnić przed osiągnięciem limitu:

NagłówekZnaczenie
X-RateLimit-LimitDozwolone żądania w bieżącym oknie jednej minuty dla tego klucza.
X-RateLimit-RemainingPozostałe żądania w oknie.
X-RateLimit-ResetSekundy do wyzerowania okna.

Klienci w przeglądarce też mogą je odczytać (są w Access-Control-Expose-Headers).

Skoki ruchu i współbieżność

Żądania ponad limit nie są od razu odrzucane: czekają w kolejce i startują, gdy tylko zwolni się minutowe okno. Na konto działa jednocześnie do 10 żądań, reszta czeka, aż któreś się zakończy. Przed startem szacowany maksymalny koszt żądania jest rezerwowany z salda razem z kosztem żądań już trwających, więc równoległe żądania nigdy nie wydadzą więcej, niż masz. Żądanie, które nie może wystartować w ciągu 60 sekund, zwraca 429 (rate_limited lub concurrency_limit) z Retry-After; jeśli jego koszt nie mieści się już w saldzie, zwraca 402 insufficient_balance.

Bezpieczne ponawianie z Idempotency-Key

Po błędzie sieci możesz nie wiedzieć, czy żądanie dotarło. Wyślij nagłówek Idempotency-Key (unikalny ciąg do 120 znaków, na przykład UUID) i ponów z tym samym kluczem: jeśli pierwsze żądanie zostało już wysłane do modelu, ponowienie zwróci 409 idempotency_conflict zamiast wykonać i naliczyć zadanie dwa razy. Jeśli pierwsze nie dotarło do modelu, klucz jest zwalniany i ponowienie działa normalnie. Klucz można użyć raz na konto w ciągu 24 godzin.

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"}'

Gdy osiągniesz limit

Zbyt wiele żądań

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"
  }
}

Odczekaj liczbę sekund podaną w Retry-After, a następnie ponów żądanie. Oficjalne SDK OpenAI automatycznie ponawiają odpowiedzi 429 z backoffem (domyślnie dwa razy; można to skonfigurować przez maxRetries / max_retries).

Dzienny limit wydatków

{
  "error": {
    "message": "This API key reached its daily spend limit.",
    "type": "rate_limit_error",
    "code": "daily_limit_reached"
  }
}

Ponawianie nic nie da aż do następnego dnia UTC. Jeśli to oczekiwany ruch, podnieś lub usuń dzienny limit klucza w sekcji Klucze API.

Limity upstream

Dostawcy mają własne limity, które są surowsze dla wariantów modeli :free. Gdy dostawca ograniczy żądanie, jego 429 jest przekazywany do ciebie. Użyj modeli zapasowych lub routingu dostawców, aby rozłożyć obciążenie między dostawców.

Obsługa limitów w kodzie

  • Respektuj Retry-After i ponawiaj z wykładniczym backoffem i jitterem.
  • Odróżniaj rate_limited (ponów później) od daily_limit_reached i insufficient_balance (ponawianie nie pomoże).
  • Kolejkuj zadania w tle zamiast odpalać je wszystkie naraz.
  • Strumieniuj długie odpowiedzi: jedno strumieniowane żądanie liczy się jako jedno żądanie.
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)))

Wszystkie kody statusu znajdziesz w sekcji Błędy.