API
Seedance 2.0 API
VídeoLa API de Seedance 2.0 genera vídeos de 4–15 segundos en 480p / 720p / 1080p / 4K a partir de texto, fotogramas o referencias multimodales. Admite hasta 9 imágenes, 3 vídeos y 3 archivos de audio en modo de referencia. Cada imagen debe ocupar como máximo 30 MB.
Cuerpo
application/jsonmodelstringobligatorioseedance-2-0input.promptstringobligatorioDescribe el sujeto, la acción, la escena, la iluminación, el movimiento de cámara y los tiempos. Se eliminan los espacios al inicio y al final.
input.frames_imagesstring[]opcionalLista de una o dos URL HTTPS públicas de imágenes: fotograma inicial y final opcional. Este modo no se puede combinar con reference_images, reference_videos ni reference_audios.
Con input.frames_images, Seedance 2.0 utiliza automáticamente la relación de aspecto adaptive según los fotogramas proporcionados.
Máximo de URL: 2.
Tamaño máximo por imagen: 30 MB.
Ejemplo: ["https://example.com/first-frame.png","https://example.com/last-frame.png"]
input.reference_imagesstring[]opcionalLista de URL HTTPS públicas de imágenes de referencia. Se puede combinar con reference_videos y reference_audios, pero no con frames_images. Envía cadenas URL, no archivos ni base64.
Máximo de URL: 9.
Tamaño máximo por imagen: 30 MB.
Ejemplo: ["https://example.com/your-image.png"]
input.reference_videosstring[]opcionalLista de URL HTTPS públicas de vídeos de referencia. No se puede combinar con frames_images. Los vídeos cambian el consumo de créditos; consulta la fila y la fórmula correspondientes.
Máximo de URL: 3.
Ejemplo: ["https://example.com/your-video.mp4"]
input.reference_audiosstring[]opcionalLista de URL HTTPS públicas de audio de referencia. Se puede combinar con otras listas reference_*, pero no con frames_images.
Máximo de URL: 3.
Ejemplo: ["https://example.com/your-audio.mp3"]
input.durationintegeropcionalDuración del vídeo en segundos enteros, de 4 a 15. El valor predeterminado es 5. El consumo de créditos depende de la duración.
Predeterminado: 5
input.resolutionstringopcionalResolución del vídeo. Usa uno de los valores en minúsculas indicados abajo. La resolución modifica la tarifa de créditos.
Predeterminado: 720p
input.aspect_ratiostringopcionalRelación entre ancho y alto. El valor predeterminado es 16:9. Los fotogramas pueden guiar la composición final.
Predeterminado: 16:9
input.soundbooleanopcionalIndica si se genera audio junto al vídeo. Por defecto, false. Envía un booleano JSON, no una cadena.
Predeterminado: false
Ejemplos de solicitud
Elige un modo: sin medios para texto a vídeo; frames_images para fotogramas inicial y final; o combina reference_images, reference_videos y reference_audios para generación con referencias. frames_images no se puede combinar con ninguna lista de medios reference_*. Todos los recursos son listas de URL HTTPS públicas, no archivos ni base64. Sustituye las URL example.com. Guarda data.task_id y consulta POST /api/v1/check hasta 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": "seedance-2-0",
"input": {
"prompt": "Un coche clásico rojo recorre una carretera costera al atardecer. La cámara sigue suavemente el lateral del coche mientras la luz cálida se refleja en el océano.",
"duration": 5,
"aspect_ratio": "16:9",
"resolution": "720p",
"sound": false
}
}'POST /api/v1/create · HTTP 201{
"data": {
"task_id": "task_example",
"model": "seedance-2-0",
"status": "processing",
"credits": 750
}
}Consulta este endpoint con el ID de tarea devuelto hasta que la tarea se complete o falle. Recomendamos consultar cada 5 segundos para comprobar el estado más reciente.
POST /api/v1/check{
"task_id": "task_example"
}Respuesta
Estado de la tarea devuelto por POST /api/v1/check. Los ID, URLs y marcas de tiempo siguientes son ilustrativos.
idstringobligatorioIdentificador de la tarea en data.id, igual al task_id enviado en la consulta.
statusstringobligatoriofailed_reasonstringopcionalSolo se devuelve cuando status es failed, para explicar el fallo. Se omite en completed y processing.
Completada · completed
Las URLs de descarga están en data.data.results.
POST /api/v1/check · HTTP 200{
"data": {
"id": "task_example",
"created_at": 1791244800,
"model": "seedance-2-0",
"status": "completed",
"data": {
"results": [
"https://example.com/generated.mp4"
],
"processing_time": 120
}
}
}Otros estados
Con processing o failed, data.data es null. Este ejemplo muestra failed: solo failed incluye failed_reason. Continúa consultando con processing; detente con failed.
POST /api/v1/check · HTTP 200{
"data": {
"id": "task_example",
"created_at": 1791244800,
"model": "seedance-2-0",
"status": "failed",
"data": null,
"failed_reason": "Generation failed."
}
}Consumo de créditos
Créditos por segundo facturable según la resolución y el uso de vídeos de referencia.
| Generación | 480P | 720P | 1080P | 4K |
|---|---|---|---|---|
| Sin vídeos de referencia | 80 | 150 | 400 | 500 |
| Con vídeos de referencia | 48 | 90 | 240 | 300 |
Cada solicitud genera un vídeo. Si omites la duración o la resolución, se aplican los valores predeterminados. Los vídeos de referencia pueden aumentar el consumo; usa la fila y la fórmula correspondientes.
Elige la fila según envíes reference_videos. Total = segundos de vídeo generados × tarifa por segundo. Las imágenes o el audio por sí solos usan la fila sin vídeo de referencia.
El campo credits de la respuesta de POST /api/v1/create muestra los créditos cobrados por la tarea.
