Platform
Errors and limits
Common API failures, retry behavior, and verified input limits.
HTTP errors
| Status | Meaning | Action |
|---|---|---|
400 | Invalid request or unsupported recorded file. | Correct the request before retrying. |
401 | Missing, invalid, or revoked credential. | Check the bearer credential. |
402 | Insufficient credit. | Add credit before resubmitting paid work. |
403 | The credential cannot perform an account operation. | Use a dashboard login session for account routes. |
404 | Resource not found or not owned by the account. | Verify the ID and credential. |
413 | Input exceeds a request limit. | Reduce the input or use an async flow where supported. |
422 | Invalid field, language, format, or option. | Correct the request using the capability guides. |
429 | Rate limit exceeded. | Wait for the Retry-After interval. |
502 | The model returned no usable output. | Retry only when your workflow can tolerate it. |
503 | A worker, model, or queue is temporarily unavailable. | Retry with backoff. |
504 | Processing exceeded the request timeout. | Use an async job or retry when appropriate. |
Verified limits
| Input | Limit |
|---|---|
| Recorded audio upload | 200 MB |
| Text-to-speech text | 10,000 Unicode characters |
| Voice-cloning reference audio | 25 MB |
| Chat messages | 40 messages per request |
| Chat message or instructions | 12,000 characters each |
| Chat output | max_tokens from 1 to 2,048 |
| Active API keys | 5 per account |
Usage limits can vary by deployment and account. The API returns 429 with Retry-After when a request should be delayed; do not hardcode a request rate from this page.
Job and WebSocket failures
An accepted async job may later enter failed; inspect its error. Reuse the same ID after a polling network failure rather than resubmitting the work.
Realtime sessions send an error event before closing when possible. Authentication, unavailable transcription, insufficient credit, invalid configuration, and malformed JSON are terminal until the underlying request is corrected.