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

Ошибки

Единый формат ошибок Clipia API, таблица HTTP-кодов и errorCode, а также какие из них можно безопасно повторять.

Все ошибки приходят в едином JSON-формате с полями type, code и человекочитаемым message. HTTP-статус задаёт класс ошибки, а машиночитаемый code — точную причину. Повторять с backoff можно только временные ошибки (429, 503); ошибки запроса (4xx) повторять без изменений бессмысленно.

Единый формат

Все ответы с ошибкой имеют одинаковую форму: объект error с полями type, code и message. Ветвите логику по машиночитаемому code, а HTTP-статус используйте как класс ошибки.

{
  "error": {
    "type": "invalid_request_error",
    "code": "insufficient_credits",
    "message": "Недостаточно кредитов для генерации. Пополните баланс."
  }
}

Коды ошибок

HTTPcodeКогдаRetry-able
400invalid_requestНевалидное тело или параметрыНет
401invalid_api_keyКлюч отсутствует, неверный или отозванНет
402insufficient_creditsНе хватает кредитов на балансеНет — пополните баланс
403insufficient_scopeУ ключа нет нужного scopeНет
404not_foundНеизвестный request_id или modelНет
409idempotency_key_reuseТот же Idempotency-Key с другими параметрамиНет — смените ключ
409request_in_progressПовторный запрос, пока первый ещё обрабатываетсяДа — после завершения первого
422model_input_invalidПараметры не подходят моделиНет — исправьте input
429rate_limit_exceededПревышен лимит запросовДа — после Retry-After
500internal_errorВнутренняя ошибкаДа — с backoff
503service_unavailableВременно недоступноДа — с backoff

Что повторять

Безопасно повторять с экспоненциальной задержкой можно 429, 500 и 503. Для 4xx-ошибок запроса (кроме request_in_progress) повтор без изменений вернёт ту же ошибку — сначала исправьте запрос.

Сообщения санитизированы

Поле message не содержит деталей внутренней инфраструктуры. Опирайтесь на машиночитаемый code, а не на текст message, который может меняться.