You can upload audio as well as video. Set
content_type to an audio type (e.g. audio/mpeg) — see allowed upload content types. Audio sources are transcript-only: steps 5–6’s vision call and the retake-removal section below return 422 for audio, so skip them.1. Set your API key
GET /v1/me.
2. Create an upload project
project_id, upload_url, and upload_headers.
3. Upload the source bytes
Content-Type and headers returned by the create-upload response (for an audio upload that’s your declared audio type, e.g. audio/mpeg). The signed URL expires, so create a new upload project if it is no longer valid.
4. Complete the upload
5. Start transcript and vision analysis
Start transcript analysis:language is required. Use a supported language tag such as en or he. Each project has one transcript analysis. Repeating the same start request while it is queued, processing, or completed returns the existing analysis state.
Start vision analysis (video sources only — returns 422 for audio):
6. Poll for results
queued or processing. When it completes, the response includes the requested outputs.
completed with the requested outputs or failed with an error.
Optional: remove retakes
Retake removal supports video sources only (it returns422 for audio) and requires a language, one of the same languages as transcript. It marks repeated or corrected takes so you can keep the clean read.
Next steps
- Use analysis jobs for upload details, response shapes, and polling patterns.
- If your team uses Claude Code, copy the ready-to-use prompt from Use with Claude Code.
- Use the API reference for exact request and response schemas.

