Skip to main content
Any response outside the 2xx range looks like this:
details appears only on validation errors and lists each offending field. Quote trace_id when you write to support; it finds the exact request.

Codes

Generation failures are not HTTP errors

A generation that was accepted but did not finish is a 200 with "status": "failed" and an error object on the generation itself. Its code is one of rate_limited, timeout, safety, invalid_voice, invalid_request, billing_or_access, provider_auth, provider_unavailable, provider_error. safety and invalid_request need a different prompt or input; the others are worth one retry.