Skip to content

查询任务结果

提交异步图片或视频任务后,Pixapi 会返回任务 id。使用 GET /v1/tasks/{id} 查询状态、进度和最终媒体 URL。

提交方式见 异步媒体任务

端点

方法路径说明
GET/v1/tasks/{id}查询任务状态与结果

鉴权:Authorization: Bearer <API_KEY>

只能查询同一 API Key / 账户创建的任务。未知 id 返回 404

请求

bash
curl --request GET \
  --url 'https://api.pixapi.ai/v1/tasks/task_01KPQ7J7DWB7QZ3WCEK3YVPBRA' \
  --header 'Authorization: Bearer $PIXAPI_KEY'

路径参数:

字段类型必填说明
idstring提交异步任务时返回的任务 id(例如 task_...)。

状态值

状态含义
submitted已接收并排队
processing上游正在生成
completed成功完成,读取 result.data[].url
failed失败,读取 error

轮询直到 statuscompletedfailed。进行中时 resultnull

进行中响应

json
{
  "id": "task_01KPQ7J7DWB7QZ3WCEK3YVPBRA",
  "status": "processing",
  "credits_cost": 64,
  "model": "veo3.1-fast",
  "progress": 40,
  "result": null,
  "created": 1703884800
}

成功响应

json
{
  "id": "task_01KPQ7J7DWB7QZ3WCEK3YVPBRA",
  "status": "completed",
  "credits_cost": 64,
  "model": "veo3.1-fast",
  "progress": 100,
  "result": {
    "type": "video",
    "data": [
      {
        "url": "https://cdn.example.com/output.mp4"
      }
    ]
  },
  "created": 1703884800,
  "completed": 1703884880
}

图片任务的 result.typeimagedata[] 同样包含公网 url

失败响应

json
{
  "id": "task_01KPQ7J7DWB7QZ3WCEK3YVPBRA",
  "status": "failed",
  "credits_cost": 64,
  "model": "veo3.1-fast",
  "progress": 100,
  "error": {
    "code": 400,
    "message": "Upstream generation failed",
    "type": "api_error"
  },
  "created": 1703884800,
  "completed": 1703884820
}

响应字段

字段说明
id任务 id
statussubmitted / processing / completed / failed
credits_cost任务关联积分
model提交时使用的模型 id
progress0100 的整数进度
result成功时有值;进行中为 null
result.typeimagevideo
result.data输出列表;主资源取 result.data[0].url
errorfailed 时出现
created创建时间(Unix 秒)
completed进入终态的时间(Unix 秒)

轮询示例

js
async function waitForTask(taskId) {
  for (;;) {
    const response = await fetch(`https://api.pixapi.ai/v1/tasks/${taskId}`, {
      headers: { Authorization: `Bearer ${process.env.PIXAPI_KEY}` },
    });
    if (!response.ok) throw new Error(await response.text());
    const task = await response.json();
    if (task.status === 'completed' || task.status === 'failed') return task;
    await new Promise((resolve) => setTimeout(resolve, 3000));
  }
}

const task = await waitForTask('task_01KPQ7J7DWB7QZ3WCEK3YVPBRA');
if (task.status === 'completed') {
  console.log(task.result.data[0].url);
} else {
  console.error(task.error);
}

接入建议

  1. 保存异步提交响应里的任务 id
  2. 后端轮询 GET /v1/tasks/{id},建议间隔 2–5 秒并做退避。
  3. statuscompletedfailed 时停止。
  4. result.data[].url(或 error)写入你自己的存储。

不要在纯浏览器端用 Pixapi API Key 做轮询。