Before you start
Mint an API key (see Authentication) and export it:requests package (pip install requests).
The flow at a glance
Then poll the job, or receive a webhook, and read its transcript.
1. Get an upload URL and token
Request where to send the file and a short-livedupload_token. You send this
token with the file in the next step and again when you create the job.
2. Upload the file
Send the file toupload_url as multipart/form-data in a single request.
Authenticate this request with the upload_token from step 1, not your API
key.
--progress-bar.
The fields are:
A successful upload returns
201:
A
2xx status means the file is stored. Wait for this response before you
create the job in step 3.
If the upload does not succeed, the response uses the same
error body as the rest of the API:
3. Create the transcription job
Start the transcription. Pass theupload_token and the file details. The
response gives you a job id and its status.
If the response does not reach you, send the same request again. The same
upload_token returns the same job id, so a retry never creates a second job.
The request body fields are:
If your account has no credit left for this request, it returns
402 with the
error code insufficient_api_credits. Top up, then send the request again.
If no file is stored for the upload_token, for example because step 2 did not
complete, the request returns 409 with the error code upload_not_found. No
job is created and the token stays valid. Finish the upload, wait for its 201,
then send this request again with the same token.
4. Poll the job
Poll the job byid until its status is completed or failed. To be
notified instead, pass a callback_url and see Webhooks.
The
status field reflects where the job is in its lifecycle:
5. Read the result
Once the job iscompleted, read its transcript straight from the job:
The job also has an export endpoint,
GET /api/v1/transcription-jobs/{id}/export, which takes the same query
parameters as the transcription export. Both job endpoints return 409 with
job_not_completed while the job is still running, or job_failed if it ended
without a transcript.
The job’s transcription_id is also a regular transcription. Use it with the
endpoints from Retrieve and export to read its metadata or
list it alongside your other transcriptions.
Delete the result
To delete the transcription a job produced, callDELETE /api/v1/transcription-jobs/{id}. It returns 204 when the
transcription is deleted, or when the job has none to delete. A job that is
still running returns 409; wait for it to finish, then retry.
Next steps
Webhooks
Get notified when a job finishes instead of polling.
Retrieve and export
Read a transcript and download an export.