Amux

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.

GEThttps://gateway.amux.ai/api/v1/tasks/{id}

Authorization

header
AuthorizationstringRequired

Bearer <your Amux key> An Amux key created in the console. If you lose it, you can view it again on the keys page.

Request

idstringRequired

The Amux task ID returned at submit time.

Response

200response

Always 200, finished or not. The state lives in output.task_status.

404response

No 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_statusMeaningCharged?
PENDINGQueued
RUNNINGGenerating
SUCCEEDEDComplete; the artifact is in output.video_urlCharged per second produced
FAILEDUpstream refused or erroredNot charged, reservation released
CANCELEDCanceledNot charged, reservation released
UNKNOWNThe 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:

ModelMeasured
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
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>"
}