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
| State | Meaning |
|---|---|
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 可能包含 data、origin_data、full_result_data 和 resolution。
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
| Status | Meaning |
|---|---|
401 | 缺少或无效 API key。 |
403 | task 属于另一个 account。 |
404 | task ID 不存在。 |
502 | gateway 无法刷新或读取 task state。 |
Polling guidance
- 从短延迟开始,再指数退避。
success或fail后停止 polling。- 用户等待时设置 client-side timeout。
- 如果用户可以离开页面,要持久化 task ID。