Base URL
Authentication
All API requests require an API key passed in theX-API-Key header.
Endpoints
Upload Endpoints
Upload Media
Upload by file, URL, or request a signed upload URL
Notify Upload Complete
Start verification after a signed upload finishes
Get Upload Status
Poll signed-upload verification status
Text Generation Endpoints
Generate Text
Generate text using a media_id, URL, or direct file upload
Audio Generation Endpoints
Generate Audio
Generate an audio track using a media_id, URL, or direct file upload
Video Generation Endpoints
Generate Video
Generate a video using a media_id, URL, or direct file upload
Results Endpoint
Get Results
Poll for job results and download outputs
Quick Example
1
Upload
2
Generate
3
Get Results
Languages and Voices
For the full list of 53 supportedlanguage codes and 31 voice IDs, including which voices cover which languages, see Languages and Voices.
Video Categories
14 Categories
14 Categories
Auto • Educational Lecture • Educational Kids • Government Meeting • Documentary • Narrative Story • Social Media • Tutorial/How-To • Vlog • Commercial/Advertisement • News • Entertainment • Home Video • Video Call
Output Formats
Every generation endpoint returns the text descriptions in the response. Setformat (default vtt) to choose how that text is serialized:
The audio endpoint additionally returns a WAV track and the video endpoint additionally returns an MP4. For text-only output, see the text endpoint.
Error Codes
Common Error Payloads
Job Failure Errors
When a job that was successfully accepted later fails during processing, polling the job (via/get_results) returns status: "failed" along with a stable error code and a human-readable message. Switch on the error code to handle failures programmatically; show message in your UI.
These codes are returned in the
error field of /get_results for failed jobs and are stable across releases. Additional codes may be added in future; treat unknown codes as internal_error.Rate Limits
Limits are enforced per team across all API keys. Enterprise plans can request custom allocations; contact support if you need higher throughput.Rate Limit Exceeded Response
When you exceed the rate limit, you’ll receive a429 Too Many Requests response:
retry_after field indicates how many seconds to wait before retrying.
Need Help?
Support
Email our team
Dashboard
View usage

