API

Seedance 2.0 API

Vídeo

La 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.

Autorizaciones

Bearerstringheaderobligatorio

Clave API para autorizar solicitudes

Cuerpo

application/json
modelstringobligatorio
seedance-2-0
input.promptstringobligatorio

Describe 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[]opcional

Lista 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[]opcional

Lista 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[]opcional

Lista 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[]opcional

Lista 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.durationintegeropcional

Duració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

4–15
input.resolutionstringopcional

Resolució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

480p720p1080p4k
input.aspect_ratiostringopcional

Relación entre ancho y alto. El valor predeterminado es 16:9. Los fotogramas pueden guiar la composición final.

Predeterminado: 16:9

16:99:161:13:44:321:9
input.soundbooleanopcional

Indica 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/create
curl -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.

idstringobligatorio

Identificador de la tarea en data.id, igual al task_id enviado en la consulta.

statusstringobligatorio
completed indica que la generación tuvo éxito y data.data contiene los resultados. En otros estados, data.data es null.
failed_reasonstringopcional

Solo 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.

Créditos por segundo facturable según la resolución y el uso de vídeos de referencia.
Generación480P720P1080P4K
Sin vídeos de referencia80150400500
Con vídeos de referencia4890240300

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.