API
Wan 3.0 API
VideoDie Wan 3.0 API erzeugt Videos von 2–30 Sekunden in 480p / 720p / 1080p aus Text, Einzelbildern oder multimodalen Referenzen. Im Referenzmodus sind bis zu 10 Bilder, 5 Videos und 5 Audiodateien möglich. Jedes Bild darf höchstens 30 MB groß sein.
Body
application/jsonmodelstringerforderlichwan-3-0input.promptstringerforderlichBeschreibe Motiv, Handlung, Szene, Beleuchtung, Kamerabewegung und zeitlichen Ablauf. Leerzeichen am Anfang und Ende werden entfernt.
input.frames_imagesstring[]optionalListe mit einer oder zwei öffentlichen HTTPS-Bild-URLs: Startbild und optionales Endbild. Dieser Modus ist nicht mit reference_images, reference_videos oder reference_audios kombinierbar.
Maximale URL-Anzahl: 2.
Maximale Größe pro Bild: 30 MB.
Beispiel: ["https://example.com/first-frame.png","https://example.com/last-frame.png"]
input.reference_imagesstring[]optionalListe öffentlicher HTTPS-Referenzbild-URLs. Mit reference_videos und reference_audios kombinierbar, jedoch nicht mit frames_images. Sende URL-Zeichenfolgen, keine Dateien oder Base64-Daten.
Maximale URL-Anzahl: 10.
Maximale Größe pro Bild: 30 MB.
Beispiel: ["https://example.com/your-image.png"]
input.reference_videosstring[]optionalListe öffentlicher HTTPS-Referenzvideo-URLs. Nicht mit frames_images kombinieren. Videos ändern den Credit-Verbrauch; siehe die entsprechende Tarifzeile und Formel.
Maximale URL-Anzahl: 5.
Beispiel: ["https://example.com/your-video.mp4"]
input.reference_audiosstring[]optionalListe öffentlicher HTTPS-Referenzaudio-URLs. Mit anderen reference_*-Listen kombinierbar, jedoch nicht mit frames_images.
Maximale URL-Anzahl: 5.
Beispiel: ["https://example.com/your-audio.mp3"]
input.reference_video_durationnumberoptionalGesamtdauer aller Referenzvideos in Sekunden. Bei reference_videos erforderlich. Für die Abrechnung wird auf ganze Sekunden aufgerundet und auf 15 zusätzliche Sekunden begrenzt. Ohne Referenzvideos weglassen.
input.durationintegeroptionalVideodauer in ganzen Sekunden von 2 bis 30. Standard: 5. Der Credit-Verbrauch steigt mit der Dauer.
Standard: 5
input.resolutionstringoptionalVideoauflösung. Verwende einen der unten aufgeführten kleingeschriebenen Werte. Die Auflösung bestimmt den Credit-Tarif.
Standard: 720p
input.aspect_ratiostringoptionalVerhältnis von Breite zu Höhe. Standard: 16:9. Einzelbilder können den endgültigen Bildaufbau vorgeben.
Standard: 16:9
input.soundbooleanoptionalLegt fest, ob zusammen mit dem Video Audio erzeugt wird. Standard: false. Sende einen JSON-Boolean, keine Zeichenfolge.
Standard: false
Anfragebeispiele
Wähle einen Modus: ohne Medien für Text zu Video; frames_images für Start- und Endbilder; oder kombiniere reference_images, reference_videos und reference_audios für Referenzen. frames_images darf nicht mit reference_*-Medienlisten kombiniert werden. Alle Ressourcen sind Listen öffentlicher HTTPS-URLs, keine Dateien oder Base64-Daten. Ersetze die example.com-URLs. Speichere data.task_id und frage POST /api/v1/check bis completed oder failed ab.
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",
"input": {
"prompt": "Ein roter Oldtimer fährt bei Sonnenuntergang auf einer Küstenstraße. Die Kamera folgt sanft der Seite des Autos, während sich warmes Licht im Meer spiegelt.",
"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",
"status": "processing",
"credits": 600
}
}Fragen Sie diesen Endpunkt mit der zurückgegebenen Aufgaben-ID ab, bis die Aufgabe abgeschlossen ist oder fehlschlägt. Wir empfehlen eine Abfrage alle 5 Sekunden, um den aktuellen Status zu prüfen.
POST /api/v1/check{
"task_id": "task_example"
}Antwort
Aufgabenstatus von POST /api/v1/check. Die folgenden IDs, URLs und Zeitstempel dienen als Beispiele.
idstringerforderlichAufgabenkennung in data.id, identisch mit task_id in der Statusabfrage.
statusstringerforderlichfailed_reasonstringoptionalWird nur bei status failed zurückgegeben und erklärt die Fehlerursache. Bei completed und processing fehlt dieses Feld.
Abgeschlossen · completed
Download-URLs stehen in data.data.results.
POST /api/v1/check · HTTP 200{
"data": {
"id": "task_example",
"created_at": 1791244800,
"model": "wan-3-0",
"status": "completed",
"data": {
"results": [
"https://example.com/generated.mp4"
],
"processing_time": 120
}
}
}Andere Statuswerte
Bei processing oder failed ist data.data null. Dieses Beispiel zeigt failed: Nur failed enthält failed_reason. Bei processing weiter abfragen, bei failed aufhören.
POST /api/v1/check · HTTP 200{
"data": {
"id": "task_example",
"created_at": 1791244800,
"model": "wan-3-0",
"status": "failed",
"data": null,
"failed_reason": "Generation failed."
}
}Credit-Verbrauch
Credits pro abrechenbarer Sekunde nach Auflösung und Referenzvideo-Modus.
| Generierung | 480P | 720P | 1080P |
|---|---|---|---|
| Ohne Referenzvideos | 60 | 120 | 240 |
| Mit Referenzvideos | 60 | 120 | 240 |
Jede Anfrage erzeugt ein Video. Ohne Dauer oder Auflösung gelten die Standardwerte oben. Referenzvideos können mehr Credits verbrauchen; nutze die passende Zeile und Formel.
Ohne Referenzvideos: erzeugte Sekunden × Tarif. Mit Referenzvideos: (erzeugte Sekunden + min(15, ceil(reference_video_duration))) × Tarif. Der Sekundentarif bleibt gleich; die Referenzdauer erhöht die abrechenbaren Sekunden.
Das Feld credits in der Antwort von POST /api/v1/create zeigt die für die Aufgabe abgebuchten Credits.
