Skip to main content
This guide uses a direct upload because it works for private files and does not require your source to be publicly reachable.
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

Confirm the key works and check its scopes, limits, and balance with GET /v1/me.

2. Create an upload project

Save the returned project_id, upload_url, and upload_headers.

3. Upload the source bytes

Use the exact 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

The project is ready for analysis after upload completion succeeds.

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

While the analysis is running, the response status is usually queued or processing. When it completes, the response includes the requested outputs.
Polling returns completed with the requested outputs or failed with an error.

Optional: remove retakes

Retake removal supports video sources only (it returns 422 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.
Poll until the result is ready:

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.