Wan 3.0
Wan 3.0 API リファレンス。480p・720p・1080p の動画生成、パラメーター、リクエスト例、タスクの状態確認、ダウンロード、料金を解説します。
Wan 3.0 はテキスト、画像、参照素材を入力に使い、480p、720p、1080p の動画を出力できます。標準モデルには、このエンドポイントを使ってください。1080p を選んでも Pro には切り替わりません。モデルの詳細と Playground。
Wan API に接続する
API のベース URL は https://api.wanapi.app です。API キー設定でキーを作成し、Authorization: Bearer YOUR_API_KEY ヘッダーで送信してください。キーはサーバー側で保管します。Playground はウェブサイトのログインセッションを使い、同じアカウントの残高から課金します。ブラウザーにキーを貼り付ける必要はありません。
利用には、有効なアカウントと十分な残高が必要です。現在の単価は料金をご確認ください。モデルごとに専用のエンドポイントとモデルページがあります。
GET /v1/models で、そのキーから利用できるモデルを取得できます。高い解像度を選んでも、モデルは自動で切り替わりません。
| 設定 | Wan 3.0 |
|---|---|
| モデル ID | wan3.0-video |
resolution | 480p, 720p, 1080p。既定値:1080p。 |
duration | 出力の長さは 2–30 秒。-1 は自動設定。既定値:5。 |
ratio | adaptive、16:9、4:3、1:1、3:4、9:16。既定値:adaptive。 |
audio | 既定値は true。false にしても単価は下がりません。 |
14 個すべてのネイティブフィールド、メディアの制限、入力の組み合わせについては、共通のリクエストフィールドを参照してください。このモデルでは、ネイティブリクエストの URL 内と Responses リクエストの model 値に wan3.0-video を使います。
Wan 3.0 のタスクを送信する
この例では、モデルが対応する最低解像度で、テキストから 2 秒の動画を生成します。サーバー側で WAN_API_KEY にご自身のキーを設定してください。モデルは URL で指定するため、このネイティブ JSON 本文に model フィールドを追加しないでください。
curl https://api.wanapi.app/wan/v1/wan3.0-video/generation \
-H "Authorization: Bearer $WAN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "A blue ball rolls across a white table. Static camera.",
"duration": 2,
"resolution": "480p",
"ratio": "16:9",
"audio": false,
"prompt_extend": false
}'Wan 3.0 のタスクを確認する
返された task_info.id を TASK_ID として保存し、同じモデルのエンドポイントで状態を確認します。送信時のレスポンスはタスクの受付結果であり、完成した動画ではありません。最初は 5 秒間隔で状態を確認してください。タスクの状態とダウンロードも参照してください。
curl "https://api.wanapi.app/wan/v1/wan3.0-video/generation/$TASK_ID" \
-H "Authorization: Bearer $WAN_API_KEY"Wan 3.0 の料金
表には、課金対象 1 秒あたりの現在の USD 建て単価を表示しています。参照動画の入力秒数と生成動画の出力秒数が、両方とも課金対象です。5 秒の例では参照動画を使用していません。残高の確保と精算については、課金とエラー処理を参照してください。
| 解像度 | 公式定価 | Wan API | 5 秒の出力 |
|---|---|---|---|
| 480p | $0.050 | 料金を取得できません | — |
| 720p | $0.100 | 料金を取得できません | — |
| 1080p | $0.200 | 料金を取得できません | — |
現在の料金は USD 表記です。比較のため、公式定価も掲載しています。
課金対象の秒数 = 参照動画の入力秒数 + 生成動画の出力秒数です。テキストと画像の入力は動画秒数に加算されません。音声生成をオフにしても、1 秒あたりの料金は変わりません。
5 秒の例では参照動画を使用していません。5 秒の参照動画と 5 秒の出力を組み合わせると、10 秒分が課金対象になります。
料金更新日:2026-10-13
リクエストフィールド
4 モデル共通で、次の 14 個のネイティブフィールドを使います。プロンプト、または 1 つ以上のメディア入力を指定してください。フレームは参照入力、file、link と併用できません。file と link も同時には指定できません。
| フィールド | 型 | 仕様 |
|---|---|---|
prompt | string | 最大 20,000 文字。 |
first_frame | string | 画像の HTTP(S) URL、画像のデータ URI、または Base64。 |
last_frame | string | 画像の HTTP(S) URL、画像のデータ URI、または Base64。 |
reference_images | string[] | 最大 10 枚。フレームと同じ入力形式に対応。 |
reference_videos | string[] | 公開 MP4/MOV URL を最大 5 件。各動画は 1–15 秒、参照動画の合計は最大 15 秒。 |
reference_audios | string[] | 音声の HTTP(S) URL を最大 5 件。 |
file | string | 公開文書の URL。 |
link | string | 公開ウェブページの URL。 |
resolution | string | モデル一覧の表を参照。既定値:1080p。 |
ratio | string | adaptive、16:9、4:3、1:1、3:4、9:16。既定値:adaptive。 |
duration | integer | 出力の長さは 2–30 秒。-1 は自動設定。既定値:5。 |
audio | boolean | 音声を生成するかどうか。既定値:true。オフにしても単価は下がりません。 |
seed | integer | 0–2147483647。省略するとランダムに生成。 |
prompt_extend | boolean | プロンプトを拡張するかどうか。既定値:true。 |
メディアには、タスクが完了するまで直接アクセスできる安定した URL を使ってください。動画の長さの確認では、HTTP Range リクエストで範囲を限定して読み取ります。動画サーバーはこの読み取りに対応し、MP4/MOV の長さを示すメタデータを読み取れる状態で提供する必要があります。長さの確認時にはリダイレクトをたどりません。プライベートネットワークの URL は利用できません。参照動画と出力動画の合計は 30 秒以内に収めてください。Playground の JSON リクエスト本文は最大 32 MiB です。大きい入力には URL を使ってください。
状態を確認して動画をダウンロードする
どのモデルの送信エンドポイントも、API 利用者向けのタスク ID を返します。次の処理に進む前に、必ず保存してください。
{
"task_info": {
"id": "task_EXAMPLE",
"status": "pending"
}
}使用したモデルの章にある問い合わせの例を使ってください。最初は 5 秒間隔で確認し、一時的なエラーが発生した場合は間隔を延ばします。各タスクのモデル ID は、タスク ID と一緒に保管してください。別のモデルのエンドポイントから問い合わせないでください。
ネイティブ API のステータスは pending、processing、completed、failed です。完了時のレスポンスには、Bunny CDN の完全な署名付き URL を格納した videos 配列が含まれます。
{
"task_info": { "id": "task_EXAMPLE", "status": "completed" },
"videos": ["https://reapiflexible.b-cdn.net/flexible/v1/expires/2026-11/20261113T06/wanapi-task_EXAMPLE/video.mp4?token=HS256_SIGNATURE&expires=1794550071"]
}返された URL をそのまま再生やダウンロードに使用できます。この URL には API キーや Authorization ヘッダーは不要です。ファイルにはストレージの既存の保存ポリシーが適用されます。タスクを再度問い合わせても、動画の再生成や追加料金は発生せず、ファイルの保存期限も延長されません。長期保存が必要なファイルは、ご自身のストレージに保存してください。タスクの問い合わせには API キーが必要で、自分のアカウントが所有するタスクのみ取得できます。
Responses の同期処理とバックグラウンド処理
Responses API を使うクライアントでは、POST /v1/responses にモデル ID、文字列の input、同じネイティブ生成フィールドを指定できます。prompt の代わりに input を使ってください。reference_images などのネイティブメディアフィールドは、引き続き最上位のフィールドとして指定します。
{
"model": "wan3.0-video",
"input": "A blue ball rolls across a white table.",
"resolution": "480p",
"duration": 2,
"background": true
}background: true の場合は、レスポンス ID を保存し、GET /v1/responses/{response_id} で状態を確認します。background を指定しない場合、HTTP リクエストは完了まで待機します。stream: true を指定すると、待機中に Server-Sent Events を受信できます。最終的なアシスタント出力には、署名付きの動画 URL が含まれます。このリンクを持つ人は動画にアクセスできるため、非公開の情報として扱い、誤って公開しないでください。生成に時間がかかる場合やプロキシのタイムアウトが短い場合は、ネイティブのタスク送信または Responses のバックグラウンド処理を推奨します。
同期リクエストの接続が切れたりタイムアウトしたりしても、生成はキャンセルされません。タスクはサーバーに残ります。同じ生成リクエストを自動で再送しないでください。
課金とエラー処理
料金は、モデルの解像度別単価に課金対象の秒数を掛けて計算します。参照動画と出力動画の秒数が両方とも対象です。テキスト、画像、音声の入力は動画秒数に加算されません。参照動画を使わない長さ指定のリクエストでは、指定した出力秒数分の残高を確保します。長さの自動設定や参照動画を使うリクエストでは、最大 30 秒分の残高を確保し、実測した使用量で精算して未使用分を返却します。生成に失敗した場合は、確保した残高を解放します。状態確認を繰り返しても、新しい動画の生成や追加の課金は発生しません。
- 無効なパラメーター: リクエストを修正してから再送してください。未定義のネイティブフィールドは拒否されます。
- 残高不足: 次の有料リクエストを送る前に入金してください。キーの利用上限を設定しても、アカウントの残高は増えません。
- レート制限や一時的な状態確認の失敗: 待機間隔を徐々に延ばし、最大待機時間を設けて、状態の問い合わせだけを再試行してください。
- 送信のタイムアウト、通信の中断、タスク ID の未取得: 送信結果を確定できない場合があります。別の有料タスクが作成される可能性があるため、POST を自動で再送しないでください。
- タスクの失敗: 状態の問い合わせができない場合とは区別して、生成の失敗を表示してください。
- ダウンロードの失敗: 別の生成を開始する前に、完了済みのタスクのダウンロードを再試行してください。
生成リクエストの送信は、自動で再試行されたり、別のモデルへ切り替えられたりしません。キャンセル、Webhook、冪等性キーについて、提供を保証する仕様は公開していません。送信結果が不明で調査が必要な場合は、タスク ID を保管し、サポートにお問い合わせください。