Skip to main content
GET
Query a gateway task with the ID returned from an asynchronous submission. Image Ext, music generation, and dubbing tasks use this endpoint. Video clients that received object: "video" from POST /v1/videos should follow the Video API workflow; GET /v1/tasks/{id} still returns the gateway task object below. The response is the gateway’s own task document. It is not an upstream provider task envelope.
string
required
The task ID from x-gateway-task-id, Location, or a 202 body, for example task_01HXYZ.

Response fields

string
The gateway task ID.
string
Always task.
string
queued, processing, succeeded, failed, expired, or reconciliation_required.
string
The model that ran the task.
string
image, video, or audio.
number | null
Progress from 0 to 100 when the gateway reports it.
object | null
Present when status is succeeded. For Ext, result.urls is an array of public image URLs. Music tasks add fields such as tracks and lyrics; see Music generation tasks. Dubbing tasks return content_path and an empty urls list.
object | null
error.code and error.message when the task failed.
string
Wallet reservation in microUSD at submit time.
string | null
Settled charge in microUSD. null until the task settles.
number
Unix timestamp (seconds) of submission.
number | null
Unix timestamp (seconds) of completion. null while running.
A 202 from POST /v1/images/generations uses this same object. Prefer: respond-async also sets preference-applied: respond-async and Location: /v1/tasks/{id}. POST /v1/music/generations and POST /v1/audio/dubbing always return this object with HTTP 202 and a Location: /v1/tasks/{id} header.

Download task output

GET /v1/tasks/{id}/content returns the output of a succeeded task with the same API key. For a dubbing task it streams the dubbed file and supports Range requests. For tasks that deliver URLs, such as music tasks, it redirects to the first URL in result.urls. Before the task succeeds, it returns HTTP 409 with task_not_ready. Poll every 10 to 20 seconds until succeeded or failed. Do not resubmit a reconciliation_required task to another route. Optional webhooks notify on terminal states; this GET remains the source of truth.