Référence API
Authentification
Utilisez votre clé API depuis Settings > API Keys. Les requêtes accèdent uniquement aux ressources de ce compte.
Formats pris en charge :
| Méthode | Format |
|---|---|
| Bearer Token | Authorization: Bearer sk-xxx |
| Token Header | Authorization: Token sk-xxx |
| X-API-Key | X-API-Key: sk-xxx |
| Paramètre de requête | ?api_key=sk-xxx |
Rappel sécurité :
- n'exposez jamais votre clé API côté client
- effectuez toujours les appels API depuis votre serveur
Vue d'ensemble des endpoints
| Méthode | Endpoint | Usage |
|---|---|---|
| POST | /api/v1/video |
Créer une tâche vidéo permanente |
| GET | /api/v1/video |
Lister les tâches vidéo |
| GET | /api/v1/video/:taskId |
Lire les détails d'une tâche |
| DELETE | /api/v1/video/:taskId |
Supprimer une tâche vidéo |
| POST | /api/v1/video/:taskId/render |
Déclencher un rendu |
| POST | /api/v1/upload |
Uploader des assets |
| GET | /api/v1/files |
Lister les fichiers |
| DELETE | /api/v1/files/:fileId |
Supprimer un fichier |
| GET | /api/v1/credits |
Lire le solde de crédits |
| POST | /api/v1/preview |
Créer une preview temporaire |
| GET | /api/v1/preview/:tempId |
Lire la configuration de preview |
| DELETE | /api/v1/preview/:tempId |
Supprimer une preview |
| POST | /api/v1/preview/:tempId/convert |
Convertir une preview en tâche permanente |
| POST | /api/v1/preview/:tempId/render |
Convertir une preview et lancer le rendu |
POST /api/v1/video
Crée une tâche vidéo permanente à partir de votre configuration. Cette opération ne démarre pas encore le rendu.
Champs importants :
| Champ | Type | Requis | Description |
|---|---|---|---|
config |
object | Oui | Schéma vidéo conforme au JSON Schema |
metadata |
object | Non | Métadonnées personnalisées attachées à la tâche |
Champs de réponse les plus utiles :
taskIdvideoTaskIdpreviewUrlviewerUrlconfigUrlstatusqualitywidthheightduration
GET /api/v1/video
Liste toutes les tâches vidéo du compte courant.
Paramètres de requête :
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
page |
integer | 1 | Numéro de page |
limit |
integer | 20 | Éléments par page, maximum 100 |
status |
string | - | Filtre sur le dernier statut |
La réponse contient une liste tasks et un objet pagination.
GET /api/v1/video/:taskId
Récupère les détails complets d'une tâche vidéo donnée.
Champs de retour utiles :
taskIdvideoTaskIdstatusvideoUrlpreviewUrlviewerUrlconfigUrlcostCreditscreatedAtcompletedAtmetadata
Valeurs de statut :
| Statut | Signification |
|---|---|
created |
Tâche créée, rendu non démarré |
rendering |
Rendu en cours |
completed |
Rendu terminé avec succès |
failed |
Échec du rendu |
DELETE /api/v1/video/:taskId
Supprime définitivement une tâche et les enregistrements de rendu locaux associés. L'API tente aussi de supprimer la tâche distante upstream.
Champs de réponse importants :
deletedremoteDeletedmessage
Si la suppression upstream échoue, la suppression locale peut malgré tout réussir.
POST /api/v1/video/:taskId/render
Déclenche ou redéclenche le rendu d'une tâche existante.
Corps de requête :
| Champ | Type | Requis | Défaut | Description |
|---|---|---|---|---|
webhook_url |
string | Non | - | URL de notification de fin |
num_workers |
integer | Non | 5 | Nombre de workers de rendu |
Résultats possibles :
- un nouveau rendu avec
status: rendering - une réponse réutilisant un rendu déjà terminé avec
alreadyRendered: true
Erreurs fréquentes :
NOT_FOUNDALREADY_RENDERINGINSUFFICIENT_CREDITSRENDER_TRIGGER_FAILED
Webhooks
webhook_url est pris en charge sur :
POST /api/v1/video/:taskId/renderPOST /api/v1/preview/:tempId/render
Cycle de fonctionnement :
- votre
webhook_urlest enregistrée avec la tâche de rendu - le renderer upstream renvoie
completedoufailed - le projet met d'abord à jour sa base locale
- un
POSTest ensuite envoyé à votrewebhook_url
Le payload transmis contient généralement :
taskIdrenderTaskIdstatusvideoUrlerrortimestamp
Limites actuelles :
- seuls les événements
completedetfailedsont transmis webhook_urldoit être une URL absolue valide- il n'existe pas encore de signature webhook
- il n'existe pas encore de file de retry ni de journal de livraison
POST /api/v1/upload
Permet d'uploader des images, vidéos et audios utilisables ensuite dans les configurations vidéo.
Champs de formulaire :
| Champ | Type | Requis | Description |
|---|---|---|---|
file |
File | Non* | Fichier unique |
files |
File[] | Non* | Plusieurs fichiers |
*Au moins l'un de file ou files est requis.
Familles MIME prises en charge :
image/*video/*audio/*
Limites de stockage par plan :
| Plan | Limite |
|---|---|
| Free | 512 MB |
| Starter | 10 GB |
| Standard | 20 GB |
| Pro | 50 GB |
La réponse de succès contient count et une liste assets.
GET /api/v1/files
Liste les fichiers uploadés pour le propriétaire courant de la clé API.
Paramètres de requête :
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
page |
integer | 1 | Numéro de page |
limit |
integer | 20 | Éléments par page |
type |
string | - | image, video ou audio |
La réponse contient files et pagination.
DELETE /api/v1/files/:fileId
Supprime définitivement un fichier de la bibliothèque. L'objet stocké et l'enregistrement du fichier sont supprimés ensemble.
Champs de réponse utiles :
fileIddeletedmessage
GET /api/v1/credits
Récupère le solde de crédits actuel du compte.
Réponse type :
{
"success": true,
"credits": 985,
"currency": "credits"
}
POST /api/v1/preview
Crée une preview temporaire sans consommer de crédits.
Règles importantes :
- le schéma vidéo complet est envoyé directement dans le corps de la requête
- les liens de preview sont valables 7 jours
- la preview ne consomme pas de crédits
- la preview ne génère pas de fichier vidéo téléchargeable
Champs de réponse :
tempIdpreviewUrlviewerUrlexpiresIn
GET /api/v1/preview/:tempId
Lit la configuration derrière un lien de preview temporaire.
Champs de retour :
tempIdconfig
DELETE /api/v1/preview/:tempId
Supprime un lien de preview temporaire.
Champs de retour :
tempIddeletedmessage
POST /api/v1/preview/:tempId/convert
Clone une preview temporaire en tâche vidéo permanente. La preview temporaire reste utilisable.
Corps de requête optionnel :
| Champ | Type | Requis | Description |
|---|---|---|---|
category |
string | Non | Catégorie à associer à la nouvelle tâche |
Champs de retour les plus utiles :
convertedtaskIdvideoTaskIdpreviewUrlviewerUrlconfigUrl
POST /api/v1/preview/:tempId/render
Clone une preview temporaire en tâche permanente puis lance immédiatement le rendu.
Corps de requête :
| Champ | Type | Requis | Défaut | Description |
|---|---|---|---|---|
category |
string | Non | api |
Catégorie de la nouvelle tâche |
webhook_url |
string | Non | - | Webhook pour le résultat de rendu |
num_workers |
integer | Non | 5 | Nombre de workers de rendu |
Réponse de succès typique :
converted: truetaskIdrenderTaskIdstatus: renderingcostremainingCreditspreviewUrlviewerUrl
Calcul des crédits
La règle de coût est la suivante :
- coût = durée de la vidéo en secondes × multiplicateur de qualité
| Qualité | Côté court | Multiplicateur |
|---|---|---|
| 720p | <= 720px | 1.0 |
| 1080p | <= 1080px | 1.5 |
| 2K | <= 1440px | 2.0 |
La qualité est déterminée automatiquement à partir de la plus petite dimension de la vidéo.
Format des erreurs
Toutes les réponses d'erreur suivent ce format :
{
"success": false,
"error": "Human-readable error message",
"code": "ERROR_CODE",
"details": {
"field": "additional context"
}
}
Codes d'erreur fréquents :
MISSING_API_KEYINVALID_API_KEYINVALID_API_KEY_FORMATAPI_KEY_INACTIVEUSER_NOT_FOUNDINVALID_REQUESTINVALID_CONFIGINSUFFICIENT_CREDITSNOT_FOUNDALREADY_RENDERINGREMOTE_ERRORRENDER_TRIGGER_FAILEDINTERNAL_ERROR
Évolutions des SDK et de l’API
GET /api/v1/capabilities expose version du schéma, types de clips/animations/transitions, qualités et fonctionnalités. Les anciens déploiements peuvent répondre 404.
La création accepte title (1–255 caractères), category (1–100, valeur par défaut api) et un objet metadata. Listes et détails incluent titre et catégorie. category=all inclut les tâches du site ; sans filtre, la catégorie reste api. all est réservé aux listes.
Conversion et rendu des aperçus acceptent metadata et category. POST /api/v1/preview/:tempId/render convertit et lance le rendu. Options : webhook_url et entier positif num_workers (5 par défaut). Sans corps, les valeurs par défaut sont utilisées. Les paramètres invalides renvoient INVALID_REQUEST (400), les schémas invalides INVALID_CONFIG (400).
Les aperçus authentifiés exposent des adresses absolues previewUrl, playerUrl et, si disponible, viewerUrl. Conservez tempId et expiresIn. La qualité dépend des dimensions du schéma ; aucune option quality distincte n’est acceptée.