Generar video e imágenes desde tus propias herramientas
Crea una clave, llama a la API con autenticación Bearer y consulta el estado de la tarea hasta que tu resultado esté listo. Funciona con Claude Code, Codex y cualquier cliente HTTP.
Inicio rápido
Paso 1
Crear una clave
Genera una clave de API en tu panel de control. Solo se muestra una vez, así que guárdala en un lugar seguro.
Paso 2
Llamar a la API
Envía una solicitud POST con tu clave Bearer y un encabezado Idempotency-Key.
Paso 3
Consultar el resultado
Consulta el endpoint de estado de la tarea hasta que el estado sea completado o fallido, luego lee la salida.
Autenticación
Cada solicitud se autentica con una clave API Bearer en el encabezado Authorization.
Authorization: Bearer sk_live_your_api_key
Content-Type: application/json
Idempotency-Key: a-unique-id-per-requestSeedance 2 Video
Texto, imagen o contenido multimedia a video.
Enviar trabajo
/api/v1/video/seedance2Parámetros
| Parámetro | Tipo | Requerido | Predeterminado | Valores permitidos |
|---|---|---|---|---|
modeGeneration mode. | string | Opcional | text-to-video | text-to-videoimage-to-videomedia-to-video |
quality_tierQuality tier. | string | Opcional | standard | ministandardpro |
channelRendering channel. | string | Opcional | standard | standardrealwild |
promptText prompt. | string | Obligatorio | — | 3–10000 chars |
aspect_ratioAspect ratio. | string | Opcional | 16:9 | 1:121:94:33:416:99:16adaptive |
durationClip duration. | string | Opcional | 5 | 4–15 (seconds) |
resolutionOutput resolution. 1080p-plus and 4k are available on pro only. | string | Opcional | 720p | 720p1080p1080p-plus4k |
image_urlStart frame — required for image-to-video. | string (URL) | Opcional | — | public https URL |
end_image_urlOptional end frame. | string (URL) | Opcional | — | public https URL |
media_urlsRequired for media-to-video. Video URLs must support duration probing. | string[] (URL) | Opcional | — | ≤ 12 public https image/video URLs |
generate_audioGenerate an audio track. | boolean | Opcional | true | truefalse |
fixed_lensLock the camera lens. | boolean | Opcional | false | truefalse |
seedNot supported on the real channel or mini tier. | integer | Opcional | — | -1 – 4294967295 |
Seedance prompt guide
Seedance prompts work best as concrete director instructions. Describe the subject, action, scene, camera motion, visual style, and constraints, then map every reference asset to the right API parameter.
- Use image_url for the opening frame, end_image_url for the closing frame, and media_urls for character, motion, style, source-video, or extension references.
- Describe asset roles in natural language inside prompt. Do not send raw asset ids, asset:// URLs, or in-app-only labels such as @图片1.
- For edits say “strictly edit the supplied source video”; for extensions say “continue from the supplied previous clip.”
- For complex scenes, use ordered shots plus a style and constraint package: stable faces, natural motion, no deformation, no watermark, no logo, and no subtitles unless intended.
Solicitud
curl -X POST https://seedance2ai.io/api/v1/video/seedance2 \
-H "Authorization: Bearer $SEEDANCE_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: demo-video-001" \
-d '{
"mode": "text-to-video",
"quality_tier": "standard",
"prompt": "A cinematic shot of a glass train crossing a snowy mountain bridge",
"aspect_ratio": "16:9",
"duration": "5",
"resolution": "720p"
}'Respuesta202
{
"id": "sd2_xxxxx",
"status": "processing",
"model": "seedance2",
"quality_tier": "standard",
"channel": "standard",
"credits_used": 30
}Verificar estado de la tarea
/api/v1/tasks/{id}Solicitud
curl https://seedance2ai.io/api/v1/tasks/sd2_xxxxx \
-H "Authorization: Bearer $SEEDANCE_API_KEY"Respuesta200
{
"id": "sd2_xxxxx",
"status": "completed",
"model": "seedance2",
"quality_tier": "standard",
"channel": "standard",
"credits_used": 30,
"credits_refunded": 0,
"output": {
"video_url": "https://...",
"last_frame_url": "https://...",
"seed": 123
},
"error": null,
"created_at": "2026-06-03T10:00:00.000Z",
"updated_at": "2026-06-03T10:03:12.000Z"
}status: processing · completed · failed
Códigos de error
All errors share this shape:
{ "error": { "code": "invalid_request", "message": "Invalid request body" } }| Código | HTTP | Significado |
|---|---|---|
unauthorized | 401 | Missing, invalid, or revoked API key. |
invalid_request | 400 | Bad input or unsupported field. |
insufficient_credits | 402 | Not enough credits on the balance. |
rate_limited | 429 | Too many requests — limit is 30 requests per 60 seconds per account. Retry after the Retry-After response header (in seconds). |
idempotency_conflict | 409 | Same Idempotency-Key reused with a different body, or still running. |
service_busy | 503 | Temporary upstream or credit-concurrency issue. Retry. |
not_found | 404 | Task does not exist or does not belong to this key owner. |
internal_error | 500 | Unexpected server-side failure. |
Usar con Claude Code
Presiona Copiar para que la IA capture el API completo como Markdown limpio, pégalo en Claude Code o Codex, y deja que configure la integración. O apunta el agente directamente al endpoint de texto sin procesar.
Skill
Instala la habilidad Seedance en Claude Code, Codex o cualquier agente — escribe prompts cinematográficos y los renderiza a través de la API por ti.
# Download the one-file skill from Seedance 2 AI
mkdir -p ~/.claude/skills/seedance
curl -L https://seedance2ai.io/downloads/seedance-skill.md -o ~/.claude/skills/seedance/SKILL.mdPreguntas frecuentes
¿Quién puede usar la API?
Cualquiera con créditos. No hay restricción por plan — cualquier cuenta con créditos puede crear una clave y llamar a la API.
¿Cómo consigo créditos?
Recarga o suscríbete en la página de precios. Los créditos se añaden a tu saldo al instante.
¿Los créditos se comparten entre el sitio web y la API?
Sí — tu saldo de crédito personal se utiliza tanto para la generación web como para las llamadas API. En un equipo, las llamadas API usan el saldo personal de cada miembro, no el fondo compartido del equipo.
¿Cómo empiezo?
Crea una clave de API en tu panel de control, luego llama a los endpoints con un token Bearer (consulta la guía de inicio rápido arriba).
¿Qué pasa si una llamada devuelve insufficient_credits?
Tu saldo está vacío — recarga en la página de precios e inténtalo de nuevo.