中国本土のユーザー向け: 中国本土のユーザーは
https://toapis.cn を API エンドポイント(Base URL)としてご利用ください。本ドキュメント内の例では https://toapis.com を https://toapis.cn に置き換えてください。generation.completed / generation.failed、テストに endpoint.test を送信します。at-least-once 配信のため、同じ event ID を冪等に処理してください。
Token 編集画面で HTTPS の既定 URL、1回だけ表示される32-byte秘密鍵、Webhook 有効化、テストを設定します。callback_url 未指定時は既定 URL を使用し、指定時は同一 scheme/host/port の path/query のみ変更できます。未設定なら 400 webhook_not_configured です。
data.error は, 一部のタスク照会にある reason を保証しません.
task_type は image|video。結果は公開タスク照会と同じ形式で、channel ID、upstream task ID/key、認証情報、PrivateData は含みません。
使用量, 課金とタスク照会の違い
画像と動画の成功イベントはdata.usage を含む場合があります. 課金数量, 取得できたモデルのトークン内訳, ツール使用回数の定義はタスク照会と同じです. タスクの使用量フィールドを参照してください. 動画イベントは data.generation を含む場合もあります. Seedance のメタデータと互換フィールドは動画タスク照会を参照してください.
data.billing は status, credits, cost_usd を含む場合があります. 金額は十進数の文字列で, pending では省略します. refunded は確認済みの正味請求額がゼロであることを示します. 確認できないオブジェクトは省略しますが, 無料とは限りません. Webhook とタスク照会は同じ確認条件を使います. 送信時に一括で課金される固定料金タスクを含め, 課金が確認済みであれば両方とも settled と実際の金額を返します. data.usage に charge_type などの課金数量が含まれる場合, data.billing も必ず settled です.
data.billing のフィールド値
成功イベントは
settled で, 確定時に予約額が全額戻る場合は refunded です. 失敗イベントは返金完了後に送信され, refunded です. 金額を確認できない場合は, data.billing オブジェクト全体を省略します.
data.usage のフィールド値
charge_type から input_images までは課金数量であり, data.billing.status=settled と同時にのみ返されます. トークン内訳とツール使用回数は, 上流モデルが提供したとおりに独立して返されます. 返されないフィールドは省略され, ゼロで補完されません.
Webhook はイベント作成時のスナップショットで, タスク照会は最新の確認済み状態を読み取ります. 使用量や金額の補完を待たずに配信し, 再試行ルールも変わりません. 作成済みのイベントは補完されず, 再試行では元のイベント内容を使用します.
イベント構造と api_version: "v1" は変わりません. Webhook は data.task_id, SUCCESS / FAILURE, 文字列の進行率 "100%" を使います. タスク照会は id, 小文字の状態, 整数の進行率を使います. 時刻フィールドは公開 generation.task 照会と同じ名前と意味で, すべて Unix 秒です. data.created_at はタスクの送信時刻, data.finished_at は終了時刻で, 成功時は data.completed_at と data.expires_at (結果の有効期限, 終了時刻の 24 時間後) も返します. 値のないフィールドは省略します. 従来の data.submitted_at は data.created_at に置き換えられ, 返されなくなりました. イベントのトップレベル created_at はイベント作成時刻で, タスクの送信時刻ではありません. アクセスポリシーによってメディア URL が異なる場合があります.
Seedance 動画の成功イベント例
サンプルはフィールドを示すもので, モデルの現在の価格や固定の課金方式を示すものではありません. 実際のタスクで返されたフィールドと金額を確認してください. Seedance の成功イベントではdata.result.data[] に fallback_url と fallback_last_frame_url が含まれることもあります. url と last_frame_url を優先し, 元の URL にアクセスできない場合のみ対応する代替 URL を使用してください. 代替フィールドの省略はタスク失敗を意味しません. イベントは作成時の URL を保持し, その後コピーが変わっても既存イベントや再試行のペイロードは変更されません. 定義と使用方法は動画タスクの照会を参照してください.
event_id + "." + timestamp + "." + raw_request_body。初回は5分を超える時刻差を拒否し、ローテーション後24時間は新旧署名のどちらかを検証します。
Python
Node.js
Go
2xx のみで、3xx は追従せず、4xx/5xx は再試行します。timeout は10秒です。HTTPS、userinfo、fragment、不正 port、SSRF、DNS/IP、DNS rebinding を配信ごとに検査します。失敗時はタスク照会をフォールバックにし、期限付き result URL は早めに保存してください。本人認証、決済、OAuth callback は対象外です。レート制限。