Générer des vidéos et des images à partir de vos propres outils
Créez une clé, appelez l'API avec l'authentification Bearer, et interrogez le statut de la tâche jusqu'à ce que votre résultat soit prêt. Fonctionne avec Claude Code, Codex, et tout client HTTP.
Démarrage rapide
Étape 1
Créer une clé
Générez une clé API dans votre tableau de bord. Elle n'est affichée qu'une seule fois, alors conservez-la dans un endroit sûr.
Étape 2
Appeler l'API
Envoyez une requête POST avec votre clé Bearer et un en-tête Idempotency-Key.
Étape 3
Vérifier le résultat
Interrogez l'endpoint de statut de la tâche jusqu'à ce que le statut soit « terminé » ou « échoué », puis lisez la sortie.
Authentification
Chaque requête est authentifiée à l'aide d'une clé API Bearer dans l'en-tête Authorization.
Authorization: Bearer sk_live_your_api_key
Content-Type: application/json
Idempotency-Key: a-unique-id-per-requestSeedance 2 Video
Texte, image ou média en vidéo.
Soumettre une tâche
/api/v1/video/seedance2Paramètres
| Paramètre | Type | Requis | Par défaut | Valeurs autorisées |
|---|---|---|---|---|
modeGeneration mode. | string | Optionnel | text-to-video | text-to-videoimage-to-videomedia-to-video |
quality_tierQuality tier. | string | Optionnel | standard | ministandardpro |
channelRendering channel. | string | Optionnel | standard | standardrealwild |
promptText prompt. | string | Requis | — | 3–10000 chars |
aspect_ratioAspect ratio. | string | Optionnel | 16:9 | 1:121:94:33:416:99:16adaptive |
durationClip duration. | string | Optionnel | 5 | 4–15 (seconds) |
resolutionOutput resolution. 1080p-plus and 4k are available on pro only. | string | Optionnel | 720p | 720p1080p1080p-plus4k |
image_urlStart frame — required for image-to-video. | string (URL) | Optionnel | — | public https URL |
end_image_urlOptional end frame. | string (URL) | Optionnel | — | public https URL |
media_urlsRequired for media-to-video. Video URLs must support duration probing. | string[] (URL) | Optionnel | — | ≤ 12 public https image/video URLs |
generate_audioGenerate an audio track. | boolean | Optionnel | true | truefalse |
fixed_lensLock the camera lens. | boolean | Optionnel | false | truefalse |
seedNot supported on the real channel or mini tier. | integer | Optionnel | — | -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.
Requête
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"
}'Réponse202
{
"id": "sd2_xxxxx",
"status": "processing",
"model": "seedance2",
"quality_tier": "standard",
"channel": "standard",
"credits_used": 30
}Statut de la tâche
/api/v1/tasks/{id}Requête
curl https://seedance2ai.io/api/v1/tasks/sd2_xxxxx \
-H "Authorization: Bearer $SEEDANCE_API_KEY"Réponse200
{
"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
Codes d'erreur
All errors share this shape:
{ "error": { "code": "invalid_request", "message": "Invalid request body" } }| Code | HTTP | Signification |
|---|---|---|
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. |
Utiliser avec Claude Code
Cliquez sur Copier pour que l'IA récupère l'API complète au format Markdown propre, collez-la dans Claude Code ou Codex, et laissez-la configurer l'intégration. Ou orientez l'agent directement vers le point d'accès au texte brut.
Skill
Installez la compétence Seedance dans Claude Code, Codex ou tout autre agent — elle rédige des prompts cinématographiques et les génère via l'API pour vous.
# 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.mdFAQ
Qui peut utiliser l'API ?
Tout utilisateur disposant de crédits. Aucune restriction de forfait — n'importe quel compte avec des crédits peut créer une clé et appeler l'API.
Comment obtenir des crédits ?
Rechargez ou abonnez-vous sur la page des tarifs. Les crédits sont ajoutés à votre solde instantanément.
Les crédits sont-ils partagés entre le site web et l'API ?
Oui — votre solde de crédits personnel alimente à la fois vos générations web et vos appels API. Dans une équipe, les appels API utilisent le solde personnel de chaque membre, et non le pool partagé de l'équipe.
Par où commencer ?
Créez une clé API dans votre tableau de bord, puis appelez les endpoints avec un jeton Bearer (voir le Quickstart ci-dessus).
Que faire si un appel renvoie insufficient_credits ?
Votre solde est vide — rechargez sur la page des tarifs et réessayez.