Skip to main content
GET
Transcriptions — Poll / Retrieve
Step 3. Reads stored job state; it never restarts processing. Returns 200 for any job your organization owns, including failed ones, and 404 for unknown or foreign jobs.

Status values

Poll every 30–60 seconds and honor Retry-After. Stop on succeeded or failed.

Result

On success payload.result carries the versioned segment list plus signed download URLs:
  • segments[]: start_seconds, end_seconds, speaker (speaker_1, speaker_2, … consistent within the job when the speech-to-text provider labels speakers; null otherwise), language (code of the original speech), text (raw speech-to-text output, always preserved, no cleanup applied), translated_text (requested language, or null when no target_language was given).
  • artifacts: raw_text, raw_json (speech-to-text output with no cleanup applied) and, when translation was requested and at least one segment was translated, translated_text, translated_json. Each has a signed url and expires_in (1 hour). Call GET again to receive fresh URLs.

Errors

Job-level failures sit in payload.error (the envelope’s top-level error stays null, because the lookup itself succeeded):
Translation quality is best effort. Missing or invalid translation output is reported with TRANSLATION_FAILED and translated_text: null for the affected segments. The original text is always preserved.

Polling notes

  • Polls do not count against your organization’s transcription limit; only POST /v2/transcriptions/uploads and POST /v2/transcriptions do.
  • Uploaded audio is deleted 90 days after it is uploaded, and a job’s results and artifacts one year after the job finishes. Deletion can happen up to a day later. Download the results you need to keep. After deletion, GET answers 404 for the job, and a new submission for an upload whose audio has been deleted answers 404 (upload the file again).
  • 503 with the envelope’s top-level error.code TRANSCRIPTION_RESULT_UNAVAILABLE means the job reached a terminal status but its stored result could not be read at that moment. The job is unchanged: wait for the Retry-After seconds in the response and call GET again. A succeeded job is never answered without its result; a failed job may have none (see the table above). A 500 with TRANSCRIPTION_GET_FAIL on a terminal job means the stored result could not be read in a way polling will not fix; contact support with the job_id.

Authorizations

X-API-KEY
string
header
required

Path Parameters

job_id
string<uuid>
required

Response

Job state

error
object | null
required
payload
object
required