Error reference
404 is returned for cross-organisation access attempts as well as genuinely missing resources. This prevents enumeration of other organisations’ job IDs.
Rate limit errors — 429
Standard (single job):jobs_requested:
retry_after field is the number of seconds to wait before retrying. A Retry-After header with the same value is also included.
Rate limit headers
Every authenticated response includes the current rate limit state:
Check
X-RateLimit-Remaining-Minute before submitting a large batch to confirm you have enough headroom.
Validation errors — 400
Common triggers forVAL_001:
languagefield missing or not matching any entry inGET /api/v1/languages(case-sensitive)- Neither
filenoraudio_urlprovided toPOST /transcribe audio_urlis not a valid HTTPS URL- Batch body is not an array or
{ jobs: [...] }object - Batch
jobsarray has 0 or more than 20 entries - Individual batch job missing
audio_urlorlanguage - Invalid audio MIME type or file extension on file upload
402 — Insufficient Credits
Download endpoints — 202, 409 and 404
The download endpoints (/download/lrc/*, /download/srt/*, /download/words/*)
distinguish three cases, and the difference is what tells a client whether to
retry:
409 responses carry a code: JOB_001 for a failed job (with stage and
message describing what went wrong) and JOB_002 for output that was never
requested, such as calling an LRC download on an align=false job.
Prefer polling GET /jobs/{id} and fetching downloads once it reports
status: "complete".
Job failure codes
Neither is retryable on the same job.
JOB_001 at the transcription stage may
be worth resubmitting; JOB_002 means resubmitting with different flags.