Xenodia Docs
API 参考

Task Retrieval API

轮询 Xenodia 异步媒体任务,并读取标准化 task status、result payload 或 failure details。

提交 async media job 后,使用 GET /v1/tasks/:taskId

Endpoint

GET https://api.xenodia.xyz/v1/tasks/{taskId}

cURL

curl "https://api.xenodia.xyz/v1/tasks/task_123" \
  -H "Authorization: Bearer $XENODIA_API_KEY"

Task states

StateMeaning
waiting任务已接受,等待调度。
queuing任务在上游或内部 worker 中排队。
generating正在生成。
success任务完成,result 可用。
fail任务失败,应检查 error

Processing response shape

{
  "task_id": "task_123",
  "object": "task",
  "request_id": "req_abc",
  "model": "veo3.1_fast",
  "type": "video",
  "state": "generating",
  "request": {
    "prompt": "A cinematic close-up of a developer dashboard.",
    "resolution": "720p"
  },
  "result": {},
  "error": {},
  "progress": 42,
  "poll_url": "/v1/tasks/task_123",
  "created_at": 1760000000,
  "updated_at": 1760000030
}

Success response shape

{
  "task_id": "task_123",
  "object": "task",
  "request_id": "req_abc",
  "model": "nano-banana-pro",
  "type": "image",
  "state": "success",
  "request": {
    "prompt": "A clean product render",
    "n": 1,
    "response_format": "url",
    "aspect_ratio": "16:9",
    "resolution": "2K"
  },
  "result": {
    "created": 1760000100,
    "data": [
      {
        "url": "https://cdn.example.com/generated.png"
      }
    ]
  },
  "error": {},
  "progress": 100,
  "poll_url": "/v1/tasks/task_123",
  "created_at": 1760000000,
  "updated_at": 1760000100,
  "completed_at": 1760000100
}

Video result 使用同一 envelope。result 可能包含 dataorigin_datafull_result_dataresolution

Failure response shape

{
  "task_id": "task_123",
  "object": "task",
  "request_id": "req_abc",
  "model": "veo3.1_fast",
  "type": "video",
  "state": "fail",
  "request": {
    "prompt": "A cinematic close-up of a developer dashboard.",
    "resolution": "720p"
  },
  "result": {},
  "error": {
    "message": "task failed"
  },
  "progress": 100,
  "poll_url": "/v1/tasks/task_123"
}

Error statuses

StatusMeaning
401缺少或无效 API key。
403task 属于另一个 account。
404task ID 不存在。
502gateway 无法刷新或读取 task state。

Polling guidance

  • 从短延迟开始,再指数退避。
  • successfail 后停止 polling。
  • 用户等待时设置 client-side timeout。
  • 如果用户可以离开页面,要持久化 task ID。

本页内容