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." } }
CodeHTTPMeaning
invalid_input400The body or params are wrong. The message names the field.
unauthorized401Missing, revoked or expired key, or an expired session.
insufficient_balance402The wallet can't cover the hold. Top up and try again.
key_limit_reached402This key's monthly limit is used up.
spend_limit_reached402The workspace or account monthly limit is used up.
zdr_unavailable403ZDR was asked for and this model has no ZDR route.
account_suspended403The account is suspended for repeated content-policy violations. The console still works; quotes, renders and chat don't. Contact support.
forbidden403Your role can't do this, or a guardrail blocks it.
not_found404No such model, generation, key or workspace.
quote_expired409The quote is older than 15 minutes. Get a new one.
not_cancellable409The render already started.
content_policy422The request breaks our content policy, so it was not run and nothing was charged. It is not retried on another route.
rate_limited429Slow down. Retry after the time in Retry-After.
model_unavailable503Every route for this model is down right now. Nothing was charged.
internal500Our fault. Nothing was charged. Send us the x-request-id.

Every response has an x-request-id header. Include it when you contact us.