Passer à la documentation
Sur cette page

Seedance 2.5

Générez des vidéos avec Seedance 2.5 à partir de texte, de premières et dernières images, ou de références multimodales. Cette page décrit l'ensemble du flux de travail, de la requête au résultat.

ID de modèle API: seedance-2-5

La génération est asynchrone. Enregistrez le taskId renvoyé lors de la création de la tâche, puis interrogez son statut ou configurez un webhook.

Fonctionnalités

FonctionnalitéValeurs acceptées
Résolution de sortie480p · 720p · 1080p
Durée de sortie4 à 30 secondes
Format d'image16:9, 4:3, 1:1, 3:4, 9:16, 21:9, adaptive
Images de référenceJusqu'à 30 images
Vidéos de référenceJusqu'à 10 vidéos
Fichiers audio de référenceJusqu'à 10 fichiers audio
Total des références cumuléesJusqu'à 50 fichiers de référence au total
Durée totale par groupe vidéo/audio30 secondes
seedNon pris en charge
Accepte également duration=-1 en mode référence-vidéo ; voir la section sur le montage vidéo et les tarifs ci-dessous. Le mode image-to-video accepte uniquement la valeur adaptive ; omettez ce champ ou définissez-le sur adaptive.

Tarifs et crédits

La génération vidéo est facturée en crédits selon la durée facturable en secondes. Sans vidéo source, la durée facturable correspond à la durée de la vidéo générée. Avec une vidéo source, elle inclut également la durée de la vidéo de référence.

Le tableau ci-dessous indique les crédits débités par seconde, et non le coût total d'une tâche. Le tarif dépend du modèle, de la résolution de sortie et de l'utilisation ou non de vidéos de référence en mode référence-vidéo. Reportez-vous aux formules et exemples sous le tableau pour calculer le coût total.

Résolution de sortieSans vidéo sourceAvec vidéo source
480p10 crédits/seconde6 crédits/seconde
720p20 crédits/seconde12 crédits/seconde
1080p30 crédits/seconde20 crédits/seconde
  • Sans vidéo source : secondes générées × tarif sans vidéo.
  • Avec vidéo source : (secondes générées + secondes réelles de la vidéo source) × tarif avec vidéo. Le serveur mesure la durée totale de la vidéo de référence et l'arrondit à la seconde supérieure pour la facturation.
  • Les références d'images ou d'audio seules sont facturées au tarif sans vidéo. Le tarif avec vidéo s'applique uniquement dans le mode référence-vidéo lorsque des fichiers vidéo sont fournis.

Exemples de facturation

Génération de texte en vidéo de 5 secondes en 720p : 5 × 20 = 100 crédits.

Génération de 5 secondes en 720p avec une vidéo de référence de 5 secondes : (5 + 5) × 12 = 120 crédits.

Ces crédits sont débités dès la création de la tâche. Si la tâche réussit, ce montant constitue la facturation finale ; il ne sera ni augmenté ni remboursé partiellement en fonction de la durée réelle du rendu. En cas d'échec ou de dépassement de délai, le processus de remboursement de la tâche s'applique.

Les crédits sont réservés lors de la soumission et débités une fois la tâche réussie. Les tâches échouées ou expirées entrent dans un processus de remboursement. Le statut de facturation refund_failed indique que le remboursement n'a pas pu aboutir ; vérifiez vos journaux d'API ou contactez le support.

Facturation des crédits pour une durée = -1

Lorsque la durée est configurée sur -1, la durée du rendu final n'est pas fixe ; elle est déterminée directement par le modèle.

Dans la plupart des cas, nous vous conseillons de définir une durée correspondant à la longueur réelle souhaitée plutôt que -1. Il est recommandé de n'utiliser la valeur -1 que pour le montage vidéo, et non pour les autres scénarios de génération vidéo.

Éléments de référenceCalcul de la facturationExemple
Avec vidéos de référenceAdditionnez la durée de toutes les vidéos de référence et arrondissez le total à la seconde supérieure (appelons ce résultat T). Le coût facturé est égal à (T + T) × le tarif avec vidéo : le premier T correspond à la durée estimée du rendu, et le second correspond à la durée de la vidéo d'origine.720p avec une vidéo de référence de 5 secondes : (5 + 5) × 12 = 120 crédits.
Sans vidéo de référence (images ou audio uniquement)Une durée estimée de rendu de 30 secondes est appliquée par défaut. Le coût facturé est de 30 × le tarif sans vidéo.720p sans vidéo de référence : 30 × 20 = 600 crédits.

Authentification

Générez une clé API depuis votre tableau de bord. La clé complète ne s'affiche qu'une seule fois. Conservez-la en toute sécurité sur votre serveur et transmettez-la comme jeton Bearer lors de chaque requête.

URL de base

https://api.seevio.ai
Authorization: Bearer sk_live_your_api_key
Content-Type: application/json

Définissez la variable d'environnement SEEVIO_API_KEY avant d'exécuter ces exemples. Les exemples en JavaScript s'exécutent sur votre serveur avec Node.js ; les exemples en Python utilisent la bibliothèque requests.

Démarrage rapide

Envoyez cette requête minimale, enregistrez le taskId renvoyé, puis utilisez l'exemple d'interrogation de tâche ci-dessous. Le montant des crédits affiché dans la réponse de création correspond à la provision réservée.

curl --fail-with-body https://api.seevio.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "seedance-2-5",
  "input": {
    "prompt": "A cat surfing at sunset, cinematic lighting",
    "duration": 5,
    "resolution": "720p",
    "generation_type": "text-to-video",
    "aspect_ratio": "16:9",
    "generate_audio": true
  }
}'

Exemple de réponse à la création de tâche

Une fois la requête ci-dessus acceptée, l'API renvoie cette réponse au format JSON. taskId correspond à l'identifiant de tâche à utiliser pour les requêtes de statut ultérieures ; credits indique le nombre de crédits réservés pour cette tâche. Cette réponse confirme la création de la tâche, et non la finalisation de la vidéo. Vous devez interroger le statut de la tâche ou utiliser un Webhook pour obtenir le rendu vidéo final.

{
  "taskId": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "credits": 100
}

Créer une tâche

POST https://api.seevio.ai/v1/videos/generations

Envoyez un objet JSON contenant le modèle et l'objet input, ainsi qu'une callback_url optionnelle. Spécifiez toujours l'identifiant exact du modèle indiqué sur cette page ; si vous omettez ce champ, seedance-2-0 sera sélectionné par défaut.

Corps de la requête

ChampTypeRequisDescription et contraintes
model
stringOui

Identifiant du modèle. Pour utiliser Seedance 2.5, définissez ce champ sur seedance-2-5.

callback_url
stringNon

Point de terminaison HTTPS public pour recevoir les appels POST en cas de succès ou d'échec. Les réseaux privés et localhost ne sont pas autorisés.

Exemple: https://example.com/webhooks/seevio
input
objectOui

Paramètres de génération. Doit contenir un prompt non vide.

Paramètres d'entrée

Le paramètre image_urls est obligatoire en mode image-to-video. Le mode reference-to-video requiert au moins une référence parmi image_urls, video_urls et audio_urls.

Fournissez image_urls, video_urls et audio_urls sous forme de tableaux de chaînes d'URL (string[]). Chaque URL fournie doit être accessible publiquement via HTTPS, y compris les fichiers multimédias ignorés par le mode sélectionné.

ChampTypeRequisPar défautDescription et contraintes
input.prompt
stringOui

Requis dans tous les modes, y compris avec des références multimédias seules. Jusqu'à 10 000 caractères maximum ; doit contenir du texte visible (pas uniquement des espaces).

Exemple: A cat surfing at sunset
input.generation_type
stringNontext-to-video

Le mode text-to-video utilise uniquement le prompt ; image-to-video utilise 1 à 2 images ; reference-to-video utilise des images, des vidéos et/ou des fichiers audio de référence.

Valeurs acceptées
text-to-video | image-to-video | reference-to-video
input.image_urls
string[]Sous conditions[]

image-to-video : 1 image pour la première image, ou 2 images ordonnées pour la première et la dernière images. reference-to-video : jusqu'à 30 images. Ignoré en mode text-to-video.

Exemple: ["https://example.com/first-frame.jpg"]
input.video_urls
string[]Sous conditions[]

Uniquement transmis en mode reference-to-video ; jusqu'à 10 vidéos d'une durée cumulée maximale de 30 secondes. Ignoré dans les autres modes.

Exemple: ["https://example.com/source.mp4"]
input.audio_urls
string[]Sous conditions[]

Uniquement transmis en mode reference-to-video ; jusqu'à 10 fichiers audio d'une durée cumulée maximale de 30 secondes. Ignoré dans les autres modes.

Exemple: ["https://example.com/music.mp3"]
input.duration
integerNon5

Durée de sortie souhaitée, exprimée sous forme d'entier de 4 à 30 secondes. Accepte également la valeur -1, exclusivement en mode reference-to-video. À utiliser avec une vidéo source pour le montage ; la facturation suit la règle spécifique détaillée ci-dessus.

Valeurs acceptées
-1 | 4–30
Exemple: 5
input.aspect_ratio
stringNonadaptive

Format d'image de sortie. La valeur adaptive laisse le modèle déterminer le format de manière autonome. Le mode image-to-video accepte uniquement la valeur adaptive ; omettez ce champ ou définissez-le sur adaptive.

Valeurs acceptées
16:9, 4:3, 1:1, 3:4, 9:16, 21:9, adaptive
Exemple: adaptive
input.resolution
stringNon720p

Utilisez l'une des résolutions de sortie prises en charge et répertoriées ici.

Valeurs acceptées
480p | 720p | 1080p
Exemple: 720p
input.generate_audio
booleanNontrue

Demander la génération d'une piste audio synchronisée.

Valeurs acceptées
true | false
Exemple: true
input.watermark
booleanNonfalse

Demander l'application d'un filigrane IA sur la vidéo générée.

Valeurs acceptées
true | false
Exemple: false
input.web_search
booleanNonfalse

Autoriser la recherche sur le Web si le modèle la prend en charge.

Valeurs acceptées
true | false
Exemple: false
input.return_last_frame
booleanNonfalse

Demander la dernière image. Le résultat de l'interrogation contiendra data.last_frame_url dès qu'elle sera prête ; sinon, la valeur sera null.

Valeurs acceptées
true | false
Exemple: true

Les champs booléens doivent être définis par les valeurs JSON true ou false (sans guillemets), et non par des chaînes ou des nombres.

Réponse de création

Le code HTTP 200 renvoie un taskId (chaîne) et les credits (nombre). Cela confirme la création de la tâche, pas sa finalisation. Le montant indiqué ci-dessous correspond au démarrage rapide de 5 secondes en 720p.

{
  "taskId": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "credits": 100
}

Modes de génération et exemples

Remplacez les URL d'exemple d'example.com par vos propres fichiers accessibles via HTTPS public. Les URL d'illustration servent uniquement à montrer la structure de la requête et ne pointent pas vers des ressources téléchargeables.

Texte en vidéo

Génération à partir d'une description textuelle. Les URL multimédias ne sont pas prises en compte dans ce mode.

curl --fail-with-body https://api.seevio.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "seedance-2-5",
  "input": {
    "prompt": "A cat surfing at sunset, cinematic lighting",
    "duration": 5,
    "resolution": "720p",
    "generation_type": "text-to-video",
    "aspect_ratio": "16:9",
    "generate_audio": true
  }
}'

Première image

Fournissez une image qui servira de point de départ, puis décrivez le mouvement souhaité dans votre prompt.

curl --fail-with-body https://api.seevio.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "seedance-2-5",
  "input": {
    "prompt": "A cat surfing at sunset, cinematic lighting",
    "duration": 5,
    "resolution": "720p",
    "generation_type": "image-to-video",
    "image_urls": [
      "https://example.com/first-frame.jpg"
    ],
    "aspect_ratio": "adaptive"
  }
}'

Première et dernière images

Fournissez deux URL d'images dans l'ordre : la première image, puis la dernière image. Cet exemple demande également la capture de la dernière image générée.

curl --fail-with-body https://api.seevio.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "seedance-2-5",
  "input": {
    "prompt": "A cat surfing at sunset, cinematic lighting",
    "duration": 5,
    "resolution": "720p",
    "generation_type": "image-to-video",
    "image_urls": [
      "https://example.com/first-frame.jpg",
      "https://example.com/last-frame.jpg"
    ],
    "aspect_ratio": "adaptive",
    "return_last_frame": true
  }
}'

Référence multimodale

Associez des références d'image, de vidéo et d'audio. Le prompt reste obligatoire. L'utilisation d'une vidéo source modifie la formule de facturation.

curl --fail-with-body https://api.seevio.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "seedance-2-5",
  "input": {
    "prompt": "Follow the reference camera movement and keep the character consistent. Use the audio for ambience.",
    "duration": 5,
    "resolution": "720p",
    "generation_type": "reference-to-video",
    "image_urls": [
      "https://example.com/character.jpg"
    ],
    "video_urls": [
      "https://example.com/camera.mp4"
    ],
    "audio_urls": [
      "https://example.com/ambience.mp3"
    ],
    "aspect_ratio": "adaptive"
  }
}'

Référence audio

Utilisez un fichier audio comme unique référence, accompagné d'un prompt textuel décrivant le visuel souhaité.

curl --fail-with-body https://api.seevio.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "seedance-2-5",
  "input": {
    "prompt": "Create a coastal sunrise scene matching the rhythm of this audio.",
    "duration": 5,
    "resolution": "720p",
    "generation_type": "reference-to-video",
    "audio_urls": [
      "https://example.com/music.mp3"
    ]
  }
}'

Montage vidéo

Pour le montage vidéo avec Seedance 2.5, la durée doit être définie sur -1 et le format d'image (aspect_ratio) sur « adaptive ». Ces deux paramètres sont obligatoires, sans quoi la génération échouera.

Décrivez les modifications à apporter et fournissez la vidéo source. Définissez la durée duration=-1 et utilisez le format d'image adaptive. Utilisez un clip source d'au moins 4 secondes pour ce scénario. La règle de facturation pour la durée -1 est détaillée ci-dessus.

curl --fail-with-body https://api.seevio.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "seedance-2-5",
  "input": {
    "prompt": "Edit the source video: change the character’s coat to blue and preserve the camera movement.",
    "duration": -1,
    "resolution": "720p",
    "generation_type": "reference-to-video",
    "video_urls": [
      "https://example.com/source.mp4"
    ],
    "aspect_ratio": "adaptive"
  }
}'

Extension de vidéo

Pour l'extension vidéo Seedance 2.5, le paramètre aspect_ratio doit être défini sur adaptive, sous peine d'échec de la génération. Définissez normalement la valeur de duration sur la longueur souhaitée pour la vidéo finale, dans la limite de la plage prise en charge ; il n'est pas nécessaire d'utiliser la valeur -1.

Décrivez la suite de l'action de la vidéo source. Utilisez le format d'image adaptive et définissez une durée de sortie standard comprise dans la plage du modèle.

curl --fail-with-body https://api.seevio.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "seedance-2-5",
  "input": {
    "prompt": "Continue the camera movement from the source video, revealing a forest clearing.",
    "duration": 8,
    "resolution": "720p",
    "generation_type": "reference-to-video",
    "video_urls": [
      "https://example.com/source.mp4"
    ],
    "aspect_ratio": "adaptive"
  }
}'

Interroger une tâche

GET https://api.seevio.ai/v1/tasks/{taskId}

Remplacez l'ID d'exemple par le taskId obtenu lors de la création. Les requêtes renvoient uniquement les tâches créées par l'utilisateur de la clé API ; les identifiants inconnus ou inaccessibles renvoient une erreur HTTP 404.

Nous vous suggérons d'interroger l'API toutes les 10 à 20 secondes au début, d'espacer les requêtes en cas d'erreur HTTP 429 et d'arrêter dès que le statut est completed ou failed. Privilégiez les webhooks pour la production. Chaque exemple de code ci-dessous effectue une seule interrogation.

curl --fail-with-body https://api.seevio.ai/v1/tasks/3f2aK9mR7xQp4TnZ8bLc6YwH \
  -H "Authorization: Bearer $SEEVIO_API_KEY"
StatutDescription et contraintes
queuedAcceptée et en attente de traitement.
generatingGénération en cours.
completedSuccès. Téléchargez le contenu de data.results avant son expiration.
failedÉchec définitif. Examinez failed_reason et billing_status.
ChampTypeDescription et contraintes
idstring
Identifiant de la tâche. Il s'agit du taskId obtenu lors de la création.
created_atnumber
Date de création de la tâche au format horodatage Unix (en secondes).
modelstring
ID public du modèle utilisé pour cette tâche.
billing_statusstring
Statut de facturation : reserved, charged, refunded ou refund_failed.
creditsnumber
Crédits réservés pour cette tâche. Cette valeur est conservée même après un remboursement ; fiez-vous au billing_status pour connaître l'issue de la facturation.
failed_reasonstring | null
Raison de l'échec pour les tâches ayant échoué ; null dans les autres cas. Les réponses d'interrogation en échec n'incluent pas l'objet data.
dataobject
Présent pour les requêtes de tâches qui n'ont pas échoué. Contient les fichiers de sortie et les détails du traitement.
data.resultsstring[]
Tableau d'URL de vidéos. Vide jusqu'à la finalisation ou après l'expiration de la vidéo.
data.video_expires_atstring | null
Date d'expiration de la vidéo au format ISO 8601, ou null avant sa mise à disposition. Enregistrez le résultat avant cette échéance.
data.last_frame_urlstring | null
URL de la dernière image si elle a été demandée et qu'elle est disponible, sinon null.
data.processing_timenumber | null
Durée de traitement par le fournisseur en secondes si disponible, sinon null.

Tâche terminée : réponse à la requête avec les résultats vidéo

Lorsque la requête renvoie status=completed, la génération de la vidéo est terminée. Récupérez les URL des vidéos dans data.results et téléchargez-les avant la date indiquée dans data.video_expires_at. Le statut billing_status=charged indique que les crédits réservés ont été débités.

{
  "id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "created_at": 1788652800,
  "model": "seedance-2-5",
  "status": "completed",
  "billing_status": "charged",
  "credits": 100,
  "failed_reason": null,
  "data": {
    "results": [
      "https://cdn.seevio.ai/api/videos/example.mp4"
    ],
    "video_expires_at": "2026-09-07T00:00:00Z",
    "last_frame_url": null,
    "processing_time": 48
  }
}

Échec de la tâche : réponse à la requête avec détails de l'échec et de la facturation

Lorsque la requête renvoie status=failed, la génération a échoué. Consultez le champ failed_reason pour en connaître la cause et billing_status pour le statut du remboursement. Dans cet exemple, refunded signifie que les crédits ont été restitués. Le champ credits conserve le montant initialement réservé, et la réponse ne contient pas de nœud data.

{
  "id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "created_at": 1788652800,
  "model": "seedance-2-5",
  "status": "failed",
  "billing_status": "refunded",
  "credits": 100,
  "failed_reason": "provider_failed"
}

Webhooks

Configurez le champ callback_url dans votre requête de création pour recevoir un POST JSON lorsque la tâche se termine ou échoue. Renvoyez une réponse HTTP 2xx sous 15 secondes. En cas d'échec de distribution, de nouvelles tentatives seront effectuées ; gérez les doublons de manière idempotente grâce à l'identifiant de la tâche.

Votre point de terminaison de rappel (callback) doit accepter les requêtes POST contenant un corps de requête JSON (Content-Type : application/json).

Créer une tâche avec un webhook de callback

curl --fail-with-body https://api.seevio.ai/v1/videos/generations \
  -H "Authorization: Bearer $SEEVIO_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "seedance-2-5",
  "input": {
    "prompt": "A cat surfing at sunset, cinematic lighting",
    "duration": 5,
    "resolution": "720p",
    "generation_type": "text-to-video",
    "aspect_ratio": "16:9",
    "generate_audio": true
  },
  "callback_url": "https://example.com/webhooks/seevio"
}'

Les charges utiles des webhooks diffèrent des réponses d'interrogation de tâche : elles excluent billing_status et credits ; les détails de l'échec sont placés dans data.failed_reason et data.credits_refunded. Le champ created_at du webhook indique l'heure de l'événement en secondes Unix.

Tâche terminée : charge utile du callback réussi

En cas de réussite de la génération, le callback renvoie le statut status=completed. Utilisez le paramètre id pour identifier la tâche et data.results pour récupérer les URL des vidéos. Assurez-vous de télécharger et d'enregistrer les résultats avant la date indiquée dans data.video_expires_at.

{
  "id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "created_at": 1788652800,
  "model": "seedance-2-5",
  "status": "completed",
  "data": {
    "results": [
      "https://cdn.seevio.ai/api/videos/example.mp4"
    ],
    "video_expires_at": "2026-09-07T00:00:00Z",
    "last_frame_url": null,
    "processing_time": 48
  }
}

Échec de la tâche : charge utile du callback d'échec

En cas d'échec de la génération, le callback renvoie le statut status=failed. Utilisez l'id pour identifier la tâche, data.failed_reason pour connaître la cause de l'échec et data.credits_refunded pour vérifier le nombre de crédits remboursés.

{
  "id": "3f2aK9mR7xQp4TnZ8bLc6YwH",
  "created_at": 1788652800,
  "model": "seedance-2-5",
  "status": "failed",
  "data": {
    "failed_reason": "provider_failed",
    "credits_refunded": 100
  }
}

Exemple de réception de webhook

export async function POST(request: Request) {
  const callbackData = await request.json();

  if (callbackData.status === "completed") {
    const videoUrls = callbackData.data.results;
    // Save the video URLs and mark this task as completed in your application.
    console.log(callbackData.id, videoUrls);
  }

  if (callbackData.status === "failed") {
    const { failed_reason, credits_refunded } = callbackData.data;
    // Record the failure reason and refunded credits for this task.
    console.error(callbackData.id, failed_reason, credits_refunded);
  }

  return new Response(null, { status: 200 });
}

Cet exemple Next.js lit le corps JSON du callback et traite directement les tâches réussies et échouées. Pour votre application de production, pensez à ajouter une couche de persistance, à dédoublonner les identifiants de tâche (task-ID) et à placer les tâches lourdes en file d'attente avant d'accuser réception du callback.

Exigences et limites des fichiers

  • Toutes les URL de médias et de callback doivent être des URL HTTPS publiques. Évitez localhost, les IP privées et les fichiers nécessitant des cookies ou une authentification. Les URL des vidéos et audios de référence doivent pointer directement vers des fichiers lisibles.
  • En mode reference-to-video, fournissez au moins une référence, sans dépasser 30 images, 10 vidéos, 10 fichiers audio et un maximum de 50 fichiers cumulés. La durée totale de la vidéo et de l'audio de référence ne doit pas dépasser 30 secondes chacune.
  • Le mode text-to-video ignore toutes les références multimédias. Le mode image-to-video transmet uniquement les images de première et dernière frames, et ignore les références vidéo et audio. Utilisez reference-to-video pour combiner plusieurs types de médias.
  • Chaque vidéo et fichier audio de référence doit durer entre 2 et 30 secondes. Pour les exemples de montage vidéo, utilisez des extraits source d'au moins 4 secondes.

Conditions requises pour les images

  • Chaque image doit peser moins de 30 Mo.
  • Formats acceptés : jpeg, png, webp, bmp, tiff, gif.
  • Rapport d'aspect (largeur ÷ hauteur) : entre 0,4 et 2,5 inclus.
  • La largeur et la hauteur doivent être comprises entre 300 et 6 000 pixels inclus.

Conditions requises pour les vidéos

  • Formats acceptés : mp4, mov.
  • Chaque vidéo ne doit pas dépasser 100 Mo.
  • Fréquence d'images : entre 24 et 60 IPS inclus.
  • Rapport d'aspect (largeur ÷ hauteur) : entre 0,4 et 2,5 inclus.
  • Nombre total de pixels (largeur × hauteur) : entre 407 696 et 8 295 044 inclus. Par exemple, 614 × 664 = 407 696 et 3 326 × 2 494 = 8 295 044. Il s'agit d'exemples de nombre de pixels, et non de limites fixes pour la largeur et la hauteur.

Conditions requises pour les fichiers audio

  • Formats acceptés : wav, mp3.
  • Chaque fichier audio ne doit pas dépasser 15 Mo.

Erreurs

Les erreurs HTTP contiennent un objet error avec un code (code) et un message (message). Une tâche acceptée avec succès peut toujours échouer ultérieurement ; interrogez régulièrement la tâche ou configurez un webhook pour suivre son statut.

{
  "error": {
    "code": "invalid_request",
    "message": "input.prompt is required."
  }
}
HTTPChampAction recommandée
400invalid_request
Corrigez le JSON, le prompt manquant, la plage des paramètres ou l'URL du média avant de soumettre à nouveau.
401invalid_api_key
Vérifiez votre jeton Bearer ainsi que l'état d'activation de votre clé API.
402insufficient_credits
Ajoutez des crédits ou réduisez le coût estimé de la tâche. La réponse peut indiquer le solde requis et votre solde disponible.
403forbidden
Veuillez vérifier la restriction au niveau du compte décrite dans le message d'erreur.
404not_found
Vérifiez l'identifiant de la tâche et assurez-vous que la clé API utilisée appartient bien au propriétaire de la tâche.
429rate_limited
Patientez durant l'intervalle indiqué par l'en-tête Retry-After avant de soumettre une nouvelle requête.
500internal_error
Examinez le message d'erreur et les journaux de l'API. Réessayez avec modération ; le renvoi d'une requête de création peut générer une nouvelle tâche facturable.

Limites de requêtes

Création de tâches : chaque clé API permet par défaut jusqu'à 100 requêtes par minute. Il n'est actuellement pas possible de personnaliser ces limites de débit.

Consultation de tâches : chaque clé API permet par défaut jusqu'à 120 requêtes par minute. Les requêtes de consultation et de création de tâches sont comptabilisées séparément.

L'erreur HTTP 429 renvoie l'en-tête Retry-After: 60 pour la création et Retry-After: 5 pour les requêtes d'interrogation. Utilisez une stratégie d'attente progressive (backoff) et évitez d'interroger l'API plus souvent que nécessaire.