Retrieve video task
Last updated September 6, 2026
Query a alibaba/wan3.0-video-prime task in Model Studio's shape.
Query a alibaba/wan3.0-video-prime video task; the response is in Alibaba Model Studio's own
shape. DashScope clients construct this address themselves, so retrieval keeps
working after base_url is changed.
https://gateway.amux.ai/api/v1/tasks/{id}Authorization
headerAuthorizationstringRequiredBearer <your Amux key> Your Amux API key.
Request
idstringRequiredThe task ID returned at submit time.
Response
200responseAlways 200, finished or not. The state lives in output.task_status.
404responseNo such task, or the task does not belong to this workspace. Both cases return the same response, so that a task ID cannot be probed across workspaces to confirm its existence.
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 | Done; the artifact is in output.video_url | Yes, per second produced |
FAILED | Upstream refused, errored, or the task did not complete | No, reserve released |
CANCELED | Canceled | No, reserve released |
UNKNOWN | We could not map our own state 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.
Polling
Video generation takes an order of magnitude longer than image generation, and the elapsed time is dominated by queueing rather than scaling with the requested duration:
| Measured sample | End-to-end |
|---|---|
| 480P / 2s | approx. 105 seconds |
| 1080P / 30s | approx. 891 seconds |
Roughly 100 seconds of that is fixed overhead, so no request returns a result within 20 seconds regardless of the duration requested. Size client timeouts accordingly rather than extrapolating linearly from output length.
Suggested strategy: do not poll during the first 20 seconds, then poll every 10-15 seconds.
The artifact URL
output.video_url points at Amux storage. Upstream returns a signed temporary
address that expires in 24 hours; Amux transfers the video first and serves its own
copy.
That address is also cleaned up periodically — download anything you need to keep; afterwards it returns 404.
What this shape leaves out
Two kinds of thing, both available from the unified endpoint:
- Usage and cost — the Model Studio shape has nowhere to put them;
- Timing and the original prompt — upstream also returns
submit_time/scheduled_time/end_time/orig_prompt, and we do not. We map only the fields a client actually reads, rebuilding them field by field rather than passing the upstream body through.
Not found is a 404
No such task, or it does not belong to your workspace — both return the same 404. Separating them would let anyone confirm a task exists by trying its ID from another workspace.
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>"
}