Passer au contenu principal
POST
/
v1
/
videos
/
generations
# Le champ model peut valoir "grok-imagine-1.5-video-apimart" ou son alias compatible "grok-imagine-1.5-video-ext"
curl --request POST \
  --url https://api.apimart.ai/v1/videos/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "grok-imagine-1.5-video-apimart",
    "prompt": "A dog running on the beach, sunny weather, slow motion",
    "size": "16:9",
    "duration": 6,
    "quality": "720p"
  }'
import requests

url = "https://api.apimart.ai/v1/videos/generations"

payload = {
    "model": "grok-imagine-1.5-video-apimart",
    "prompt": "A dog running on the beach, sunny weather, slow motion",
    "size": "16:9",
    "duration": 6,
    "quality": "720p"
}

headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
const url = "https://api.apimart.ai/v1/videos/generations";

const payload = {
  model: "grok-imagine-1.5-video-apimart",
  prompt: "A dog running on the beach, sunny weather, slow motion",
  size: "16:9",
  duration: 6,
  quality: "720p"
};

const headers = {
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
};

fetch(url, {
  method: "POST",
  headers: headers,
  body: JSON.stringify(payload)
})
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('Error:', error));
{
  "code": 200,
  "data": [
    {
      "task_id": "task_01JNXXXXXXXXXXXXXXXXXX",
      "status": "submitted"
    }
  ]
}
{
  "error": {
    "code": 400,
    "message": "Invalid request parameters",
    "type": "invalid_request_error"
  }
}
{
  "error": {
    "code": 401,
    "message": "Authentication failed, please check your API key",
    "type": "authentication_error"
  }
}
{
  "error": {
    "code": 402,
    "message": "Insufficient balance, please top up and try again",
    "type": "payment_required"
  }
}
{
  "error": {
    "code": 403,
    "message": "Access forbidden, you do not have permission to access this resource",
    "type": "permission_error"
  }
}
{
  "error": {
    "code": 429,
    "message": "Too many requests, please try again later",
    "type": "rate_limit_error"
  }
}
{
  "error": {
    "code": 500,
    "message": "Internal server error, please try again later",
    "type": "server_error"
  }
}
{
  "error": {
    "code": 502,
    "message": "Bad gateway, server temporarily unavailable",
    "type": "bad_gateway"
  }
}
Alias de modèle compatible : cette API prend également en charge l’alias grok-imagine-1.5-video-ext, équivalent à grok-imagine-1.5-video-apimart ; les deux sont interchangeables et produisent des résultats identiques.
# Le champ model peut valoir "grok-imagine-1.5-video-apimart" ou son alias compatible "grok-imagine-1.5-video-ext"
curl --request POST \
  --url https://api.apimart.ai/v1/videos/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "grok-imagine-1.5-video-apimart",
    "prompt": "A dog running on the beach, sunny weather, slow motion",
    "size": "16:9",
    "duration": 6,
    "quality": "720p"
  }'
import requests

url = "https://api.apimart.ai/v1/videos/generations"

payload = {
    "model": "grok-imagine-1.5-video-apimart",
    "prompt": "A dog running on the beach, sunny weather, slow motion",
    "size": "16:9",
    "duration": 6,
    "quality": "720p"
}

headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
const url = "https://api.apimart.ai/v1/videos/generations";

const payload = {
  model: "grok-imagine-1.5-video-apimart",
  prompt: "A dog running on the beach, sunny weather, slow motion",
  size: "16:9",
  duration: 6,
  quality: "720p"
};

const headers = {
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
};

fetch(url, {
  method: "POST",
  headers: headers,
  body: JSON.stringify(payload)
})
  .then(response => response.json())
  .then(data => console.log(data))
  .catch(error => console.error('Error:', error));
{
  "code": 200,
  "data": [
    {
      "task_id": "task_01JNXXXXXXXXXXXXXXXXXX",
      "status": "submitted"
    }
  ]
}
{
  "error": {
    "code": 400,
    "message": "Invalid request parameters",
    "type": "invalid_request_error"
  }
}
{
  "error": {
    "code": 401,
    "message": "Authentication failed, please check your API key",
    "type": "authentication_error"
  }
}
{
  "error": {
    "code": 402,
    "message": "Insufficient balance, please top up and try again",
    "type": "payment_required"
  }
}
{
  "error": {
    "code": 403,
    "message": "Access forbidden, you do not have permission to access this resource",
    "type": "permission_error"
  }
}
{
  "error": {
    "code": 429,
    "message": "Too many requests, please try again later",
    "type": "rate_limit_error"
  }
}
{
  "error": {
    "code": 500,
    "message": "Internal server error, please try again later",
    "type": "server_error"
  }
}
{
  "error": {
    "code": 502,
    "message": "Bad gateway, server temporarily unavailable",
    "type": "bad_gateway"
  }
}

Autorisations

Authorization
string
requis
Toutes les API nécessitent une authentification par Bearer TokenObtenir votre clé API :Rendez-vous sur la page de gestion des clés API pour obtenir votre clé APIAjoutez-la à l’en-tête de la requête :
Authorization: Bearer YOUR_API_KEY

Paramètres de la requête

model
string
défaut:"grok-imagine-1.5-video-apimart"
requis
Nom du modèle de génération vidéoModèles pris en charge :
  • grok-imagine-1.5-video-apimart — Génération vidéo Grok (alias compatible grok-imagine-1.5-video-ext)
Exemple : "grok-imagine-1.5-video-apimart"
Pour assurer la compatibilité avec les anciens appels, l’alias grok-imagine-1.5-video-ext (correspondant à grok-imagine-1.5-video-apimart) reste utilisable normalement.
prompt
string
requis
Description du contenu de la vidéo, prend en charge plusieurs langues
size
string
défaut:"16:9"
Taille de la vidéoOptions :
  • 16:9 — paysage (par défaut)
  • 9:16 — portrait
  • 1:1 — carré
  • 3:2 — paysage
  • 2:3 — portrait
duration
integer
défaut:6
Durée de la vidéo (en secondes)Plage : 6 à 30 (minimum 6 secondes, maximum 30 secondes)⚠️ Note : doit être un nombre simple (par ex. 6), sans guillemets, sinon une erreur se produira
quality
string
défaut:"480p"
Qualité de la vidéoOptions :
  • 480p — définition standard (par défaut)
  • 720p — haute définition
image_urls
string[]
Liste d’URL d’images de référenceLimites :
  • 7 images maximum
  • Doivent être des URL publiquement accessibles
  • Le format Base64 n’est pas pris en charge
Après le téléversement d’une image de référence, le format d’image correspondra automatiquement au format de l’image de référence.

Réponse

code
integer
Code de statut de la réponse
data
object[]
Tableau de données de la réponse
Interroger le résultat de la tâcheLa génération vidéo est une tâche asynchrone. Après la soumission, un task_id est renvoyé. Utilisez le point de terminaison Obtenir le statut de la tâche pour interroger la progression et les résultats.

Cas d’usage

Cas 1 : Texte vers vidéo

{
  "model": "grok-imagine-1.5-video-apimart",
  "prompt": "A dog running on the beach, sunny weather, slow motion",
  "size": "16:9",
  "duration": 6
}

Cas 2 : Image vers vidéo

{
  "model": "grok-imagine-1.5-video-apimart",
  "prompt": "Bring the scene to life with natural dynamic effects",
  "image_urls": ["https://example.com/start.png"],
  "size": "16:9",
  "duration": 10,
  "quality": "720p"
}