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 detective con gabardina se gira en una calle iluminada por neón bajo la lluvia. La cámara se acerca lentamente.",
"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 detective se gira en una calle de neón bajo la lluvia.",
"duration": 5,
"resolution": "768P",
"aspect_ratio": "16:9",
},
)
print(response.json())
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01J9HA7JPQ9A0Z6JZ3V8M9W6PZ"
}
]
}
{
"error": {
"code": 400,
"message": "Parámetros de solicitud no válidos",
"type": "invalid_request_error"
}
}
{
"error": {
"code": 401,
"message": "Error de autenticación. Compruebe su clave de API.",
"type": "authentication_error"
}
}
{
"error": {
"code": 402,
"message": "Saldo de cuenta insuficiente",
"type": "payment_required"
}
}
MiniMax-H3
Generación de vídeo MiniMax-H3-Max
- Versión rápida de MiniMax Video Generation V2 con envío asíncrono de tareas
- Admite texto a vídeo e imagen a vídeo con fotograma inicial, final o ambos
- Admite 768P / 480P, duraciones de 5 a 15 segundos y pista de audio
- No admite 2K, fotogramas intermedios ni referencias 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 detective con gabardina se gira en una calle iluminada por neón bajo la lluvia. La cámara se acerca lentamente.",
"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 detective se gira en una calle de neón bajo la lluvia.",
"duration": 5,
"resolution": "768P",
"aspect_ratio": "16:9",
},
)
print(response.json())
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01J9HA7JPQ9A0Z6JZ3V8M9W6PZ"
}
]
}
{
"error": {
"code": 400,
"message": "Parámetros de solicitud no válidos",
"type": "invalid_request_error"
}
}
{
"error": {
"code": 401,
"message": "Error de autenticación. Compruebe su clave de API.",
"type": "authentication_error"
}
}
{
"error": {
"code": 402,
"message": "Saldo de cuenta insuficiente",
"type": "payment_required"
}
}
Elección del modelo: use
MiniMax-H3-Max cuando la velocidad sea prioritaria y baste con texto a vídeo o el control del fotograma inicial/final. Para 2K, fotogramas intermedios, imágenes, vídeos o audios de referencia, use 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 detective con gabardina se gira en una calle iluminada por neón bajo la lluvia. La cámara se acerca lentamente.",
"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 detective se gira en una calle de neón bajo la lluvia.",
"duration": 5,
"resolution": "768P",
"aspect_ratio": "16:9",
},
)
print(response.json())
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_01J9HA7JPQ9A0Z6JZ3V8M9W6PZ"
}
]
}
{
"error": {
"code": 400,
"message": "Parámetros de solicitud no válidos",
"type": "invalid_request_error"
}
}
{
"error": {
"code": 401,
"message": "Error de autenticación. Compruebe su clave de API.",
"type": "authentication_error"
}
}
{
"error": {
"code": 402,
"message": "Saldo de cuenta insuficiente",
"type": "payment_required"
}
}
Autenticación
string
requerido
Todos los endpoints requieren un Bearer Token. Obtenga su clave en la página de claves de API.
Authorization: Bearer YOUR_API_KEY
Elegir el modelo
| Capacidad | MiniMax-H3 | MiniMax-H3-Max |
|---|---|---|
| Resolución | 2K / 768P, predeterminada 2K | 768P / 480P, predeterminada 768P |
| Duración | 4–15 segundos | 5–15 segundos |
| Texto a vídeo | Compatible | Compatible |
| Fotograma inicial / final | Compatible | Compatible |
| Fotograma intermedio | Compatible | No compatible |
| Referencias multimodales | Imagen, vídeo y audio | No compatible |
| Coste de imágenes de entrada | Primeras 5 gratis | Gratis |
MiniMax-H3-Max no admite 2K y su salida no puede usarse como origen para Regeneration.Modos de generación
Los campos de la solicitud determinan el modo automáticamente; no envíemode.
| Modo | Activador | Comportamiento |
|---|---|---|
| Texto a vídeo (T2V) | Solo prompt y campos comunes | Genera desde texto |
| Imagen a vídeo (I2V) | first_frame_image / last_frame_image o roles equivalentes en image_with_roles | Controla el fotograma inicial, final o ambos |
Este modelo no admite
image_urls, video_urls, audio_urls ni image_with_roles[].role = "reference_image". Cualquier medio de referencia devuelve HTTP 400 antes de crear y cobrar la tarea.Parámetros de solicitud
string
requerido
Valor fijo:
MiniMax-H3-Max. No distingue mayúsculas y minúsculas; minimax-h3-max también se acepta.string
requerido
Descripción no vacía del vídeo, obligatoria en todos los modos. Máximo de
7000 caracteres.integer
predeterminado:"5"
Duración en segundos: entero de
5 a 15, valor predeterminado 5. No se admiten 4 segundos.string
predeterminado:"768P"
Resolución de salida:
768P (predeterminada) o 480P.2K, 1440P y 2048P no se admiten. Un valor no válido devuelve HTTP 400 sin reducción automática.string
Relación de aspecto. También se aceptan los alias
size y ratio.Valores T2V: 21:9, 16:9, 4:3, 1:1, 3:4, 9:16.- T2V sin el campo o con
adaptive: usa16:9 - I2V: la determina la imagen de entrada; este campo se ignora
string
URL pública de la imagen usada como fotograma inicial.
string
URL pública de la imagen usada como fotograma final. Puede usarse sola o junto con
first_frame_image.object[]
Array de imágenes con roles alternativo a
Se admite como máximo una imagen por rol;
first_frame_image y last_frame_image.Mostrar Elemento de image_with_roles
Mostrar Elemento de image_with_roles
role no puede estar vacío.boolean
predeterminado:"false"
Añade una marca de agua AIGC. Alias:
aigc_watermark.string
Recibe una notificación cuando la tarea termina correctamente o con error.
Use
webhook, no el callback_url de MiniMax. La puerta de enlace reserva callback_url para uso interno.Parámetros no admitidos
Los siguientes valores devuelven HTTP 400 antes de crear y cobrar la tarea:| Parámetro / valor | Motivo |
|---|---|
image_urls | Se trata como imágenes de referencia, no admitidas |
image_with_roles[].role = "reference_image" | Solo se admiten fotogramas inicial y final |
video_urls / video_url | Vídeo de referencia no admitido |
audio_urls / audio_url | Audio de referencia no admitido |
resolution: "2K" | Solo 768P y 480P |
duration: 4 o superior a 15 | Solo 5–15 segundos |
Para referencias, 2K, fotogramas intermedios o vídeo de 4 segundos, use MiniMax-H3.
Límites de las imágenes
El cuerpo total de la solicitud debe ser de 64 MB o menos. Use URL públicas; Base64 no es compatible.| Elemento | Límite |
|---|---|
| Formatos | JPG / JPEG / PNG / WEBP / HEIC / HEIF |
| Por archivo | ≤ 30 MB |
| Ancho y alto | 256–5760 px |
| Relación de aspecto | 0,4–2,5 |
| Cantidad | Hasta 1 fotograma inicial y 1 final; 2 imágenes en total |
Ejemplos
Imagen a vídeo con fotograma inicial
{
"model": "MiniMax-H3-Max",
"prompt": "La cámara se acerca lentamente mientras asciende el vapor.",
"first_frame_image": "https://cdn.example.com/ramen.png",
"duration": 5,
"resolution": "480P"
}
Imagen a vídeo con fotogramas inicial y final
{
"model": "MiniMax-H3-Max",
"prompt": "La escena pasa gradualmente de la mañana al atardecer.",
"first_frame_image": "https://cdn.example.com/morning.png",
"last_frame_image": "https://cdn.example.com/sunset.png",
"duration": 8,
"resolution": "768P"
}
Consultar una tarea
El envío devuelvetask_id. Consulte el estado de la tarea cada 5–10 segundos y use un timeout de cliente de 15 minutos.
status | Significado |
|---|---|
pending | Enviada o en cola |
processing | Generándose |
completed | URL del vídeo en result.videos[0].url |
failed | Consulte error.message; reembolso automático |
Las URL generadas suelen caducar tras unas 24 horas. Descargue y guarde el resultado cuanto antes.
Precios
Coste total = tarifa por segundo × duración. Las imágenes inicial y final son gratuitas.| Elemento | Tarifa |
|---|---|
| Vídeo 768P | $0.075 / segundo |
| Vídeo 480P | $0.0495 / segundo |
| Imágenes de entrada | Gratis |
cost de la tarea es definitivo.
Errores
| Escenario | Resultado |
|---|---|
prompt vacío o superior a 7000 caracteres | 400; sin tarea |
duration fuera de 5–15 | 400; sin tarea |
resolution no admitida | 400; sin tarea |
| Medio de referencia | 400; sin tarea |
| Rol de imagen no válido o duplicado | 400; sin tarea |
| Saldo insuficiente | 402 |
| Rechazo de seguridad de contenido | 422 |
| Límite de solicitudes | 429; reintente con backoff |
status = failed y error.message, con reembolso automático.
Response
integer
Código de respuesta; 200 si es correcto