Amux

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.

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

Authorization

header
AuthorizationstringRequired

Bearer <your Amux key> Your Amux API key.

Request

idstringRequired

The task ID returned at submit time.

Response

200response

The current state of the task. output is present once succeeded.

404response

No 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:

StatusMeaningCharged?
succeededDone, artifacts are in outputYes, per second produced
failedUpstream refused or erroredNo, reserve released
expiredThe task did not complete and the result can no longer be retrievedNo, reserve released
canceledCanceledNo, 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 sampleEnd-to-end
480P / 2sapprox. 105 seconds
1080P / 30sapprox. 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
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>"
  }
}