Перейти к содержимому

Ошибки и повторы

Ошибки возвращаются как JSON со стабильным, машиночитаемым кодом error и соответствующим HTTP-статусом.

{
"error": "rate_limited",
"message": "Too many requests.",
"retry_after_ms": 850
}
HTTPerrorПовторять?Примечания
400invalid_requestНетПараметр не прошёл валидацию — исправьте запрос.
401missing_api_key / unknown_api_keyНетСм. Аутентификация.
403inactive_api_key / account_blockedНетКлюч отключён или аккаунт приостановлен.
402insufficient_creditsНетПополните счёт. Тело включает required и balance.
429rate_limitedДа, после retry_after_msВы превысили лимит в минуту.
409request_in_progressДаИдентичный идемпотентный запрос ещё выполняется.
422(конфликт идемпотентности)НетIdempotency-Key был повторно использован с другим телом.
503service_temporarily_unavailable / too_many_concurrent_requestsДа, с задержкойВременный лимит ёмкости.
504result_timeoutДаВосходящая выборка превысила deadline_ms.
  • Повторяйте 429 / 503 / 504 / 409 с экспоненциальной задержкой. Когда присутствует retry_after_ms, ждите как минимум столько времени перед повтором.
  • Никогда не повторяйте 400 / 401 / 402 / 403 — запрос не пройдёт, пока вы его не измените.
  • Официальные SDK уже повторяют временные ошибки за вас (по умолчанию 2 повтора) и предоставляют флаг retryable на объекте ошибки.