Справка
Ошибки
Форма ответа, коды и что проверить.
Если запрос не прошёл, тело выглядит так:
{
"error": {
"message": "Invalid request for this model.",
"type": "invalid_request_error",
"code": "invalid_request_error",
"param": "size"
}
}message — текст для человека, type и code — для логики клиента. На 400 иногда есть param: какое поле не подошло (size, quality, model, prompt…).
Примеры
Нет ключа или он неверный:
{
"error": {
"message": "API key not found",
"type": "invalid_request_error",
"code": "invalid_api_key"
}
}Кончился лимит этого ключа (на аккаунте средства ещё могут быть):
{
"error": {
"message": "API key quota exceeded",
"type": "insufficient_quota",
"code": "insufficient_quota"
}
}Модели нет в каталоге или к ней нет доступа:
{
"error": {
"message": "The requested model or capability is not available.",
"type": "invalid_request_error",
"code": "model_not_found"
}
}Слишком много запросов за короткое время:
{
"error": {
"message": "Rate limit exceeded",
"type": "rate_limit_error",
"code": "rate_limit_exceeded"
}
}Неверный параметр изображения — смотрите param:
{
"error": {
"message": "Invalid request for this model.",
"type": "invalid_request_error",
"code": "invalid_request_error",
"param": "size"
}
}Метод не поддерживается (например Files, Realtime, variations):
{
"error": {
"message": "Endpoint /v1/files is not implemented",
"type": "invalid_request_error",
"code": "not_implemented"
}
}Коды
| HTTP | error.code | Что случилось | Что делать |
|---|---|---|---|
400 / 422 | invalid_request_error | Неверный JSON, нет model, параметр модель не принимает | Смотрите тело и param |
401 | invalid_api_key | Нет ключа или он неверный | Проверьте Authorization: Bearer … |
403 | insufficient_quota | Кончился лимит этого ключа | Поднимите лимит в кабинете или подождите сброса |
403 | insufficient_balance | Не хватает средств на аккаунте | Пополните баланс |
403 | insufficient_scope | У ключа нет нужного права | Выпустите ключ заново из кабинета |
404 | model_not_found | Нет такой модели или к ней нет доступа | Возьмите id из GET /models |
429 | rate_limit_exceeded | Слишком часто | Подождите и повторите с паузой |
501 | not_implemented | Метод не поддерживается | Другой путь, см. Совместимость |
502 | upstream_error | Модель сейчас недоступна | Повтор или другая модель |
504 | timeout | Модель не успела ответить | Повтор; для длинных задач уменьшите max_tokens |
Когда повторять запрос
Имеет смысл повторить с паузой: 429, 502, 504.
Не повторяйте в цикле 400, 401, 403 — запрос сам не станет правильным.