Skip to main content
Six download endpoints are available for each completed job where align=true (the default). All require authentication.

LRC and SRT endpoints

Word-level JSON endpoints

These endpoints are only available when the job was submitted with word_align=true (the default). They return a JSON array where each entry contains a single word and its start timestamp. Response — 200 OK:
  • Content-Type: application/json; charset=utf-8
  • Content-Disposition: attachment; filename="<original_filename>[_transliterated]_words.json"
Not ready yet — 202: If word-level alignment has not completed, the endpoint returns 202:
Only fetch word-level downloads once GET /api/v1/jobs/{id} returns status: "complete" and words_original appears in results.downloads. If the job was not submitted with word_align=true, word-level timings are never produced and the endpoint returns 409 rather than 202 — see Terminal responses below.

Response — 200 OK

Returns a plain-text file with:
  • Content-Type: text/plain; charset=utf-8
  • Content-Disposition: attachment; filename="<original_filename>[_transliterated].<ext>"

Not ready yet — 202

If the job exists but alignment has not completed, the endpoint returns 202 instead of 404:
202 always means keep waiting — the output is still coming. Poll GET /api/v1/jobs/{id} and fetch downloads once status is "complete".

Terminal responses

A 409 means stop polling — this file is never going to exist. There are two reasons, distinguished by the code: The job failed (JOB_001):
The output was never requested (JOB_002) — the job was submitted with align=false, or word-level timings were requested on a job with word_align=false:
These previously returned 202 { "status": "processing" } indefinitely, which gave a caller no way to tell “still working” from “never coming”. Treat 202 as retry and 409 as terminal.
Download URLs are returned directly in results.downloads on the job response and in the job.complete webhook payload. You do not need to construct them manually.

Examples

Download from webhook payload

If you’re using webhooks, the download URLs arrive in the job.complete payload:
All four URLs require your API key in the Authorization header to fetch. See LRC & SRT Formats for a description of the file formats and when to use each.