跳到主要内容

异步任务接口(Tasks API)

视频、音乐等耗时任务走 通用任务体系:提交后返回任务 ID,再按 ID 查询状态与结果。

通用说明​

项值
Base URLhttps://187api.com
鉴权Authorization: Bearer <API_KEY>
路径前缀/v1
计费按请求里的 model(「请求并计费模型」)计费
失败退款任务最终失败或取消时,预扣额度会退回

接口一览​

用途方法路径
提交任务POST/v1/tasks/{key}
查询任务GET/v1/tasks/{key}
查询产物列表GET/v1/tasks/{key}/artifacts
下载产物GET/v1/tasks/{key}/artifacts/{artifact_key}/content
信息

路径中的 {key} 在提交接口里是插件标识(如 sora、kling),在查询接口里是任务 ID。

任务状态​

状态含义
queued排队中
in_progress处理中
completed已完成
failed失败(已退款)

上游状态会被归一化到上面四种:

上游状态我们的状态
succeeded / completedcompleted
failed / cancelledfailed
queued / waitingqueued
runningin_progress

提交任务​

POST /v1/tasks/{key}
curl https://187api.com/v1/tasks/sora \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "<视频模型名>",
"prompt": "一只猫在雨中穿过霓虹街道"
}'

响应:

{
"id": "task_xxxxxxxxxxxxxxxxxxxxxxxx",
"task_id": "task_xxxxxxxxxxxxxxxxxxxxxxxx",
"object": "video.task",
"model": "<视频模型名>",
"status": "queued",
"created_at": 1779104464
}
提示

id 与 task_id 值相同,任选其一用于后续查询。

查询任务​

GET /v1/tasks/{task_id}
curl https://187api.com/v1/tasks/task_xxxxxxxxxxxxxxxxxxxxxxxx \
-H "Authorization: Bearer $API_KEY"

响应(data 中含完整任务信息):

{
"code": "success",
"message": "",
"data": {
"id": 1,
"task_id": "task_xxxxxxxxxxxxxxxxxxxxxxxx",
"platform": "sora",
"action": "generations",
"status": "completed",
"progress": "100%",
"result_url": "https://cdn.example.com/....mp4",
"submit_time": 1779104464,
"start_time": 1779104465,
"finish_time": 1779104530,
"quota": 12345,
"fail_reason": ""
}
}

查询产物​

GET /v1/tasks/{task_id}/artifacts

产物是任务的输出文件(如视频、音频)。下载时用产物自己的 key:

GET /v1/tasks/{task_id}/artifacts/{artifact_key}/content
信息

该下载接口支持 TokenOrTaskArtifactAccessAuth —— 既可以用 API Key,也可以用任务级凭据访问。

已支持的任务平台​

按源码中的任务插件:

key平台能力
soraOpenAI Sora文生视频、图生视频、remix
kling快手可灵文生视频、图生视频
jimeng火山引擎即梦文生视频、图生视频、首尾帧
vidu生数 Vidu文生/图生/首尾帧/参考生视频
googleGoogle Veo(Gemini API)文生视频、图生视频
vertex-aiGoogle Veo(Vertex AI)文生视频、图生视频
doubao字节 Seedance视频生成任务
hailuoMiniMax 海螺视频生成
alibaba阿里通义万相图像/视频/多模态生成
xaixAI Grok视频生成、编辑、扩展
sunoapiSunoAPI音乐生成
信息

具体可用的模型名与价格,以控制台的 模型广场 与任务插件配置为准。 不同平台支持的分辨率、时长、参考输入能力不同。

轮询建议​

import time
import requests

HEADERS = {"Authorization": f"Bearer {API_KEY}"}


def wait_task(task_id, interval=10, timeout=1800):
deadline = time.time() + timeout
while time.time() < deadline:
r = requests.get(
f"https://187api.com/v1/tasks/{task_id}", headers=HEADERS, timeout=30
)
r.raise_for_status()
task = r.json()["data"]
if task["status"] in ("completed", "failed"):
return task
time.sleep(interval)
raise TimeoutError("任务超时")


task = wait_task("task_xxxxxxxxxxxxxxxxxxxxxxxx")
if task["status"] == "completed":
print(task.get("result_url"))
else:
print("失败原因:", task.get("fail_reason"))

排错​

现象原因处理
404{key} 写错用上表中的插件 key
403分组不含该任务模型换分组或换模型
任务一直 queued通道排队稍后重试,或在控制台查通道状态
failed上游失败看 fail_reason,额度会自动退回
拿不到产物任务未完成先轮询到 completed

相关:图片接口 · 模型广场 · [常见问题]../reference/faq/overview