API
Wan 3.0 Prime API
VídeoA API do Wan 3.0 Prime gera vídeos de 2–30 segundos em 480p / 720p / 1080p a partir de texto, quadros ou referências multimodais. O modo de referência aceita até 10 imagens, 5 vídeos e 5 arquivos de áudio. Cada imagem deve ter no máximo 30 MB.
Corpo
application/jsonmodelstringobrigatóriowan-3-0-primeinput.promptstringobrigatórioDescreva o sujeito, a ação, a cena, a iluminação, o movimento de câmera e o ritmo. Espaços no início e no fim são removidos.
input.frames_imagesstring[]opcionalLista de uma ou duas URLs HTTPS públicas de imagens: quadro inicial e final opcional. Este modo não pode ser combinado com reference_images, reference_videos ou reference_audios.
Máximo de URLs: 2.
Tamanho máximo por imagem: 30 MB.
Exemplo: ["https://example.com/first-frame.png","https://example.com/last-frame.png"]
input.reference_imagesstring[]opcionalLista de URLs HTTPS públicas de imagens de referência. Pode ser combinada com reference_videos e reference_audios, mas não com frames_images. Envie strings de URL, não arquivos ou base64.
Máximo de URLs: 10.
Tamanho máximo por imagem: 30 MB.
Exemplo: ["https://example.com/your-image.png"]
input.reference_videosstring[]opcionalLista de URLs HTTPS públicas de vídeos de referência. Não combine com frames_images. Os vídeos alteram o consumo de créditos; veja a linha e a fórmula correspondentes.
Máximo de URLs: 5.
Exemplo: ["https://example.com/your-video.mp4"]
input.reference_audiosstring[]opcionalLista de URLs HTTPS públicas de áudios de referência. Pode ser combinada com outras listas reference_*, mas não com frames_images.
Máximo de URLs: 5.
Exemplo: ["https://example.com/your-audio.mp3"]
input.reference_video_durationnumberopcionalDuração total em segundos dos vídeos de referência. Obrigatória com reference_videos. Na cobrança, o total é arredondado para cima e limitado a 15 segundos adicionais. Omita quando não houver vídeos de referência.
input.durationintegeropcionalDuração do vídeo em segundos inteiros, de 2 a 30. O padrão é 5. O consumo de créditos varia com a duração.
Padrão: 5
input.resolutionstringopcionalResolução do vídeo. Use um dos valores em minúsculas listados abaixo. A resolução altera a tarifa de créditos.
Padrão: 720p
input.aspect_ratiostringopcionalProporção entre largura e altura. O padrão é 16:9. Os quadros podem orientar a composição final.
Padrão: 16:9
input.soundbooleanopcionalDefine se o áudio será gerado junto com o vídeo. O padrão é false. Envie um booleano JSON, não uma string.
Padrão: false
Exemplos de requisição
Escolha um modo: sem mídia para texto para vídeo; frames_images para quadros inicial e final; ou combine reference_images, reference_videos e reference_audios para gerar com referências. frames_images não pode ser combinado com listas de mídia reference_*. Os recursos são listas de URLs HTTPS públicas, não arquivos ou base64. Substitua as URLs example.com. Salve data.task_id e consulte POST /api/v1/check até completed ou 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-prime",
"input": {
"prompt": "Um carro clássico vermelho percorre uma estrada costeira ao pôr do sol. A câmera acompanha suavemente a lateral do carro enquanto a luz quente se reflete no oceano.",
"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
}
}Consulte este endpoint usando o ID da tarefa retornado até que a tarefa seja concluída ou falhe. Recomendamos consultar a cada 5 segundos para verificar o status mais recente.
POST /api/v1/check{
"task_id": "task_example"
}Resposta
Status da tarefa retornado por POST /api/v1/check. Os IDs, URLs e horários abaixo são ilustrativos.
idstringobrigatórioIdentificador da tarefa em data.id, igual ao task_id enviado na consulta.
statusstringobrigatóriofailed_reasonstringopcionalRetornado somente quando status é failed, para explicar a falha. O campo é omitido em completed e processing.
Concluída · completed
Os URLs de download estão em 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
}
}
}Outros status
Em processing ou failed, data.data é null. Este exemplo mostra failed: somente failed inclui failed_reason. Continue consultando em processing; pare em 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."
}
}Consumo de créditos
Créditos por segundo faturável, por resolução e uso de vídeos de referência.
| Geração | 480P | 720P | 1080P |
|---|---|---|---|
| Sem vídeos de referência | 90 | 180 | 360 |
| Com vídeos de referência | 90 | 180 | 360 |
Cada requisição gera um vídeo. Se a duração ou resolução forem omitidas, aplicam-se os padrões acima. Vídeos de referência podem aumentar o consumo; use a linha e a fórmula correspondentes.
Sem vídeo de referência: segundos gerados × tarifa. Com vídeo: (segundos gerados + min(15, ceil(reference_video_duration))) × tarifa. A tarifa por segundo não muda; a duração de referência acrescenta segundos faturáveis.
O campo credits retornado por POST /api/v1/create mostra os créditos cobrados pela tarefa.
