Audio and video transcription API
Send an audio file or video file to the transcription API. Get speech-to-text output with timestamps, optional speaker labels and a language for every segment. Upload up to 95 MB in one request or up to 2 GB in resumable chunks.
- Up to 95 MB in one request
- Up to 2 GB in resumable chunks
- Media deleted 24 hours after the job ends
How it works
- Ten file types
- mp3, wav, m4a, flac, ogg, opus, mp4, mov, webm and mkv. The file needs an audio track.
- One request for small files
- Send multipart/form-data to POST /v1/transcriptions. This works up to 95 MB.
- Chunked uploads up to 2 GB
- Reserve an upload, send each chunk of about 8 MiB, then complete it. An interrupted upload can resume.
- Long recordings
- AI transcription accepts media up to 5 hours. Longer media fails with media_too_long and is not charged.
- Short media retention
- Uploaded media is deleted 24 hours after the transcription reaches a final status. The transcript stays until you delete it.
Small files
Use the audio transcription API for files up to 95 MB
Send the recording in a part named file. language, diarize, source and webhook_url are optional form fields. Add a webhook to receive the result status.
curl -X POST "https://api.transcript1.com/v1/transcriptions?wait=60" \
-H "Authorization: Bearer $TRANSCRIPT1_API_KEY" \
-F [email protected] \
-F language=autoLarge files
Resumable upload for larger audio and video files
For a file up to 2 GB, reserve the upload with its name and size. The response lists the chunks and an X-Upload-Token for this one upload.
curl -X POST "https://api.transcript1.com/v1/transcriptions" \
-H "Authorization: Bearer $TRANSCRIPT1_API_KEY" \
-H "Idempotency-Key: interview-2026-10-13" \
-H "Content-Type: application/json" \
-d '{"upload":{"filename":"interview.m4a","size":48210334,"mime_type":"audio/mp4"}}'Finish
Send chunks, then complete
PUT each chunk to its URL with the upload token, then complete the upload. transcript1 checks every chunk and queues the transcription.
curl -X PUT "https://api.transcript1.com/v1/transcriptions/tr_8fK2Lm0PqRsTuVwXyZaBcD/upload/chunks/0" \
-H "X-Upload-Token: t1u_..." \
-H "Content-Type: application/octet-stream" \
--data-binary @chunk-0.bin
curl -X POST "https://api.transcript1.com/v1/transcriptions/tr_8fK2Lm0PqRsTuVwXyZaBcD/upload/complete" \
-H "Authorization: Bearer $TRANSCRIPT1_API_KEY"Start with 60 free minutes
60 free minutes after you verify your email. No card required.
Frequently asked questions
Something missing? Ask support
Which files does the audio and video transcription API accept?
mp3, wav, m4a, flac, ogg, opus, mp4, mov, webm and mkv. Any other extension returns 422 unsupported_media, and the file must contain an audio track.
What are the size limits?
A one-shot upload can be up to 95 MB. A chunked upload can be up to 2 GB, although your plan may lower that. A file over the limit returns 413 media_too_large.
How long do you keep my files?
Uploaded media is deleted 24 hours after the transcription reaches a final status. An upload that is not completed within 24 hours is canceled and its chunks are deleted. The transcript stays until you delete it.
Can I get speaker labels for a file?
Yes. Set diarize to true and the file is transcribed with Speaker 1, Speaker 2 labels. Uploads are always transcribed with AI speech-to-text.