Générer une image ou une vidéo avec l’IA
Le paiement est prélevé sur les crédits de l’espace de travail, à un tarif fixe par modèle. Appelle d’abord avec estimate_only: true (gratuit) pour connaître le prix exact, puis rappelle l’API avec max_credits défini sur ce montant. Une image est généralement prête dans le délai indiqué par wait_seconds. Une vidéo prend une à cinq minutes : récupère la génération avec GET et son identifiant. Si une génération échoue, les crédits sont recrédités.
POST/v1/sites/{site_id}/media/generations
Nécessite media:generate, une autorisation distincte : un identifiant qui permet de modifier des sites ne peut pas dépenser de crédits à moins que cette autorisation lui ait aussi été accordée. Les crédits de l’espace de travail sont utilisés.
- Appelez l’endpoint avec
estimate_only: true. Cela ne coûte rien et renvoieestimated_credits(le prix exact) etbalance. - Rappelez l’endpoint en définissant
max_creditssur ce prix. Sansmax_credits, l’appel est refusé. Si le prix dépasse cette limite, l’appel est refusé sans frais :invalid_parametersurmax_credits, avecdetails.reasondéfini surprice_above_max_credits, ainsi quedetails.estimated_creditsetdetails.max_credits.
Les crédits sont débités au démarrage de la génération. En cas d’échec, ils sont restitués. Une image est généralement prête dans le délai indiqué par wait_seconds (50 par défaut) ; la réponse contient alors status: succeeded et son media. Une vidéo prend entre une et cinq minutes : la réponse indique status: running avec un id ; récupérez la génération jusqu’à ce qu’elle soit terminée.
Le fichier est ajouté aux fichiers multimédias du site comme après un téléversement, avec credit défini sur le modèle qui l’a créé. Ne présentez jamais une image générée comme une photographie de l’entreprise, de ses produits, de ses employés ou de ses locaux.
La limite est de 10 générations par minute et par espace de travail (au-delà, 429 rate_limited avec details.retry_after_seconds). Crédits insuffisants : 402 insufficient_credits avec details.needed et details.balance. Si un modèle est occupé, la génération échoue et les crédits sont restitués : réessayez dans une minute.
Autorisations
Authorizationbearerin headerrequiredParamètres de chemin
site_idstringrequiredL’identifiant du site ou son slug (l’adresse avant .atelier201.page).
Corps
application/jsonrequiredmodelenum<string>requiredone of: gpt-image, nano-banana, flux, p-image, wan, minimax, seedance, p-videoGET /v1/media/models renvoie la liste des modèles, leurs points forts et leurs prix en crédits.
promptstringrequiredlength: 1–4000 charsÀ décrire : sujet, décor, lumière, cadrage, style.
aspect_ratioenum<string>one of: 16:9, 1:1, 9:16, 4:3, 3:4, 3:2, 2:3Rapport largeur/hauteur. Chaque modèle accepte les ratios indiqués par list_media_models. Par défaut, le premier ratio est utilisé (16:9 pour la plupart des modèles).
qualityenum<string>one of: draft, standard, highImages : draft, standard (par défaut) ou high.
durationintegerrange: 1–10Vidéos : durée en secondes.
resolutionenum<string>one of: 480p, 720p, 768p, 1080p, 2kVidéos : par défaut, la résolution du modèle (720p, ou 768p pour minimax et p-video).
audiobooleanVidéos : avec son (seedance uniquement).
filenamestringlength: 1–100 charsNom sans extension.
altstringlength: ≤ 300 charsestimate_onlybooleantrue : prix exact en crédits et solde. Gratuit, aucune génération n’est lancée.
max_creditsintegerrange: ≤ 9007199254740991Obligatoire pour lancer la génération : montant maximal que vous acceptez de dépenser. Si le prix le dépasse, la demande est refusée et rien n’est débité. Reprenez le montant d’un appel avec estimate_only.
wait_secondsintegerrange: 0–55Durée d’attente du résultat. Par défaut : 50 pour une image, 0 pour une vidéo.
Réponse
Génère une image ou une vidéo avec l’IA
dataRecord<string, object>requiredrequest_idstringrequiredCodes possibles : invalid_request, unknown_field, invalid_parameter, invalid_cursor
errorobjectrequiredrequest_idstringrequiredCodes possibles : authentication_required, invalid_api_key, api_key_expired, api_key_revoked
errorobjectrequiredrequest_idstringrequiredCodes possibles : insufficient_credits
errorobjectrequiredrequest_idstringrequiredCodes possibles : insufficient_scope, feature_not_available, admin_required
errorobjectrequiredrequest_idstringrequiredCodes possibles : resource_not_found
errorobjectrequiredrequest_idstringrequiredCodes possibles : conflict, result_not_ready, idempotency_key_reused
errorobjectrequiredrequest_idstringrequiredCodes possibles : result_expired
errorobjectrequiredrequest_idstringrequiredCodes possibles : request_too_large
errorobjectrequiredrequest_idstringrequiredCodes possibles : request_too_large_for_plan
errorobjectrequiredrequest_idstringrequiredCodes possibles : rate_limited
errorobjectrequiredrequest_idstringrequiredCodes possibles : internal_error
errorobjectrequiredrequest_idstringrequiredCodes possibles : service_unavailable
errorobjectrequiredrequest_idstringrequired