Przejdź do głównej zawartości

Błędy i ponawianie

Błędy są zwracane jako JSON ze stabilnym, czytelnym maszynowo kodem error i odpowiadającym statusem HTTP.

{
"error": "rate_limited",
"message": "Too many requests.",
"retry_after_ms": 850
}
HTTPerrorPonawiać?Uwagi
400invalid_requestNieParametr nie przeszedł walidacji — popraw żądanie.
401missing_api_key / unknown_api_keyNieZobacz Uwierzytelnianie.
403inactive_api_key / account_blockedNieKlucz wyłączony lub konto zawieszone.
402insufficient_creditsNieDoładuj. Treść zawiera required i balance.
429rate_limitedTak, po retry_after_msPrzekroczono limit na minutę.
409request_in_progressTakIdentyczne idempotentne żądanie wciąż jest w toku.
422(konflikt idempotency)NieIdempotency-Key użyto ponownie z inną treścią.
503service_temporarily_unavailable / too_many_concurrent_requestsTak, z odczekaniemPrzejściowy limit przepustowości.
504result_timeoutTakPobranie z serwera nadrzędnego przekroczyło deadline_ms.
  • Ponawiaj 429 / 503 / 504 / 409 z wykładniczym odczekiwaniem. Gdy obecne jest retry_after_ms, odczekaj co najmniej tyle czasu przed ponowieniem.
  • Nigdy nie ponawiaj 400 / 401 / 402 / 403 — żądanie się nie powiedzie, dopóki go nie zmienisz.
  • Oficjalne SDK ponawiają już za Ciebie błędy przejściowe (domyślnie 2 ponowienia) i udostępniają flagę retryable na błędzie.