API
Wan 3.0 Prime API
動画Wan 3.0 Prime API はテキスト、開始・終了フレーム、マルチモーダル参照から 2~30 秒の動画を 480p / 720p / 1080p で生成します。参照モードの上限は画像 10 枚、動画 5 本、音声 5 ファイルです。画像は 1 枚あたり 30 MB 以下にしてください。
ボディ
application/jsonmodelstring必須wan-3-0-primeinput.promptstring必須被写体、動作、シーン、照明、カメラの動き、時間の流れを記述します。前後の空白は削除されます。
input.frames_imagesstring[]任意公開 HTTPS 画像 URL を 1~2 個含むリストです。開始フレーム、任意の終了フレームの順に指定します。このモードは reference_images、reference_videos、reference_audios と併用できません。
URL の上限:2 個。
画像 1 枚あたりの上限:30 MB。
例: ["https://example.com/first-frame.png","https://example.com/last-frame.png"]
input.reference_imagesstring[]任意公開 HTTPS 参照画像 URL のリストです。reference_videos、reference_audios と組み合わせられますが、frames_images とは併用できません。ファイルや base64 ではなく URL 文字列を指定してください。
URL の上限:10 個。
画像 1 枚あたりの上限:30 MB。
例: ["https://example.com/your-image.png"]
input.reference_videosstring[]任意公開 HTTPS 参照動画 URL のリストです。frames_images とは併用できません。動画を指定するとクレジット消費量が変わります。下記の料金行と計算式を確認してください。
URL の上限:5 個。
例: ["https://example.com/your-video.mp4"]
input.reference_audiosstring[]任意公開 HTTPS 参照音声 URL のリストです。他の reference_* リストと組み合わせられますが、frames_images とは併用できません。
URL の上限:5 個。
例: ["https://example.com/your-audio.mp3"]
input.reference_video_durationnumber任意参照動画すべての合計秒数です。reference_videos 指定時は必須です。課金時は合計を整数秒に切り上げ、追加秒数を最大 15 秒に制限します。参照動画がない場合は省略してください。
input.durationinteger任意動画の長さを 2~30 の整数秒で指定します。既定値は 5 秒です。クレジット消費量は長さに比例します。
デフォルト: 5
input.resolutionstring任意動画の出力解像度です。下記の小文字の値を使用してください。解像度によってクレジット料金が変わります。
デフォルト: 720p
input.aspect_ratiostring任意出力の幅と高さの比率です。既定値は 16:9 です。フレーム画像も最終的な構図に影響します。
デフォルト: 16:9
input.soundboolean任意動画とともに音声を生成するかを指定します。既定値は false です。文字列ではなく JSON の真偽値を送信してください。
デフォルト: false
リクエスト例
生成モードを 1 つ選びます。メディアを省略するとテキストから生成し、frames_images を指定すると開始・終了フレームから生成します。参照モードでは reference_images、reference_videos、reference_audios を組み合わせられます。frames_images と reference_* のメディアリストは併用できません。すべて公開 HTTPS URL のリストで指定し、ファイルオブジェクトや base64 は使用できません。example.com の URL を置き換えてください。data.task_id を保存し、completed または failed まで POST /api/v1/check を呼び出します。
POST /api/v1/createcurl -X POST https://nanobanana.io/api/v1/create \
-H "Authorization: Bearer sk_live_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"model": "wan-3-0-prime",
"input": {
"prompt": "夕暮れの海岸沿いの道路を赤いクラシックカーが走る。カメラは車の側面を滑らかに追い、暖かな光が海面に反射している。",
"duration": 5,
"aspect_ratio": "16:9",
"resolution": "720p",
"sound": false
}
}'POST /api/v1/create · HTTP 201{
"data": {
"task_id": "task_example",
"model": "wan-3-0-prime",
"status": "processing",
"credits": 900
}
}返されたタスク ID を使い、タスクが完了または失敗するまでこのエンドポイントをポーリングしてください。最新状態を確認するため、5 秒ごとのポーリングを推奨します。
POST /api/v1/check{
"task_id": "task_example"
}レスポンス
POST /api/v1/checkが返すタスクの状態です。以下のID、URL、タイムスタンプは例です。
idstring必須data.idはタスクの識別子で、状態確認リクエストのtask_idと一致します。
statusstring必須failed_reasonstring任意statusがfailedの場合にのみ返され、失敗の理由を示します。completedとprocessingではこの項目は含まれません。
完了 · completed
ダウンロードURLはdata.data.resultsにあります。
POST /api/v1/check · HTTP 200{
"data": {
"id": "task_example",
"created_at": 1791244800,
"model": "wan-3-0-prime",
"status": "completed",
"data": {
"results": [
"https://example.com/generated.mp4"
],
"processing_time": 120
}
}
}その他の状態
processingまたはfailedではdata.dataはnullです。以下はfailedの例です。failed_reasonはfailedの場合にのみ含まれます。processingでは状態確認を続け、failedでは停止してください。
POST /api/v1/check · HTTP 200{
"data": {
"id": "task_example",
"created_at": 1791244800,
"model": "wan-3-0-prime",
"status": "failed",
"data": null,
"failed_reason": "Generation failed."
}
}消費クレジット
解像度と参照動画モード別の課金対象 1 秒あたりのクレジット数です。
| 生成方式 | 480P | 720P | 1080P |
|---|---|---|---|
| 参照動画なし | 90 | 180 | 360 |
| 参照動画あり | 90 | 180 | 360 |
1 回のリクエストで動画を 1 本生成します。長さや解像度の省略時は上記の既定値を使います。参照動画により消費量が増える場合があるため、対応する行と計算式を使ってください。
参照動画なし:生成秒数 × 料金。参照動画あり:(生成秒数 + min(15, ceil(reference_video_duration))) × 料金。1 秒あたりの料金は変わらず、参照動画の長さが課金秒数に加算されます。
POST /api/v1/createのレスポンスに含まれるcreditsフィールドが、そのタスクで差し引かれたクレジット数を示します。
