跳转到主要内容
ToAPIs 为异步图片和视频任务发送统一的最终状态事件。第一版只发送最终成功、最终失败和测试事件,不发送中间进度事件。 ToAPIs 提供至少一次投递,同一事件重试时 id 保持不变,但不保证恰好一次。接收方必须先持久化 event ID,再执行订单更新、发货等副作用;重复 event ID 应直接返回 2xx

配置 Token

在 ToAPIs 控制台编辑 Token:
  1. 配置 HTTPS 默认 callback URL。
  2. 生成 32 字节签名密钥。密钥仅在生成或轮换时显示一次,请立即安全保存。
  3. 启用“任务 Webhook”并保存。
  4. 发送测试事件,确认接收端能验签并返回 2xx
任务请求未传 callback_url 时,ToAPIs 使用 Token 默认地址。请求级 callback_url 只能覆盖路径和查询参数,协议、域名和端口必须与 Token 默认地址相同。 如果 Token 未启用 Webhook,或缺少默认地址/签名密钥,却在请求中传入 callback_url,ToAPIs 返回:

事件类型与 Payload

task_type 只会是 imagevideoresult 与对应任务查询接口的标准化公开结果一致,不包含渠道 ID、上游任务 ID、上游密钥、内部凭证或 PrivateData

generation.completed

generation.failed

只有内部重试已经结束、最终计费或退款已经完成时,ToAPIs 才会发送失败事件。暂时性失败不会触发 generation.failed

endpoint.test

请求头与签名

签名原文必须使用未经解析、未经重新序列化的原始请求体:
算法为 HMAC-SHA256,输出为小写十六进制。首次收到事件时,应拒绝与本地时间相差超过 5 分钟的时间戳。重试使用实际发送时间重新签名,但 event ID 不变。 密钥轮换后 24 小时内,ToAPIs 同时发送当前密钥和上一密钥的两个 v1 签名。接收方应拆分逗号分隔的签名,并接受任意一个有效值。

Python

Node.js

Go

投递、重试与安全

  • 首次投递立即执行;失败后约在 10 秒、30 秒、2 分钟、10 分钟、1 小时、6 小时和 24 小时后重试。
  • 只有 2xx 被视为成功。3xx 不会自动跟随,4xx5xx 都会按计划重试。
  • 单次 HTTP 请求超时为 10 秒,ToAPIs 最多读取 4 KB 响应体用于脱敏后的诊断。
  • callback URL 必须使用 HTTPS,禁止 userinfo、fragment、私网、回环、链路本地、保留地址和非法端口。
  • 每次投递都会重新执行 DNS/IP 与 SSRF 校验,并把连接固定到已校验的公网 IP,避免 DNS rebinding。
  • 回调延迟或最终失败时,请使用任务查询接口兜底;轮询应遵守异步任务速率限制
  • 结果 URL 可能具有有效期,请在收到事件后及时下载和保存所需文件。
Seedance 真人认证的 callback_url、支付 Webhook 和 OAuth callback 保持原有协议,不属于异步生成任务 Webhook。