Reference
Errors
Every error has the same shape and a stable code.
{ "error": { "code": "insufficient_balance", "message": "Your wallet has ₹12.00; this call needs ₹38.40." } }| Code | HTTP | Meaning |
|---|---|---|
invalid_input | 400 | The body or params are wrong. The message names the field. |
unauthorized | 401 | Missing, revoked or expired key, or an expired session. |
insufficient_balance | 402 | The wallet can't cover the hold. Top up and try again. |
key_limit_reached | 402 | This key's monthly limit is used up. |
spend_limit_reached | 402 | The workspace or account monthly limit is used up. |
zdr_unavailable | 403 | ZDR was asked for and this model has no ZDR route. |
account_suspended | 403 | The account is suspended for repeated content-policy violations. The console still works; quotes, renders and chat don't. Contact support. |
forbidden | 403 | Your role can't do this, or a guardrail blocks it. |
not_found | 404 | No such model, generation, key or workspace. |
quote_expired | 409 | The quote is older than 15 minutes. Get a new one. |
not_cancellable | 409 | The render already started. |
content_policy | 422 | The request breaks our content policy, so it was not run and nothing was charged. It is not retried on another route. |
rate_limited | 429 | Slow down. Retry after the time in Retry-After. |
model_unavailable | 503 | Every route for this model is down right now. Nothing was charged. |
internal | 500 | Our fault. Nothing was charged. Send us the x-request-id. |
Every response has an x-request-id header. Include it when you contact us.