curl --request POST \
--url https://api.apimart.ai/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "MiniMax-H3-Max",
"prompt": "Un détective en imperméable se retourne dans une rue néon sous la pluie. La caméra avance lentement.",
"duration": 5,
"resolution": "768P",
"aspect_ratio": "16:9"
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/videos/generations",
headers={"Authorization": "Bearer <token>", "Content-Type": "application/json"},
json={
"model": "MiniMax-H3-Max",
"prompt": "Un détective se retourne dans une rue néon sous la pluie.",
"duration": 5,
"resolution": "768P",
"aspect_ratio": "16:9",
},
)
print(response.json())
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01J9HA7JPQ9A0Z6JZ3V8M9W6PZ"
}
]
}
{
"error": {
"code": 400,
"message": "Paramètres de requête non valides",
"type": "invalid_request_error"
}
}
{
"error": {
"code": 401,
"message": "Échec de l'authentification. Vérifiez votre clé API.",
"type": "authentication_error"
}
}
{
"error": {
"code": 402,
"message": "Solde du compte insuffisant",
"type": "payment_required"
}
}
MiniMax-H3
Génération vidéo MiniMax-H3-Max
- Version rapide de MiniMax Video Generation V2 avec soumission asynchrone
- Prend en charge texte-vers-vidéo et image-vers-vidéo avec première image, dernière image ou les deux
- Prend en charge 768P / 480P, des durées de 5 à 15 secondes et une piste audio
- Ne prend pas en charge la 2K, les images intermédiaires ni les références multimodales
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": "MiniMax-H3-Max",
"prompt": "Un détective en imperméable se retourne dans une rue néon sous la pluie. La caméra avance lentement.",
"duration": 5,
"resolution": "768P",
"aspect_ratio": "16:9"
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/videos/generations",
headers={"Authorization": "Bearer <token>", "Content-Type": "application/json"},
json={
"model": "MiniMax-H3-Max",
"prompt": "Un détective se retourne dans une rue néon sous la pluie.",
"duration": 5,
"resolution": "768P",
"aspect_ratio": "16:9",
},
)
print(response.json())
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01J9HA7JPQ9A0Z6JZ3V8M9W6PZ"
}
]
}
{
"error": {
"code": 400,
"message": "Paramètres de requête non valides",
"type": "invalid_request_error"
}
}
{
"error": {
"code": 401,
"message": "Échec de l'authentification. Vérifiez votre clé API.",
"type": "authentication_error"
}
}
{
"error": {
"code": 402,
"message": "Solde du compte insuffisant",
"type": "payment_required"
}
}
Choix du modèle : utilisez
MiniMax-H3-Max lorsque la vitesse est prioritaire et que le texte-vers-vidéo ou le contrôle de la première/dernière image suffit. Pour la 2K, les images intermédiaires ou les références image, vidéo et audio, utilisez MiniMax-H3.curl --request POST \
--url https://api.apimart.ai/v1/videos/generations \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "MiniMax-H3-Max",
"prompt": "Un détective en imperméable se retourne dans une rue néon sous la pluie. La caméra avance lentement.",
"duration": 5,
"resolution": "768P",
"aspect_ratio": "16:9"
}'
import requests
response = requests.post(
"https://api.apimart.ai/v1/videos/generations",
headers={"Authorization": "Bearer <token>", "Content-Type": "application/json"},
json={
"model": "MiniMax-H3-Max",
"prompt": "Un détective se retourne dans une rue néon sous la pluie.",
"duration": 5,
"resolution": "768P",
"aspect_ratio": "16:9",
},
)
print(response.json())
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01J9HA7JPQ9A0Z6JZ3V8M9W6PZ"
}
]
}
{
"error": {
"code": 400,
"message": "Paramètres de requête non valides",
"type": "invalid_request_error"
}
}
{
"error": {
"code": 401,
"message": "Échec de l'authentification. Vérifiez votre clé API.",
"type": "authentication_error"
}
}
{
"error": {
"code": 402,
"message": "Solde du compte insuffisant",
"type": "payment_required"
}
}
Authentification
string
requis
Tous les endpoints nécessitent un Bearer Token. Obtenez votre clé sur la page des clés API.
Authorization: Bearer YOUR_API_KEY
Choisir le bon modèle
| Capacité | MiniMax-H3 | MiniMax-H3-Max |
|---|---|---|
| Résolution | 2K / 768P, par défaut 2K | 768P / 480P, par défaut 768P |
| Durée | 4 à 15 secondes | 5 à 15 secondes |
| Texte-vers-vidéo | Pris en charge | Pris en charge |
| Première / dernière image | Pris en charge | Pris en charge |
| Image intermédiaire | Pris en charge | Non pris en charge |
| Références multimodales | Image, vidéo et audio | Non pris en charge |
| Coût des images d’entrée | 5 premières gratuites | Gratuit |
MiniMax-H3-Max ne prend pas en charge la 2K et sa sortie ne peut pas servir de source à Regeneration.Modes de génération
Les champs de la requête déterminent automatiquement le mode ; n’envoyez pas de champmode.
| Mode | Déclencheur | Comportement |
|---|---|---|
| Texte-vers-vidéo (T2V) | Uniquement prompt et les champs communs | Génération depuis le texte |
| Image-vers-vidéo (I2V) | first_frame_image / last_frame_image ou rôles équivalents dans image_with_roles | Contrôle de la première image, de la dernière ou des deux |
Ce modèle ne prend pas en charge
image_urls, video_urls, audio_urls ni image_with_roles[].role = "reference_image". Tout média de référence renvoie HTTP 400 avant création ou facturation de la tâche.Paramètres de requête
string
requis
Valeur fixe :
MiniMax-H3-Max. La casse n’est pas prise en compte ; minimax-h3-max est également accepté.string
requis
Description vidéo non vide, obligatoire dans tous les modes. Maximum :
7000 caractères.integer
défaut:"5"
Durée en secondes : entier de
5 à 15, valeur par défaut 5. Une durée de 4 secondes n’est pas prise en charge.string
défaut:"768P"
Résolution de sortie :
768P (par défaut) ou 480P.2K, 1440P et 2048P ne sont pas pris en charge. Une valeur non valide renvoie HTTP 400 sans réduction silencieuse.string
Format de sortie. Les alias
size et ratio sont également acceptés.Valeurs T2V : 21:9, 16:9, 4:3, 1:1, 3:4, 9:16.- T2V sans valeur ou avec
adaptive: retour à16:9 - I2V : déterminé par l’image d’entrée ; ce champ est ignoré
string
URL publique de l’image utilisée comme première image de la vidéo.
string
URL publique de la dernière image. Peut être utilisée seule ou avec
first_frame_image.object[]
Tableau d’images avec rôles, en remplacement de
Un seul fichier est autorisé par rôle ;
first_frame_image et last_frame_image.Afficher Élément image_with_roles
Afficher Élément image_with_roles
role ne peut pas être vide.boolean
défaut:"false"
Ajoute un filigrane AIGC. Alias :
aigc_watermark.string
Reçoit une notification lorsque la tâche se termine par un succès ou un échec.
Utilisez
webhook et non callback_url de MiniMax. La passerelle réserve callback_url à son usage interne.Paramètres non pris en charge
Ces valeurs renvoient HTTP 400 avant la création et la facturation :| Paramètre / valeur | Raison |
|---|---|
image_urls | Traité comme images de référence, non prises en charge |
image_with_roles[].role = "reference_image" | Seules la première et la dernière image sont autorisées |
video_urls / video_url | Vidéo de référence non prise en charge |
audio_urls / audio_url | Audio de référence non pris en charge |
resolution: "2K" | Uniquement 768P et 480P |
duration: 4 ou supérieure à 15 | Uniquement 5 à 15 secondes |
Pour les références, la 2K, les images intermédiaires ou une vidéo de 4 secondes, utilisez MiniMax-H3.
Limites des images
Le corps total de la requête ne doit pas dépasser 64 Mo. Utilisez des URL publiques ; Base64 n’est pas pris en charge.| Élément | Limite |
|---|---|
| Formats | JPG / JPEG / PNG / WEBP / HEIC / HEIF |
| Par fichier | ≤ 30 Mo |
| Largeur et hauteur | 256–5760 px |
| Format largeur / hauteur | 0,4–2,5 |
| Nombre | 1 première image et 1 dernière image au maximum ; 2 au total |
Exemples
Image-vers-vidéo avec première image
{
"model": "MiniMax-H3-Max",
"prompt": "La caméra avance lentement tandis que la vapeur monte.",
"first_frame_image": "https://cdn.example.com/ramen.png",
"duration": 5,
"resolution": "480P"
}
Image-vers-vidéo avec première et dernière images
{
"model": "MiniMax-H3-Max",
"prompt": "La scène passe progressivement du matin au coucher du soleil.",
"first_frame_image": "https://cdn.example.com/morning.png",
"last_frame_image": "https://cdn.example.com/sunset.png",
"duration": 8,
"resolution": "768P"
}
Consulter une tâche
La soumission renvoie untask_id. Interrogez l’état de la tâche toutes les 5 à 10 secondes et utilisez un délai client de 15 minutes.
status | Signification |
|---|---|
pending | Soumise ou en file d’attente |
processing | Génération en cours |
completed | URL vidéo dans result.videos[0].url |
failed | Consultez error.message ; remboursement automatique |
Les URL générées expirent généralement après environ 24 heures. Téléchargez rapidement le résultat.
Tarification
Coût total = tarif par seconde × durée. Les première et dernière images sont gratuites.| Élément | Tarif |
|---|---|
| Vidéo 768P | $0.075 / seconde |
| Vidéo 480P | $0.0495 / seconde |
| Images d’entrée | Gratuit |
cost de la tâche fait foi.
Erreurs
| Scénario | Résultat |
|---|---|
prompt vide ou supérieur à 7000 caractères | 400 ; aucune tâche |
duration hors de 5–15 | 400 ; aucune tâche |
resolution non prise en charge | 400 ; aucune tâche |
| Média de référence | 400 ; aucune tâche |
| Rôle d’image invalide ou dupliqué | 400 ; aucune tâche |
| Solde insuffisant | 402 |
| Rejet de sécurité du contenu | 422 |
| Limite de débit | 429 ; réessayer avec backoff |
status = failed et error.message, avec remboursement automatique.
Response
integer
Code d’état ; 200 en cas de succès