API
API
Seedance 2.0 Fast API
VidéoL’API Seedance 2.0 Fast génère des vidéos de 4 à 15 secondes en 480p / 720p, à 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.
Corps
application/jsonmodelstringrequisseedance-2-0-fastinput.promptstringrequisDé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[]facultatifListe 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 Fast 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[]facultatifListe 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[]facultatifListe 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[]facultatifListe 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.durationintegerfacultatifDuré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
input.resolutionstringfacultatifRé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
input.aspect_ratiostringfacultatifRapport largeur/hauteur. Valeur par défaut : 16:9. Les images fournies peuvent guider la composition finale.
Par défaut: 16:9
input.soundbooleanfacultatifGé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/createcurl -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-fast",
"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-fast",
"status": "processing",
"credits": 500
}
}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.
idstringrequisIdentifiant de la tâche dans data.id, identique au task_id envoyé dans la requête de consultation.
statusstringrequisfailed_reasonstringfacultatifRenvoyé 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-fast",
"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-fast",
"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.
| Génération | 480P | 720P |
|---|---|---|
| Sans vidéo de référence | 50 | 100 |
| Avec vidéo de référence | 30 | 60 |
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.
