API reference · Transcribe
Stream audio in, get the transcript back
One shot: the request body is the audio itself and the response is an SSE stream ending in the transcript. Intended for shells and simple scripts; files above 200 MB belong on the upload routes. Rate limit: 120 requests per minute.
The first event is accepted and carries the job_id and a download_url, emitted before any waiting — so a caller whose connection drops can still retrieve the job it has been billed for. The id is also mirrored in the X-Job-Id response header.
Authenticate with your key in the X-API-Key header — Authentication.
Query parameters
- model string default: zephyr
The transcription model. One today.
- output_type string default: json
Format of the stored transcript at
download_url.One of
json,txt,srt,vtt,docx,pdf - word_timestamps boolean default: true
- speaker_labels boolean default: true
- nltk boolean default: true
Punctuation and sentence segmentation.
- custom_vocabulary string
Comma-separated domain terms to bias towards. A query string cannot carry a JSON array, so this route takes the list as one comma-separated string.
- callback_url string (uri)
Webhook to POST on completion or permanent failure.
Request body
Required. The raw file bytes — send the file itself, not JSON. Accepted types: audio/mpeg, audio/wav, audio/mp4, audio/ogg, audio/flac, video/mp4, application/octet-stream.
Responses
- 200 An event stream ending in the transcript.
- 401 Missing, malformed or revoked API key.
- 402 The account is out of credit. Top up, or turn on auto-recharge, and retry. Reads and cancellations keep working.
- 413 The file exceeds the limit for this route: 10 GB through the upload routes, 200 MB streaming to
/api/v1/transcribe. - 422 A field is missing or the wrong type. The body names the offending field.
- 429 Too many requests for this endpoint. Back off and retry; the official SDKs do this for you.