---
title: "Get job status"
method: GET
path: "/api/dubbing/jobs/{id}"
tags: ["Video Dubbing"]
---

# Get job status

`GET /api/dubbing/jobs/{id}`

Poll this endpoint to track the progress of a dubbing job. When status is `completed`, the `output_url` field contains a presigned download URL (expires after 48 hours).

## Path parameters

- `id` string, required

## Response `200`

Job status

- JobStatusResponse
  - `job_id` string, required — Unique identifier for the dubbing job
  - `status` 'pending' | 'downloading' | 'processing' | 'uploading' | 'completed' | 'failed', required — Current job status. Flow: pending → downloading → processing → uploading → completed (or failed).
  - `source_lang` string, required — Source language
  - `target_lang` string, required — Target language code
  - `error` string, nullable — Error message if status is "failed". Codes: video_too_long, video_too_large, unsupported_format, download_failed, processing_failed.
  - `progress` object — Progress details during processing
    - `stage` string — Current processing stage
    - `stage_name` string — Human-readable stage name
    - `percent` integer — Completion percentage
  - `input_duration_sec` number — Duration of the input video in seconds
  - `cost_usd` number — Cost charged for this job in USD ($0.50/min)
  - `output_url` string, uri, nullable — Presigned download URL. Available when status is "completed". Expires after 48 hours.
  - `output_expires_at` string, date-time, nullable — Expiry time of the download URL (ISO 8601)
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required

## Other responses

- `401` — Invalid or expired API token
- `404` — Job not found

---

[API](https://skmtc.dev/startpinch/apis/pinch-api.md) · [All operations](https://skmtc.dev/startpinch/apis/pinch-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/startpinch/pinch-api/revisions/a0d3acb9ed16/schema)
