Limits and errors

60 minutes of audio per call, 100 MB per request body, and the error codes rakeaudio returns.

Limits

LimitValueWhat happens above it
Audio duration60 minutes per call400 audio_too_long. The API checks the duration before it transcribes
Request body100 MB413 from the edge, before the API. That response is not the JSON error envelope
Speakers4Diarization labels at most four speakers
Client timeoutAllow 5 minutesA long file can take more than a minute

Send compressed audio for long files. One hour of 16 kHz mono WAV is about 115 MB, over the body limit. The same hour as a 64 kbps mp3 is about 29 MB.

A rakeaudio call counts as one request against your requests-per-minute limit. See Limits and rate limits.

Errors

Errors use the standard envelope: { "error": { "code": "...", "message": "..." } }. See Errors.

CodeStatusCauseWhat to do
unsupported_media_type415The Content-Type is not audio/* or application/octet-stream. A JSON body gets this errorSend the file bytes with an audio content type
invalid_audio400The body is empty, or the API cannot decode it as audioCheck the file. Do not retry the same bytes
invalid_request400diarize is not true or falseFix the query parameter
audio_too_long400The audio is longer than 60 minutesSplit the file
runner_error502Transcription failedRetry with backoff
model_unavailable503The model is not availableRetry later
overloaded529Every transcription slot stayed busyRetry with backoff

These are real responses:

{"error":{"code":"unsupported_media_type","message":"Send the audio file as the raw body with content-type audio/* or application/octet-stream."}}
{"error":{"code":"invalid_audio","message":"The audio could not be decoded."}}

Authentication, rate-limit and credit errors (401, 403, 429) are the same for every model. See Errors.

Retries

Retry 502, 503 and 529 with exponential backoff, for example after 2, 4 and 8 seconds. A failed call is not billed. Never retry a 400 or a 415 with the same request: it fails again.