API

Seedance 2.0 API

Vidéo

L’API Seedance 2.0 génère des vidéos de 4 à 15 secondes en 480p / 720p / 1080p / 4K, à partir de texte, d’images de début/fin ou de références multimodales. Le mode référence accepte jusqu’à 9 images, 3 vidéos et 3 fichiers audio. Chaque image est limitée à 30 Mo.

Autorisations

Bearerstringheaderrequis

Clé API pour autoriser les requêtes

Corps

application/json
modelstringrequis
seedance-2-0
input.promptstringrequis

Décrivez le sujet, l’action, la scène, la lumière, les mouvements de caméra et le déroulement. Les espaces en début et fin sont supprimés.

input.frames_imagesstring[]facultatif

Liste d’une ou deux URL d’images HTTPS publiques : image initiale puis image finale facultative. Ce mode ne peut pas être combiné avec reference_images, reference_videos ou reference_audios.

Avec input.frames_images, Seedance 2.0 utilise automatiquement le format adaptive selon les images fournies.

Nombre maximal d’URL : 2.

Taille maximale par image : 30 Mo.

Exemple: ["https://example.com/first-frame.png","https://example.com/last-frame.png"]

input.reference_imagesstring[]facultatif

Liste d’URL d’images de référence HTTPS publiques. Compatible avec reference_videos et reference_audios, mais pas avec frames_images. Envoyez des chaînes URL, pas des fichiers ni du base64.

Nombre maximal d’URL : 9.

Taille maximale par image : 30 Mo.

Exemple: ["https://example.com/your-image.png"]

input.reference_videosstring[]facultatif

Liste d’URL de vidéos de référence HTTPS publiques. Incompatible avec frames_images. Les vidéos modifient la consommation de crédits ; consultez la ligne et la formule correspondantes.

Nombre maximal d’URL : 3.

Exemple: ["https://example.com/your-video.mp4"]

input.reference_audiosstring[]facultatif

Liste d’URL de références audio HTTPS publiques. Compatible avec les autres listes reference_*, mais pas avec frames_images.

Nombre maximal d’URL : 3.

Exemple: ["https://example.com/your-audio.mp3"]

input.durationintegerfacultatif

Durée de la vidéo en secondes entières, de 4 à 15. Valeur par défaut : 5. La consommation de crédits dépend de cette durée.

Par défaut: 5

4–15
input.resolutionstringfacultatif

Résolution vidéo. Utilisez une valeur en minuscules parmi celles ci-dessous. La résolution modifie le tarif en crédits.

Par défaut: 720p

480p720p1080p4k
input.aspect_ratiostringfacultatif

Rapport largeur/hauteur. Valeur par défaut : 16:9. Les images fournies peuvent guider la composition finale.

Par défaut: 16:9

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

Générer ou non de l’audio avec la vidéo. Valeur par défaut : false. Envoyez un booléen JSON, pas une chaîne.

Par défaut: false

Exemples de requête

Choisissez un mode : aucun média pour le texte vers vidéo ; frames_images pour les images de début et de fin ; ou combinez reference_images, reference_videos et reference_audios pour les références. frames_images ne peut pas être combiné avec une liste de médias reference_*. Les ressources sont des listes d’URL HTTPS publiques, pas des fichiers ni du base64. Remplacez les URL example.com. Enregistrez data.task_id et interrogez POST /api/v1/check jusqu’à completed ou 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": "Une voiture ancienne rouge roule sur une route côtière au coucher du soleil. La caméra suit doucement le côté du véhicule tandis que la lumière chaude se reflète sur la mer.",
    "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
  }
}

Interrogez cet endpoint avec l’ID de tâche renvoyé jusqu’à ce que la tâche soit terminée ou échoue. Nous recommandons un polling toutes les 5 secondes pour vérifier le dernier état de la tâche.

POST /api/v1/check
{
  "task_id": "task_example"
}

Réponse

Statut de la tâche renvoyé par POST /api/v1/check. Les identifiants, URLs et horodatages ci-dessous sont des exemples.

idstringrequis

Identifiant de la tâche dans data.id, identique au task_id envoyé dans la requête de consultation.

statusstringrequis
completed indique que la génération a réussi et que data.data contient les résultats. Pour les autres statuts, data.data vaut null.
failed_reasonstringfacultatif

Renvoyé uniquement lorsque status vaut failed, pour expliquer l’échec. Ce champ est absent pour completed et processing.

Terminée · completed

Les URLs de téléchargement figurent dans 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
    }
  }
}

Autres statuts

Pour processing ou failed, data.data vaut null. Cet exemple montre failed : seul failed inclut failed_reason. Continuez les consultations pour processing ; arrêtez-les pour 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."
  }
}

Consommation de crédits

Crédits par seconde facturable selon la résolution et le mode de référence vidéo.

Crédits par seconde facturable selon la résolution et le mode de référence vidéo.
Génération480P720P1080P4K
Sans vidéo de référence80150400500
Avec vidéo de référence4890240300

Chaque requête génère une vidéo. Sans durée ou résolution, les valeurs par défaut ci-dessus s’appliquent. Les références vidéo peuvent consommer davantage de crédits ; utilisez la ligne et la formule adaptées.

Choisissez la ligne selon la présence de reference_videos. Total = secondes de vidéo générées × tarif par seconde. Les images ou l’audio seuls utilisent la ligne sans vidéo de référence.

Le champ credits renvoyé par POST /api/v1/create indique les crédits débités pour la tâche.