Skip to main content
Every error returns a consistent JSON envelope with the matching HTTP status code.

Error envelope

Match on statusCode and error, not on message. Message strings may be refined over time.

Status codes

Common errors

Authentication (401)

Text to speech

Speech to text

The streaming WebSocket reports errors as error events and close codes instead of HTTP statuses. See close codes.

Handling errors

Confirm the chariotai-api-key header is present and the key is active. See Authentication.
InsufficientCreditsException means you’re out of credits, check GET /v1/credits. A plan HTTPException means the product isn’t on your plan.
Validate voice_id is a real UUID, keep text within the model and endpoint limit, and select a supported voice, model, and speed combination.
You’ve hit your plan’s concurrency limit. Retry with exponential backoff and jitter, and cap your in-flight requests. See Rate limits & concurrency.
An unexpected server error. Any credits charged for the failed request are refunded. Retry after a short delay; if it persists, contact support with the Inference-Id.