API
Wan 3.0 API
VideoL’API Wan 3.0 genera video di 2–30 secondi in 480p / 720p / 1080p da testo, fotogrammi o riferimenti multimodali. La modalità riferimento accetta fino a 10 immagini, 5 video e 5 file audio. Ogni immagine deve avere dimensioni massime di 30 MB.
Corpo
application/jsonmodelstringobbligatoriowan-3-0input.promptstringobbligatorioDescrivi soggetto, azione, scena, illuminazione, movimento della telecamera e tempi. Gli spazi iniziali e finali vengono rimossi.
input.frames_imagesstring[]opzionaleLista di uno o due URL di immagini HTTPS pubblici: fotogramma iniziale e finale facoltativo. Questa modalità non può essere combinata con reference_images, reference_videos o reference_audios.
Numero massimo di URL: 2.
Dimensione massima per immagine: 30 MB.
Esempio: ["https://example.com/first-frame.png","https://example.com/last-frame.png"]
input.reference_imagesstring[]opzionaleLista di URL HTTPS pubblici di immagini di riferimento. Combinabile con reference_videos e reference_audios, ma non con frames_images. Invia stringhe URL, non file o base64.
Numero massimo di URL: 10.
Dimensione massima per immagine: 30 MB.
Esempio: ["https://example.com/your-image.png"]
input.reference_videosstring[]opzionaleLista di URL HTTPS pubblici di video di riferimento. Non combinare con frames_images. I video modificano il consumo di crediti; consulta la riga e la formula corrispondenti.
Numero massimo di URL: 5.
Esempio: ["https://example.com/your-video.mp4"]
input.reference_audiosstring[]opzionaleLista di URL HTTPS pubblici di audio di riferimento. Combinabile con altre liste reference_*, ma non con frames_images.
Numero massimo di URL: 5.
Esempio: ["https://example.com/your-audio.mp3"]
input.reference_video_durationnumberopzionaleDurata totale in secondi dei video di riferimento. Obbligatoria con reference_videos. Per la fatturazione il totale viene arrotondato per eccesso, fino a un massimo di 15 secondi aggiuntivi. Ometti senza video di riferimento.
input.durationintegeropzionaleDurata del video in secondi interi, da 2 a 30. Il valore predefinito è 5. I crediti consumati dipendono dalla durata.
Predefinito: 5
input.resolutionstringopzionaleRisoluzione video. Usa uno dei valori in minuscolo elencati sotto. La risoluzione determina la tariffa in crediti.
Predefinito: 720p
input.aspect_ratiostringopzionaleRapporto tra larghezza e altezza. Il valore predefinito è 16:9. I fotogrammi possono guidare la composizione finale.
Predefinito: 16:9
input.soundbooleanopzionaleIndica se generare audio insieme al video. Il valore predefinito è false. Invia un booleano JSON, non una stringa.
Predefinito: false
Esempi di richiesta
Scegli una modalità: nessun contenuto multimediale per testo in video; frames_images per fotogrammi iniziale e finale; oppure combina reference_images, reference_videos e reference_audios per i riferimenti. frames_images non può essere combinato con liste multimediali reference_*. Le risorse sono liste di URL HTTPS pubblici, non file o base64. Sostituisci gli URL example.com. Salva data.task_id e interroga POST /api/v1/check fino a completed o failed.
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": "Un’auto d’epoca rossa percorre una strada costiera al tramonto. La telecamera segue dolcemente il fianco dell’auto mentre la luce calda si riflette sul mare.",
"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
}
}Interroga questo endpoint usando l’ID attività restituito finché l’attività non viene completata o fallisce. Consigliamo un polling ogni 5 secondi per controllare lo stato più recente.
POST /api/v1/check{
"task_id": "task_example"
}Risposta
Stato dell’attività restituito da POST /api/v1/check. ID, URL e timestamp seguenti sono esempi.
idstringobbligatorioIdentificatore dell’attività in data.id, uguale al task_id inviato nella richiesta di verifica.
statusstringobbligatoriofailed_reasonstringopzionaleRestituito solo quando status è failed, per spiegare il motivo dell’errore. Il campo è omesso per completed e processing.
Completata · completed
Gli URL di download sono 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
}
}
}Altri stati
Con processing o failed, data.data è null. Questo esempio mostra failed: solo failed include failed_reason. Continua le verifiche con processing; interrompile con failed.
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."
}
}Consumo di crediti
Crediti per secondo fatturabile in base a risoluzione e modalità dei riferimenti video.
| Generazione | 480P | 720P | 1080P |
|---|---|---|---|
| Senza video di riferimento | 60 | 120 | 240 |
| Con video di riferimento | 60 | 120 | 240 |
Ogni richiesta genera un video. Se durata o risoluzione sono omesse, si applicano i valori predefiniti. I riferimenti video possono aumentare il consumo; usa la riga e la formula appropriate.
Senza video di riferimento: secondi generati × tariffa. Con video: (secondi generati + min(15, ceil(reference_video_duration))) × tariffa. La tariffa al secondo non cambia; la durata del riferimento aggiunge secondi fatturabili.
Il campo credits restituito da POST /api/v1/create mostra i crediti addebitati per l’attività.
