Webhook
什么是 Webhook
Token360 可在异步任务进入终态时向你的 HTTPS 地址 POST,免去持续轮询。
| 视频 | POST /v1/videos 的 callback_url | completed / failed |
| 批量任务 | POST /v1/batches 的 callback_url,或控制台 批量任务 → Webhook 账户默认 | completed / failed / cancelled / expired |
| 异步 Chat | 不支持。请轮询 GET /v1/async/chat/completions/{job_id}。多行且需要回调请用 批量任务。 | — |
适合后台处理结果(更新订单、落盘输出、通知用户)。
如何启用 Webhook
调用 POST /v1/videos 时传入两个字段:
callback_url:你的 HTTPS 接收端地址,用于接收回调 POST 请求。request_id:你的业务 ID,例如订单号。Token360 会在回调信封中原样回传该值,方便你匹配本地业务记录。
Shell
1curl -X POST https://api.token360.ai/v1/videos \
2 -H "Authorization: Bearer sk-your-api-key" \
3 -H "Content-Type: application/json" \
4 -d '{
5 "model": "seedance-2.5",
6 "prompt": "A paper crane unfolds into a real bird and flies away.",
7 "resolution": "480p",
8 "duration": 5,
9 "aspect_ratio": "16:9",
10 "generate_audio": false,
11 "callback_url": "https://your-app.example.com/webhooks/video",
12 "request_id": "your-order-id-001"
13 }'未提供 callback_url 时,不会触发回调,你仍需通过 GET /v1/videos/{video_id} 主动轮询结果。
回调触发时机
- Token360 仅在视频任务到达终态时发送回调:
completed或failed。 - 中间状态,例如
queued和in_progress,不会触发回调。 - 同一个视频任务最多成功投递一次回调。如果所有投递尝试都失败,Token360 将放弃投递。
重试与超时
- 单次投递超时:30 秒。
- 最大投递次数:共 3 次,包含首次投递。
- 重试间隔:第 2 次投递前等待 1 秒,第 3 次投递前等待 3 秒。
- 任意一次返回
2xx即停止重试,并标记投递成功。 - 跟随重定向后,最终响应为非
2xx才会触发重试。如果重定向链最终返回2xx,则视为投递成功。 - 3 次均失败后,Token360 放弃投递且不会补发。如需恢复最终状态,请使用
GET /v1/videos/{video_id}查询。
幂等性
- 同一个视频任务
id最多成功投递一次回调。 - 如果多个视频任务复用同一个
request_id,每个任务仍可能各自成功投递一次回调。 - 网络重试仍可能导致极少数重复投递。
- 请将接收端实现为幂等,例如使用
id和status去重。
视频回调请求
认证
Token360 向 callback_url 发送的 POST 请求不携带鉴权 Header。你应通过以下方式保护接收端:
- 仅暴露 HTTPS 端点。
- 使用不可猜测的随机路径,或在回调 URL 中嵌入校验 token。
- 在处理 payload 前,使用
request_id与本地业务记录进行比对。
Request Body
idstringrequired视频任务 ID。与提交响应返回的 id 一致。
statusenum<string>required视频任务终态。
payloadobjectrequired完整视频对象。字段与 GET /v1/videos/{video_id} 的响应一致,包括 id、object、status、model、prompt、url、video_url、duration、parameters、content、usage,以及可用时的 error 字段。
request_idstring创建视频任务时传入的业务 ID。未提供时该字段缺省。
errorobject | null错误详情。仅在 status 为 failed 时返回。
error.codestring供应商或平台错误代码。
error.messagestring可读错误信息。
Response
status_codeintegerrequired返回任意 2xx HTTP 状态码即表示确认投递。跟随重定向后,最终响应为非 2xx 时会触发重试。
bodyany可选响应体。Token360 不读取响应体内容。
此页面对您有帮助吗?