---
title: "Get Voice File Job"
method: GET
path: "/v1/external/voice-file/jobs/{jobId}"
tags: ["Voice File"]
---

# Get Voice File Job

`GET /v1/external/voice-file/jobs/{jobId}`

## Request

- Base URL: `https://api.tiro.ooo`
- URL: `https://api.tiro.ooo/v1/external/voice-file/jobs/{jobId}`
- Auth: HTTP bearer

Retrieve the current status and details of a Voice File Job.

- Subscribe to the `voice_file_job.completed` and `voice_file_job.failed` webhooks to learn when a job finishes (recommended)
- Poll this endpoint until status reaches `COMPLETED` or `FAILED` when you cannot receive webhooks
- Once completed, use the transcript and translation endpoints to retrieve results

Documentation: [Webhooks and polling strategy](/voice-file/overview#polling-strategy-fallback)

## Path parameters

- `jobId` string, required

## Response `200`

Job details

- VoiceFileJob: Represents a voice file processing job. Voice File Jobs handle the complete pipeline of audio transcription and optional translation. **Processing Pipeline:** 1. Job created (`CREATED`) → Upload URI provided 2. File uploaded (`UPLOADED`) → Ready for processing 3. Processing started (`PROCESSING`) → STT and translation in progress 4. Processing complete (`COMPLETED`) → Results available **Processing Time Estimates:** | File Duration | Typical Time | |---------------|--------------| | < 5 minutes | 45-75 seconds | | 5-20 minutes | 1-3 minutes | | 20-60 minutes | 3-6 minutes | | 1-4 hours | 6-18 minutes |
  - `id` string, required: Unique job identifier (UUID format)
  - `status` 'CREATED' | 'UPLOADED' | 'PROCESSING' | 'COMPLETED' | 'FAILED', required: Current job processing status: - `CREATED`: Job created, waiting for file upload - `UPLOADED`: File uploaded, waiting for processing to start - `PROCESSING`: Transcription/translation in progress - `COMPLETED`: All processing finished, results available - `FAILED`: Processing failed (check errorMessage). A job also becomes `FAILED` when only summary generation fails; check `transcriptAvailable`
  - `fileUploadedAt` string, date-time, nullable: Timestamp when file upload was completed. Null if not yet uploaded.
  - `processStartedAt` string, date-time, nullable: Timestamp when processing started. Null if not yet started.
  - `processCompletedAt` string, date-time, nullable: Timestamp when processing completed. Null if still processing.
  - `errorMessage` string, nullable: Error message if job failed. Null for successful jobs.
  - `transcriptAvailable` boolean: Whether the transcript can be fetched. Can be `true` on a `FAILED` job when transcription succeeded and a later step failed.

## Other responses

- `401`: Unauthorized
- `404`: Job not found

---

[API](https://skmtc.dev/tiro/apis/tiro-api-2.md) · [All operations](https://skmtc.dev/tiro/apis/tiro-api-2/llms.txt) · [OpenAPI document](https://skmtc.dev/tiro/apis/tiro-api-2/revisions/dc1a260c6771?raw)
