Retrieve task
Last updated September 6, 2026
Query a alibaba/wan3.0-video task through the unified endpoint, with usage and cost.
Look up a alibaba/wan3.0-video task by the ID returned at submit time.
https://gateway.amux.ai/v1/tasks/{id}Authorization
headerAuthorizationstringRequiredBearer <your Amux key> Your Amux API key.
Request
idstringRequiredThe task ID returned at submit time.
Response
200responseThe current state of the task. output is present once succeeded.
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.
Reading the status
Always 200, finished or not. The state lives in status, so polling only has to
read one field instead of handling two status codes.
status will not change again once it reaches one of these four:
| Status | Meaning | Charged? |
|---|---|---|
succeeded | Done, artifacts are in output | Yes, per second produced |
failed | Upstream refused or errored | No, reserve released |
expired | The task did not complete and the result can no longer be retrieved | No, reserve released |
canceled | Canceled | No, reserve released |
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.
Read output.videos
Artifacts are grouped by type; a video model's artifacts are under videos.
The output.images key is still present and always an empty array. It is
retained for image-task clients that read output.images.length unconditionally.
Do not use the presence of images to detect the modality — that test is always
true.
The 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.
In usage, read output_video_seconds
Video produces no tokens, so input_tokens / output_tokens / total_tokens are
always 0 on a video task. The field that reconciles with cost is
output_video_seconds:
{
"status": "succeeded",
"usage": { "input_tokens": 0, "output_tokens": 0, "total_tokens": 0,
"output_video_seconds": 5 },
"cost": "0.825125"
}That figure is what 5 seconds of 1080P looks like. cost is what the call actually
cost in USD, 0 for failures and expiries; the current rate is the one on this
model's page in the model catalog.
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/v1/tasks/{id} \
-H "Authorization: Bearer $AMUX_API_KEY"{
"id": "task_01M1CG35C16CJ790D00BV1RBVM",
"status": "queued",
"model": "alibaba/wan3.0-video",
"created_at": "<string>",
"output": {
"images": [
{}
],
"videos": [
{
"index": 0,
"url": "<string>"
}
]
},
"usage": {
"input_tokens": 0,
"output_tokens": 0,
"total_tokens": 0,
"output_video_seconds": 0
},
"cost": "0.825125",
"error": {
"message": "<string>",
"code": "<string>"
}
}