Passer au contenu principal
POST
/
v1
/
videos
/
generations
curl --request POST \
  --url https://api.apimart.ai/v1/videos/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "Omni-Flash-Ext",
    "prompt": "a girl is dancing happily in a sunny garden",
    "duration": 10,
    "resolution": "1080p",
    "aspect_ratio": "9:16"
  }'
{
  "code": 200,
  "data": [
    {
      "status": "submitted",
      "task_id": "task_01KS1H7ZYSJWH1N779S2FSHTKA"
    }
  ]
}

Documentation Index

Fetch the complete documentation index at: https://docs.apimart.ai/llms.txt

Use this file to discover all available pages before exploring further.

curl --request POST \
  --url https://api.apimart.ai/v1/videos/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "Omni-Flash-Ext",
    "prompt": "a girl is dancing happily in a sunny garden",
    "duration": 10,
    "resolution": "1080p",
    "aspect_ratio": "9:16"
  }'
{
  "code": 200,
  "data": [
    {
      "status": "submitted",
      "task_id": "task_01KS1H7ZYSJWH1N779S2FSHTKA"
    }
  ]
}

Authentification

Authorization
string
requis
Toutes les requêtes nécessitent une authentification par Bearer Token.Obtenir une clé API :Rendez-vous sur la page de gestion des clés API pour obtenir votre clé API.Ajoutez l’en-tête suivant lors de l’envoi des requêtes :
Authorization: Bearer YOUR_API_KEY

Paramètres de la requête

model
string
requis
Nom du modèle de génération vidéo. Doit être Omni-Flash-Ext.
prompt
string
requis
Description du contenu de la vidéo. Nous recommandons de décrire en détail la scène, le sujet, l’action, l’environnement, les mouvements de caméra, le style visuel et les indices sonores.Exemple : "a girl is dancing happily in a sunny garden"
duration
integer
défaut:"6"
Durée de la vidéo en secondes.Valeurs prises en charge : 4, 6, 8, 10.
D’autres valeurs telles que 5 ou 7 renvoient une erreur invalid_duration.
Ne transmettez pas duration lorsque vous importez une vidéo de référence. duration et video_urls ne peuvent pas être transmis en même temps.
resolution
string
défaut:"720p"
Résolution de la vidéo. Les valeurs sont insensibles à la casse.Valeurs prises en charge :
  • 720p
  • 1080p
  • 4k
D’autres résolutions renvoient une erreur invalid_resolution.
aspect_ratio
string
défaut:"16:9"
Format d’image de la vidéo. Utilisez-le pour contrôler la sortie en paysage ou en portrait.Valeurs courantes :
  • 16:9 — paysage
  • 9:16 — portrait
Par défaut : 16:9
size
string
Champ de compatibilité. Il a la même signification que aspect_ratio. Si les deux sont fournis, maintenez-les cohérents.
image_urls
array<url>
Tableau d’URL d’images de référence. Vous pouvez l’omettre, fournir 1 image ou 3 images :
  • Omis ou tableau vide : Text-to-Video
  • 1 image : Image-to-Video à image unique
  • 3 images : fusion d’images de référence
Seules les URL d’images publiquement accessibles sont prises en charge.
Le mode « première image + dernière image » avec 2 images n’est pas pris en charge. La transmission de 2 images renvoie une erreur unsupported_image_count. 4 images ou plus n’ont pas été entièrement vérifiées et ne sont pas recommandées.
video_urls
array<url>
Tableau d’URL de vidéos de référence. Vous pouvez l’omettre ou fournir 1 vidéo de référence.Seules les URL vidéo HTTP/HTTPS publiquement accessibles sont prises en charge. Vous pouvez le transmettre avec image_urls : les images servent de références d’identité ou de composition, tandis que la vidéo sert de référence de mouvement.
Omni-Flash-Ext ne prend en charge que 0 ou 1 vidéo de référence. La transmission de 2 vidéos ou plus renvoie une erreur unsupported_video_count.
Ne transmettez pas duration lorsque vous transmettez video_urls. video_urls et duration ne peuvent pas être transmis en même temps.

Réponse

code
integer
Code de statut de la réponse. Les requêtes réussies renvoient 200.
data
array
Tableau de tâches renvoyé.

Interroger le résultat de la tâche

La génération vidéo est asynchrone. Après la soumission, l’API renvoie un task_id. Utilisez le point de terminaison Obtenir le statut de la tâche pour interroger la progression et les résultats.
cURL
curl --request GET \
  --url https://api.apimart.ai/v1/tasks/task_01KS1H7ZYSJWH1N779S2FSHTKA \
  --header 'Authorization: Bearer <token>'
Nous recommandons d’attendre 5 à 10 secondes après la soumission avant la première interrogation, puis d’interroger toutes les 5 à 10 secondes. Une tâche unique s’achève généralement en environ 3 à 5 minutes.

Exemple de résultat réussi

{
  "code": 200,
  "data": {
    "id": "task_01KS1H7ZYSJWH1N779S2FSHTKA",
    "status": "completed",
    "progress": 100,
    "created": 1779246294,
    "completed": 1779246534,
    "actual_time": 240,
    "estimated_time": 600,
    "cost": 0.4,
    "result": {
      "videos": [
        {
          "url": ["https://cdn.example.com/videos/abc.mp4"],
          "expires_at": 1779332760
        }
      ]
    }
  }
}

Exemple de résultat échoué

{
  "code": 200,
  "data": {
    "id": "task_01KS1H7ZYSJWH1N779S2FSHTKA",
    "status": "failed",
    "progress": 100,
    "created": 1779246294,
    "completed": 1779246534,
    "actual_time": 240,
    "estimated_time": 600,
    "cost": 0,
    "error": {
      "message": "invalid duration 7, must be one of 4/6/8/10",
      "code": "task_failed"
    }
  }
}

Cas d’usage

Scénario 1 : Texte vers vidéo

{
  "model": "Omni-Flash-Ext",
  "prompt": "a beautiful sunset over the ocean with seagulls flying",
  "duration": 6,
  "resolution": "720p",
  "aspect_ratio": "16:9"
}

Scénario 2 : vidéo à image unique

{
  "model": "Omni-Flash-Ext",
  "prompt": "make the character smile and slowly turn around, cinematic camera motion",
  "duration": 6,
  "resolution": "1080p",
  "aspect_ratio": "9:16",
  "image_urls": ["https://example.com/character.jpg"]
}

Scénario 3 : fusion de 3 images de référence

{
  "model": "Omni-Flash-Ext",
  "prompt": "a creative scene combining these elements with smooth camera motion",
  "duration": 10,
  "resolution": "1080p",
  "aspect_ratio": "9:16",
  "image_urls": [
    "https://example.com/scene.jpg",
    "https://example.com/character.jpg",
    "https://example.com/product.jpg"
  ]
}

Scénario 4 : courte vidéo 4K

{
  "model": "Omni-Flash-Ext",
  "prompt": "close-up of a hummingbird hovering in front of a red flower",
  "duration": 4,
  "resolution": "4k",
  "aspect_ratio": "16:9"
}

Scénario 5 : génération avec vidéo de référence

{
  "model": "Omni-Flash-Ext",
  "prompt": "the same scene but at night with neon lights",
  "resolution": "720p",
  "aspect_ratio": "16:9",
  "video_urls": ["https://example.com/reference.mp4"]
}

Codes d’erreur

HTTPType d’erreurSignificationAction recommandée
400invalid_request_errormodel n’est pas Omni-Flash-Ext, prompt est vide ou le format JSON est invalideVérifiez le corps de la requête
400invalid_durationduration n’est pas 4, 6, 8 ou 10Utilisez une durée prise en charge
400invalid_resolutionresolution n’est pas 720p, 1080p ou 4kUtilisez une résolution prise en charge
400unsupported_image_countNombre d’image_urls non pris en charge, généralement causé par la transmission de 2 imagesUtilisez 0, 1 ou 3 images
400unsupported_video_countNombre de video_urls non pris en charge, généralement causé par la transmission de 2 vidéos ou plusUtilisez 0 ou 1 vidéo de référence
401authentication_errorJeton invalideVérifiez le Bearer Token
402payment_requiredSolde insuffisantRechargez et réessayez
429rate_limit_errorLimite de débit dépasséeRéduisez la concurrence ou réessayez plus tard
Lorsqu’une tâche échoue, l’API de statut de tâche renvoie la raison de l’échec dans data.error. Les causes courantes incluent l’épuisement temporaire du quota en amont, l’échec de la modération du contenu ou un délai d’attente en amont.