Generacion de video con Seedance 2.5 · 30s (asincrona): duration debe ser uno de estos segundos: 30 (720P admite 30s), resolucion 720P, size 16:9 / 9:16 / 1:1 / 4:3 / 3:4; incluye image para imagen a video (hasta 9 referencias). Devuelve un id de trabajo (HTTP 202); consulta GET /v1/videos/jobs/{id} hasta status=succeeded y lee el resultado en data[0].url. Facturado POR CLIP: $1.50 (por defecto 720P); dentro de un mismo nivel, el clip mas corto y el mas largo cuestan lo mismo. Reembolso integro si falla.
Probar en el Playground →Autenticación
Authorization: Bearer YOUR_API_KEY Content-Type: application/json
Crea una clave API en la consola para empezar.
Cuerpo de la petición
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| model | string | Sí | ID del modelo; aquí seedance-2.5-30s. |
| prompt | string | Sí | Prompt de texto que describe el vídeo, la cámara y el movimiento. Máximo 5000 bytes (UTF-8; un carácter chino cuenta como 3). |
| duration | integer | No | La duracion debe ser uno de estos valores en segundos: 30 (por defecto 30); alias seconds. 720P admite 30s. Se factura POR CLIP, asi que la duracion no cambia el precio. |
| resolution | string | No | Resolución: $1.50 (por defecto 720P). El precio lo fija la resolución, no la duración. |
| size | string | No | Relación de aspecto: 16:9 / 9:16 / 1:1 / 4:3 / 3:4 (por defecto 16:9); alias aspect_ratio. Este modelo no admite 21:9. |
| image | string | No | Imagen a vídeo: incluye una imagen de referencia (URL pública, data: URI o base64); omítela para texto a vídeo. |
| images | array | No | Varias imágenes de referencia. Hasta 9. Si superas el límite se rechaza en lugar de recortar. Alias reference_images. |
Ejemplo de petición
# 1) submit -> 202 {"id":"img_...","status":"queued"}
curl https://nezhagate.com/v1/videos/generations -H 'Authorization: Bearer YOUR_API_KEY' -H 'Content-Type: application/json' -d '{"model": "seedance-2.5-30s", "prompt": "a paper crane unfolding over a misty lake", "duration": 30, "resolution": "720P", "size": "16:9"}'
# image-to-video: also pass "image": "https://example.com/ref.png"
# 2) poll every ~5s until status=succeeded, then read data[0].url
curl https://nezhagate.com/v1/videos/jobs/img_3f9a...c2 -H 'Authorization: Bearer YOUR_API_KEY'Respuesta
{
"id": "img_3f9a...c2",
"object": "video.generation.job",
"status": "queued",
"model": "seedance-2.5-30s"
}Trabajo de vídeo asíncrono (enviar → consultar)
Al enviar recibes al instante HTTP 202 y un id de trabajo; consulta hasta que status=succeeded y lee data[0].url (un enlace mp4). Los valores admitidos de duración, resolución y tamaño están en la tabla de parámetros de arriba; añade un parámetro image para imagen a vídeo.
curl https://nezhagate.com/v1/videos/generations -H 'Authorization: Bearer YOUR_API_KEY' -H 'Content-Type: application/json' -d '{"model": "seedance-2.5-30s", "prompt": "un gato surfeando al atardecer", "size": "16:9"}'{ "id": "img_3f9a...c2", "object": "video.generation.job", "status": "queued", "model": "seedance-2.5-30s" }curl https://nezhagate.com/v1/videos/jobs/img_3f9a...c2 -H 'Authorization: Bearer YOUR_API_KEY'
{
"id": "img_3f9a...c2",
"object": "video.generation.job",
"status": "succeeded",
"model": "seedance-2.5-30s",
"data": [{ "url": "https://img.nezhagate.com/i/9f86d081a8....mp4" }]
}🕑 data[0].url es un enlace de nuestro alojamiento de imágenes que se conserva 60 días y después se elimina automáticamente; si necesitas seguir usándolo, descárgalo y guárdalo en tu propio almacenamiento o CDN.
Se factura por clip y se reembolsa íntegramente si falla; un render fallido o caducado devuelve los créditos reservados automáticamente.
Códigos de error
Todo cuerpo de error incluye error.message / error.type / error.code / error.param: ramifica según code. La lista completa está en la guía de integración.
| HTTP | code | Descripción |
|---|---|---|
| 401 | invalid_api_key | Falta la clave API o no es válida |
| 402 | insufficient_quota | Saldo insuficiente o clave por encima de su cuota |
| 400 | invalid_request | Modelo o parámetro no soportado |
| 429 | rate_limit_exceeded | Límite de tasa del proveedor |
| 502 | upstream_error | Fallaron todas las rutas de proveedor |