Errors
All errors share a single response shape:
{
"error": {
"code": "invalid_request",
"message": "Field 'text' must be 1–32,000 characters.",
"param": "text",
"request_id": "req_01HZQ7K8YV9X3R2M5N6P7QABCD"
}
}
| Field | Description |
| --- | --- |
| code | Stable, machine-readable identifier. Safe to switch on. |
| message | Human-readable description. May change wording over time. |
| param | The offending field, when applicable. |
| request_id | Include this when reporting issues. |
Status codes
| Status | Code | When | What to do |
| --- | --- | --- | --- |
| 400 | invalid_request | Required field missing, type mismatch, or value out of range. | Fix the request body. |
| 401 | unauthorized | Missing or invalid API key. | Check Authorization header and rotate the key if compromised. |
| 403 | forbidden | Key doesn't have access to this operation or resource. | Verify the key's organisation and scope. |
| 404 | not_found | The requested resource (e.g. a stored summary by id) doesn't exist. | Check the id; it may have been deleted. |
| 409 | conflict | Idempotency-Key reuse with a different request body. | Either reuse the original body or pick a new key. |
| 413 | payload_too_large | Request body exceeds the operation's size limit. | Split the input or trim it. |
| 415 | unsupported_media_type | Content-Type is not application/json. | Set Content-Type: application/json. |
| 422 | unprocessable | The request is well-formed but the content can't be processed (e.g. unsupported language). | See the message field. |
| 429 | rate_limited | Per-key rate limit exceeded. | Back off — see Rate limits. |
| 500 | internal_error | An unexpected error on our side. | Retry with backoff. If it persists, report with the request_id. |
| 502 | bad_gateway | Transient upstream issue. | Retry with backoff. |
| 503 | upstream_unavailable | The underlying model provider is temporarily unreachable. | Retry with backoff. |
| 504 | timeout | The operation didn't complete within the allotted time. | Retry; consider shortening the input. |
When you report an issue, include the request_id from the
error response. It's the fastest way for us to find the request in our
logs.