Retrieve video task
Last updated September 6, 2026
Query a video task in Model Studio's shape. It is an alias — the same task the unified endpoint returns.
Look up a video task by the ID returned at submit time. The response is in Alibaba Model Studio's (DashScope) shape.
https://gateway.amux.ai/api/v1/tasks/{id}Authorization
headerAuthorizationstringRequiredBearer <your Amux key> An Amux key created in the console. If you lose it, you can view it again on the keys page.
Request
idstringRequiredThe Amux task ID returned at submit time.
Response
200responseAlways 200, finished or not. The state lives in output.task_status.
404responseNo such task in this workspace.
Relationship to the unified retrieval endpoint
This endpoint returns the same task as
GET /v1/tasks/{id}: one task table, one ID, one
set of data, rendered two ways at the very end.
It is provided because DashScope clients construct this address themselves; without
it, changing base_url would produce successful submissions and 404s on retrieval.
New integrations should use the unified endpoint, which carries usage and
cost; the Model Studio shape has no corresponding fields. This endpoint also does
not return the upstream submit_time / scheduled_time / end_time /
orig_prompt — use the unified endpoint when timing information is needed.
Status field
Always 200, whether or not the task has finished. The state lives in
output.task_status, so polling only has to read that one field.
task_status | Meaning | Charged? |
|---|---|---|
PENDING | Queued | — |
RUNNING | Generating | — |
SUCCEEDED | Complete; the artifact is in output.video_url | Charged per second produced |
FAILED | Upstream refused or errored | Not charged, reservation released |
CANCELED | Canceled | Not charged, reservation released |
UNKNOWN | The state could not be mapped onto this vocabulary | — |
UNKNOWN means something different here than upstream. Upstream uses it to
indicate a task that can no longer be queried (its records expire after 24 hours).
Amux task records are never deleted, so that case does not arise, and a client
treating UNKNOWN as a give-up condition will not reach that branch here.
For the same reason the Amux expired state (the task did not complete and its
result can no longer be retrieved) maps to FAILED rather than UNKNOWN: it is a
failure with a definite cause, not a lookup miss.
Polling
Video generation takes an order of magnitude longer than image generation, and elapsed time is dominated by queueing rather than scaling with the requested duration.
It differs per model. These are our measurements, offered only as a basis for sizing client timeouts:
| Model | Measured |
|---|---|
wan3.0-video | ~105s for 480P/2s, ~891s for 1080P/30s |
happyhorse-1.1 | ~65s for 480P/3s |
Size client timeouts accordingly rather than extrapolating linearly from output length. Suggested: do not poll during the first 20 seconds, then poll every 10-15 seconds. The upstream's own suggested interval for this endpoint is 15 seconds.
Artifact URL
output.video_url points at Amux storage, not the upstream temporary address that
expires in 24 hours and carries the provider's signature. Those URLs are cleaned
up periodically — download anything you need to keep.
Not found returns 404
No such task, or the task does not belong to your workspace — both return the same 404.
Sharing one response is deliberate: separating them would allow a task ID to be probed across workspaces to confirm whether it exists.
curl https://gateway.amux.ai/api/v1/tasks/{id} \
-H "Authorization: Bearer $AMUX_API_KEY"{
"output": {
"task_id": "<string>",
"task_status": "PENDING",
"video_url": "<string>",
"code": "<string>",
"message": "<string>"
},
"request_id": "<string>"
}