/v1/messages를 제외한 모든 엔드포인트의 오류는 OpenAI 형식입니다: { "error": { "message", "type", "code", "param" } }. message가 아니라 code와 HTTP 상태를 기준으로 처리하세요. 모든 응답에는 x-request-id가 있습니다.
| HTTP | code | 언제 |
|---|---|---|
| 400 | invalid_request, context_length_exceeded | 요청이 잘못되었거나 컨텍스트 윈도우에 맞지 않음. |
| 401 | invalid_api_key | 키가 없음, 잘못됨, 폐기됨 또는 만료됨. |
| 402 | insufficient_balance | 지갑이 홀드를 감당하지 못함. 모델은 호출되지 않고 과금도 없음. |
| 403 | model_not_allowed, ip_not_allowed, org_suspended, org_blocked | 키 제한, 정지된 조직, 미수 사용량이 한도를 초과. |
| 404 | model_not_found, not_found | 모델 또는 엔드포인트 없음. |
| 409 | idempotency_conflict, idempotency_in_progress, idempotency_replay_unavailable | Idempotency-Key 관련. |
| 413 | request_too_large | 본문이 2 MiB 초과. |
| 429 | rate_limited, key_cap_exceeded | Retry-After 포함. |
| 502 / 503 / 504 | upstream_error, gateway_disabled(Retry-After: 30), no_upstream, model_unavailable, service_unavailable, upstream_timeout | 공급자 또는 서비스 문제. 출력 전에 실패하면 과금 없음. |
재시도는 429와 5xx에서만(백오프와 함께) 하세요. 400, 401, 402, 403, 404는 고치지 않고 다시 보내지 마세요. 전체 목록은 영어 문서에 있습니다.