Source: https://ailoot.ai/models/es/minimax-hailuo-2-3/
Canonical: https://ailoot.ai/models/es/minimax-hailuo-2-3/
Language: es

# MiniMax-Hailuo-2.3

[Markdown](https://ailoot.ai/models/es/minimax-hailuo-2-3/index.md) · [JSON](https://ailoot.ai/models/es/minimax-hailuo-2-3/facts.json)

## [MiniMax-Hailuo-2.3](https://ailoot.ai/models/es/minimax-hailuo-2-3/)

MiniMax Hailuo 2.3 crea vídeos a partir de texto o una imagen inicial, con controles de movimiento y dirección de cámara. Elija seis segundos a 768P o 1080P, o diez segundos a 768P, para interpretaciones de personajes, escenas estilizadas y planos de producto que puedan revisarse y editarse.

- [**Ailoot · Vídeo** `POST /v1/videos/generations` `MiniMax-Hailuo-2.3`](https://ailoot.ai/models/es/minimax-hailuo-2-3/#method-0)
- [**Ailoot Ultra · Vídeo** `POST /v1/videos` `MiniMax-Hailuo-2.3`](https://ailoot.ai/models/es/minimax-hailuo-2-3/#method-1)

Sobre el modelo

Esta descripción cubre las capacidades del modelo. Las entradas, salidas y opciones disponibles en Ailoot se indican a continuación para el método seleccionado.

MiniMax Hailuo 2.3 es un modelo de generación de vídeo con modos de texto a vídeo e imagen a vídeo. Se basa en Hailuo 02 y se centra en la acción física, el estilo visual, las microexpresiones de personajes y la respuesta a indicaciones de movimiento. Proporcione una escena escrita para crear un plano desde cero o utilice una imagen inicial para establecer la vista de apertura y describa el movimiento que sigue.

La interpretación física es una de las principales áreas de mejora de la edición. Hailuo 2.3 busca hacer más fluidos y controlados los movimientos corporales, incluidas escenas con cámara en movimiento. Planifique la acción importante antes de añadir detalles decorativos. Un personaje que levanta un objeto, se gira hacia otra persona o se mueve por una habitación da al plano un acontecimiento visible que evaluar. Decida qué movimiento sostiene la historia y mantenga coherentes con él las indicaciones circundantes.

La estilización es otro foco. El modelo admite trabajo en anime e ilustración, además de estilos como pintura a la tinta y gráficos de videojuegos. Describa el tratamiento visual deseado y mantenga el aspecto coherente con la escena. Si una imagen inicial ya establece un estilo de dibujo, utilice el texto para orientar la animación, en lugar de introducir una descripción contradictoria del diseño del personaje. Revise todo el clip para comprobar si ese tratamiento sigue siendo legible durante el movimiento.

El modelo también se centra en la interpretación facial y los cambios sutiles de expresión. Prepare un plano de personaje alrededor de la reacción que importa: percibir un objeto, sentir curiosidad o responder con una pequeña sonrisa. Una vista cercana puede facilitar evaluar ese cambio, mientras que una secuencia grande de gestos puede distraer de él. Compruebe el rostro antes, durante y después de la reacción, en lugar de juzgar solo un fotograma fijo representativo.

El movimiento de objetos es útil para escenas centradas en producto. Un encargo original podría mostrar un pequeño jarrón de cerámica girando bajo luz lateral cálida mientras la cámara se acerca gradualmente. Identifique qué propiedades deben seguir siendo reconocibles, como la silueta, el borde y el acabado superficial. Revise esos detalles durante el movimiento, porque una atmósfera convincente por sí sola no demuestra una vista fiel del producto.

Para texto a vídeo, la descripción obligatoria puede contener hasta 2000 caracteres. Indique sujeto, acción, escenario y estilo visual en un orden coherente. Imagen a vídeo exige una imagen de fotograma inicial, con una descripción opcional de hasta 2000 caracteres. La imagen fija la composición de apertura, por lo que debe preparar el sujeto y el encuadre antes de pedir movimiento. Deje espacio visible donde deba moverse un brazo, un objeto o un personaje.

La imagen inicial acepta JPG, JPEG, PNG o WebP, debe ocupar menos de 20 MB, necesita un lado corto mayor de 300 píxeles y debe tener relación de aspecto entre 2:5 y 5:2. Puede proporcionarse como URL pública de imagen o URL de datos Base64. Elija una imagen inicial clara, en lugar de confiar en que la animación repare un rostro oculto o una acción ya recortada.

Hailuo 2.3 genera a 24 fotogramas por segundo. Un plano de seis segundos puede utilizar 768P o 1080P; uno de diez segundos utiliza 768P. Los valores predeterminados son seis segundos y 768P. Elija la duración para la acción que desea ver: una reacción breve puede caber en un plano corto, mientras que un movimiento más lento necesita más espacio. Lea el ancho y el alto reales del resultado completado al colocar el clip en una edición, ya que una etiqueta de resolución por sí sola no constituye toda la decisión de encuadre.

La dirección de cámara puede utilizar comandos entre corchetes. Los controles disponibles abarcan desplazamientos laterales, panorámicas, acercamientos, movimientos verticales de pedestal, inclinaciones, zoom, sacudidas, seguimiento y plano estático. Un comando como \[Push in\] dirige el acercamiento; los comandos agrupados dentro de un corchete actúan juntos, mientras que los colocados en orden describen una secuencia. MiniMax recomienda un máximo de tres comandos simultáneos. Mantenga el movimiento de cámara compatible con la acción del sujeto para que el acontecimiento principal siga siendo fácil de seguir.

La optimización automática de instrucciones está activada de forma predeterminada y puede desactivarse para controlar más de cerca la redacción proporcionada. El preprocesamiento rápido opcional reduce el tiempo de optimización cuando esta está activada; es un ajuste separado de elegir el modelo Hailuo 2.3 Fast. Hailuo 2.3 estándar admite ambos modos de creación, mientras que Fast es la edición independiente de imagen a vídeo. Elija la edición según si el proyecto comienza solo con texto o con un fotograma existente.

El flujo de generación devuelve un identificador de tarea asíncrona y después informa de preparación, cola, procesamiento, éxito o fallo. En caso de éxito, el resultado proporciona un identificador de archivo y las dimensiones reales del vídeo, y el vídeo completado se recupera para descarga. Guarde el clip mientras sea válida su dirección de descarga. La referencia actual de descarga de vídeo del fabricante da a la URL de descarga devuelta una vida de una hora. Para una secuencia editada, conserve cada plano con su instrucción e imagen inicial para que la dirección creativa elegida siga siendo trazable durante las revisiones.

Revise la acción, la continuidad física, los detalles faciales o de producto, el estilo visual y el comportamiento de cámara en el clip guardado. Vea todo el plano y después examine el principio y el final donde se unirá con otro material. Si la solicitud contiene demasiados movimientos enfrentados, simplifique la acción principal; si el diseño inicial no está claro, mejore la imagen de partida. Seleccione un plano que comunique el acontecimiento previsto y después añada narración, títulos y transiciones en el flujo de edición.

**Ailoot · Vídeo** `POST /v1/videos/generations` `MiniMax-Hailuo-2.3`

[`MiniMax-Hailuo-2.3`](https://ailoot.ai/models/es/#m=MiniMax-Hailuo-2.3&route=Core&caller=MiniMax-Hailuo-2.3&fmt=videos)

MiniMax /`MiniMax-Hailuo-2.3`

### Primeros pasos

MiniMax Hailuo 2.3 crea vídeos a partir de texto o una imagen inicial, con controles de movimiento y dirección de cámara. Elija seis segundos a 768P o 1080P, o diez segundos a 768P, para interpretaciones de personajes, escenas estilizadas y planos de producto que puedan revisarse y editarse.

Entradas aceptadas

Texto · Imágenes

Resultados

Vídeo

### Disponible en Ailoot · entradas y métodos

**Ailoot · Vídeo** `POST /v1/videos/generations`

Tipos de entrada

`text`, `image`

Tipos de salida

`video`

Formato de salida

mp4

| Campo | Tipo | Requisito | Valores y límites | Predeterminado |
| --- | --- | --- | --- | --- |
| Campo`model` | Tipo`string` | RequisitoObligatorio | Valores y límites MiniMax-Hailuo-2.3 | Predeterminado— |
| Campo`prompt` | Tipo`string` | RequisitoObligatorio | Valores y límites Longitud mínima: 1 Longitud máxima: 2000 Unidad: caracteres Unicode | Predeterminado— |
| Campo`duration` | Tipo`integer` | RequisitoOpcional | Valores y límites 6, 10 Condiciones: 10 segundos requieren 768P Unidad: segundos | Predeterminado6 |
| Campo`resolution` | Tipo`string` | RequisitoOpcional | Valores y límites 768P, 1080P Condiciones: 1080P requiere 6 segundos | Predeterminado768P |
| Campo`first_frame_image` | Tipo`https_url\|data_image_url` | RequisitoOpcional | Valores y límites Máximo de bytes decodificados: 20.971.520 Tipos MIME: image/jpeg, image/png, image/webp Dimensión mínima (exclusiva): 300 Rango de relaciones de aspecto: 2:5, 5:2 | Predeterminado— |
| Campo`prompt_optimizer` | Tipo`boolean` | RequisitoOpcional | Valores y límites | Predeterminado— |
| Campo`fast_pretreatment` | Tipo`boolean` | RequisitoOpcional | Valores y límites | Predeterminado— |

Combinaciones de materiales de entrada

**Imagen a vídeo** · Obligatorio: prompt, first\_frame\_image

**Texto a vídeo** · Obligatorio: prompt

Parámetros del método y ciclo de vida

| Parámetro | Contrato |
| --- | --- |
| Parámetro`material_types` | Contratotext, image |
| Parámetro`required` | Contratonull |
| Parámetro`optional_controls` | Contratonull |

Ciclo de vida: `submit_once_poll_original`

`GET /v1/videos/{request_id}`

`GET /v1/videos/generations/{request_id}`

`GET /v1/videos/{request_id}/content`

`GET /v1/videos/generations/{request_id}/content`

Las estructuras e ID de los métodos son exactos; la capacidad del proveedor y la admisión son conceptos distintos.

### Planes

#### Tarifas de métodos Ailoot

Salida

0,28 US$ *por vídeo de 6 s a 768p*

Ailoot reserva un importe estimado antes de la solicitud. Tras obtener el resultado, liquida el cargo definitivo según el uso medido. En las respuestas en flujo, la liquidación usa el registro de uso final. [Cómo funcionan la reserva y la liquidación →](https://ailoot.ai/docs/es/billing/reserve/)

#### Detalles de la tarifa de referencia

Las tablas de referencia del modelo no cambian la selección del método, las estimaciones de coste ni los cargos. Los cargos aplicados usan las tarifas del método Ailoot seleccionado.

MiniMax-Hailuo-2.3

#### Precios por configuración

| Configuración | Condiciones de facturación | Cargo |
| --- | --- | --- |
| ConfiguraciónMiniMax-Hailuo-2.3 · Configuración predeterminada | Condiciones de facturaciónConfiguración predeterminada | Cargo Entrada · Entrada **0,00 US$** por llamada Salida · Salida **0,60 US$** por llamada |

MiniMax-Hailuo-2.3

#### Precios por configuración

| Configuración | Condiciones de facturación | Cargo |
| --- | --- | --- |
| ConfiguraciónMiniMax-Hailuo-2.3 · Configuración predeterminada | Condiciones de facturaciónConfiguración predeterminada | Cargo Entrada · Entrada **0,00 US$** por llamada Salida · Salida **1,20 US$** por llamada |

MiniMax-Hailuo-2.3

#### Precios por configuración

| Configuración | Condiciones de facturación | Cargo |
| --- | --- | --- |
| ConfiguraciónMiniMax-Hailuo-2.3 · Configuración predeterminada | Condiciones de facturaciónConfiguración predeterminada | Cargo Entrada · Entrada **0,00 US$** por llamada Salida · Salida **1,20 US$** por llamada |

### Solicitudes de ejemplo

#### Ailoot · Vídeo

Ejemplo de vídeo

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
curl https://api.ailoot.ai/v1/videos/generations \
  -H "Authorization: Bearer $AILOOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "MiniMax-Hailuo-2.3", "prompt": "A person walks slowly through a quiet garden as the camera tracks from the side.", "duration": 6, "resolution": "768P"}'
```

### Recibir y guardar resultados

#### Ailoot · Vídeo

mp4

- `GET /v1/videos/{request_id}`
- `GET /v1/videos/generations/{request_id}`
- `GET /v1/videos/{request_id}/content`
- `GET /v1/videos/generations/{request_id}/content`

##### Consultar el estado de la tarea

Obtener estado con GET

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_VIDEO_ID:?Set the actual Ailoot operation ID returned by creation}"
export AILOOT_VIDEO_ID
video_id=$(python3 -c 'import os, urllib.parse; print(urllib.parse.quote(os.environ["AILOOT_VIDEO_ID"], safe=""))') || exit 1
curl "https://api.ailoot.ai/v1/videos/generations/$video_id" \
  -H "Authorization: Bearer $AILOOT_API_KEY"
```

Otras consultas de contenido

Obtener contenido con GET

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_VIDEO_ID:?Set the actual Ailoot operation ID returned by creation}"
export AILOOT_VIDEO_ID
video_id=$(python3 -c 'import os, urllib.parse; print(urllib.parse.quote(os.environ["AILOOT_VIDEO_ID"], safe=""))') || exit 1
curl "https://api.ailoot.ai/v1/videos/generations/$video_id/content" \
  -H "Authorization: Bearer $AILOOT_API_KEY" \
  --output video.mp4
```

##### Conserva todos los resultados completados

Guarda todos los vídeos completados o archivos recibidos; descarga cada URL de archivo que se haya devuelto.

Conserva todos los elementos de data y los índices de salida devueltos. content\_url solo corresponde al primero; recupera todas las rutas de contenido y todos los recursos reales. Un GET de contenido sin index no devuelve todos los resultados.

##### Si es necesario revisar la respuesta original

Consulta el trabajo original existente; no vuelvas a enviar nunca un envío de resultado desconocido.

Campos de respuesta

| Campo | Tipo |
| --- | --- |
| Campo`id` | Tipostring |
| Campo`object` | Tipostring |
| Campo`model` | Tipostring |
| Campo`status` | Tipostring |
| Campo`content_url` | Tiposigned URL |
| Campo`data[]` | Tiposigned URL |
| Campo`usage` | Tipoobject |
| Campo`result_pending_check` | Tipoboolean |

Errores y siguientes pasos

| Respuesta | Condición | Siguiente paso |
| --- | --- | --- |
| Respuesta400 · `invalid_request_error` | CondiciónCampos obligatorios, representación del material o valor del parámetro no válidos | Siguiente pasoCorrige los campos indicados antes de una nueva solicitud de creación. |
| Respuesta409 · `video_not_ready` | CondiciónEl contenido del resultado original aún no está disponible | Siguiente pasoConsulta periódicamente el ID original devuelto y respeta Retry-After. |
| Respuesta`server_error` | CondiciónLa respuesta devuelta indica que la operación o el resultado requiere una comprobación | Siguiente pasoConserva el ID original de operación o tarea devuelto, las cabeceras de la solicitud y la respuesta; continúa con las lecturas admitidas de esa operación original. No vuelvas a enviar la solicitud de creación. |

### Alias

#### Alias del modelo

<strong>Ailoot</strong> [`MiniMax-Hailuo-2.3`](https://ailoot.ai/models/es/#m=MiniMax-Hailuo-2.3&route=Core&caller=MiniMax-Hailuo-2.3&fmt=videos)
**Ailoot Ultra** [`MiniMax-Hailuo-2.3`](https://ailoot.ai/models/es/#m=MiniMax-Hailuo-2.3&route=Ultra&caller=MiniMax-Hailuo-2.3&fmt=videos)

#### Alias de rutas de métodos

`/v1/videos/generations`, `/videos`, `/videos/generations`

#### ID de modelo relacionados

[`MiniMax-Hailuo-2.3`](https://ailoot.ai/models/es/#m=MiniMax-Hailuo-2.3&route=Core&caller=MiniMax-Hailuo-2.3&fmt=videos), [`MiniMax-Hailuo-2.3`](https://ailoot.ai/models/es/#m=MiniMax-Hailuo-2.3&route=Ultra&caller=MiniMax-Hailuo-2.3&fmt=videos)

**Ailoot Ultra · Vídeo** `POST /v1/videos` `MiniMax-Hailuo-2.3`

[`MiniMax-Hailuo-2.3`](https://ailoot.ai/models/es/#m=MiniMax-Hailuo-2.3&route=Ultra&caller=MiniMax-Hailuo-2.3&fmt=videos)

MiniMax /`MiniMax-Hailuo-2.3`

### Primeros pasos

MiniMax Hailuo 2.3 crea vídeos a partir de texto o una imagen inicial, con controles de movimiento y dirección de cámara. Elija seis segundos a 768P o 1080P, o diez segundos a 768P, para interpretaciones de personajes, escenas estilizadas y planos de producto que puedan revisarse y editarse.

Entradas aceptadas

Texto

Resultados

Vídeo

### Disponible en Ailoot · entradas y métodos

**Ailoot Ultra · Vídeo** `POST /v1/videos`

Tipos de entrada

`text`

Tipos de salida

`video`

Formato de salida

mp4

Número de salidas

Hasta 1 salida

| Campo | Tipo | Requisito | Valores y límites | Predeterminado |
| --- | --- | --- | --- | --- |
| Campo`model` | Tipo`string` | RequisitoObligatorio | Valores y límites MiniMax-Hailuo-2.3 | Predeterminado— |
| Campo`prompt` | Tipo`string` | RequisitoObligatorio | Valores y límites Longitud mínima: 1 Longitud máxima: 2000 Condiciones: Para 768P: como máximo 2000 puntos de código Unicode. Para 1080P: menos de 200 puntos de código Unicode (máximo 199). La instrucción debe contener texto que no sea únicamente espacios en blanco. Unidad: caracteres Unicode | Predeterminado— |
| Campo`duration` | Tipo`integer` | RequisitoObligatorio | Valores y límites 6 Unidad: segundos | Predeterminado— |
| Campo`resolution` | Tipo`string` | RequisitoObligatorio | Valores y límites 768P, 1080P | Predeterminado— |

Combinaciones de materiales de entrada

**Texto a vídeo** · Obligatorio: prompt

Parámetros del método y ciclo de vida

| Parámetro | Contrato |
| --- | --- |
| Parámetro`content_type` | Contratoapplication/json |
| Parámetro`required` | Contratomodel, prompt, duration, resolution |
| Parámetro`other_options` | Contratofalse |
| Parámetro`duration` | Contrato6 |
| Parámetro`resolution` | Contrato768P, 1080P |
| Parámetro`prompt_max_characters` | Contrato2000 |
| Parámetro`material_types` | Contratotext |
| Parámetro`prompt_max_characters_by_resolution` | Contrato{"768P":2000,"1080P":199} |

Alias de método: `/v1/videos/generations`, `/videos`, `/videos/generations`

Ciclo de vida: `submit_once_poll_original`

`GET /v1/videos/{request_id}`

`GET /v1/videos/generations/{request_id}`

`GET /v1/videos/{request_id}/content`

`GET /v1/videos/generations/{request_id}/content`

Crea una sola vez y guarda el ID devuelto.

Consulta periódicamente el estado original; conserva todos los recursos completados y sus duraciones.

### Planes

Las referencias tarifarias no añaden opciones a la solicitud. Los parámetros admitidos se indican en el método seleccionado.

Modo rápido

Sin especificar Cuando se selecciona el modo rápido

Modo flex

Sin especificar Cuando se selecciona el modo flex

Esfuerzo máximo de razonamiento

Sin especificar Cuando el esfuerzo máximo de razonamiento utiliza el ajuste predeterminado (default)

#### Tarifas de Ailoot

#### Precios por configuración

Relaciona cada cargo con las condiciones mostradas. Usa una tarifa para cada conjunto de configuraciones alternativas.

| Configuración | Tabla de tarifas | Duración nominal del clip, segundos | Resolución | Unidad de facturación | Cargo |
| --- | --- | --- | --- | --- | --- |
| ConfiguraciónTarifas base por token | Tabla de tarifasTarifa base | Duración nominal del clip, segundos— | Resolución— | Unidad de facturación— | Cargo Entrada · Tokens de entrada **—** / 1K tokens Salida · Tokens de salida **—** / 1K tokens Entrada · Lectura de caché **—** / 1K tokens Entrada · Escritura en caché **—** / 1K tokens Entrada · Escritura en caché, 1 hora **—** / 1K tokens |
| ConfiguraciónUltra | Tabla de tarifas— | Duración nominal del clip, segundos6 | Resolución1080P | Unidad de facturaciónpor clip de salida de duración nominal 6s | Cargo Salida · clip de salida nominal de 6s **$1.2** por clip de salida de duración nominal 6s |
| ConfiguraciónUltra | Tabla de tarifas— | Duración nominal del clip, segundos6 | Resolución768P | Unidad de facturaciónpor clip de salida de duración nominal 6s | Cargo Salida · clip de salida nominal de 6s **$0.6** por clip de salida de duración nominal 6s |

Ailoot reserva un importe estimado antes de la solicitud. Tras obtener el resultado, liquida el cargo definitivo según el uso medido. En las respuestas en flujo, la liquidación usa el registro de uso final. [Cómo funcionan la reserva y la liquidación →](https://ailoot.ai/docs/es/billing/reserve/)

#### Detalles de la tarifa de referencia

Las tablas de referencia del modelo no cambian la selección del método, las estimaciones de coste ni los cargos. Los cargos aplicados usan las tarifas del método Ailoot seleccionado.

MiniMax-Hailuo-2.3

#### Precios por configuración

| Configuración | Condiciones de facturación | Cargo |
| --- | --- | --- |
| ConfiguraciónMiniMax-Hailuo-2.3 · Configuración predeterminada | Condiciones de facturaciónConfiguración predeterminada | Cargo Entrada · Entrada **0,00 US$** por llamada Salida · Salida **0,60 US$** por llamada |

MiniMax-Hailuo-2.3

#### Precios por configuración

| Configuración | Condiciones de facturación | Cargo |
| --- | --- | --- |
| ConfiguraciónMiniMax-Hailuo-2.3 · Configuración predeterminada | Condiciones de facturaciónConfiguración predeterminada | Cargo Entrada · Entrada **0,00 US$** por llamada Salida · Salida **1,20 US$** por llamada |

MiniMax-Hailuo-2.3

#### Precios por configuración

| Configuración | Condiciones de facturación | Cargo |
| --- | --- | --- |
| ConfiguraciónMiniMax-Hailuo-2.3 · Configuración predeterminada | Condiciones de facturaciónConfiguración predeterminada | Cargo Entrada · Entrada **0,00 US$** por llamada Salida · Salida **1,20 US$** por llamada |

### Solicitudes de ejemplo

#### Ailoot Ultra · Vídeo

curlcurl · 1080P / 6 segundos

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "MiniMax-Hailuo-2.3", "prompt": "A cat in a spacesuit walking on the Moon", "duration": 6, "resolution": "768P"}')

Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
```

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "MiniMax-Hailuo-2.3", "prompt": "A cat in a spacesuit walking on the Moon", "duration": 6, "resolution": "1080P"}')

Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
```

### Recibir y guardar resultados

#### Ailoot Ultra · Vídeo

mp4

- `GET /v1/videos/{request_id}`
- `GET /v1/videos/generations/{request_id}`
- `GET /v1/videos/{request_id}/content`
- `GET /v1/videos/generations/{request_id}/content`

##### Consultar el estado de la tarea

Obtener estado con GET

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_OPERATION_ID:?Set the actual Ailoot operation ID returned by creation}"
export AILOOT_OPERATION_ID
operation_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_OPERATION_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/videos/$operation_id" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o status.json
python3 - <<'PY_STATUS'
import json
from pathlib import Path
r=json.loads(Path("status.json").read_text())
print(json.dumps(r))
if r.get("status")=="completed":
    for x in r.get("data",[]):print(x)
PY_STATUS
```

##### Guarda todos los archivos completados

Obtener todos los archivos completados con GET

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_STATUS_FILE:?Set the actual completed status JSON file}"
export AILOOT_STATUS_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
from urllib.parse import urlsplit,urljoin
f=Path(os.environ["AILOOT_STATUS_FILE"])
if not f.is_file():raise SystemExit("Choose the actual completed status file")
r=json.loads(f.read_text())
if r.get("status")!="completed" or not isinstance(r.get("data"),list) or not r["data"]:raise SystemExit("Wait for a completed status with asset paths")
urls=[]
for x in r["data"]:
    if not isinstance(x,str) or "\n" in x or "\r" in x:raise SystemExit("Invalid asset path")
    u=urljoin("https://api.ailoot.ai",x)
    z=urlsplit(u)
    if z.scheme!="https" or z.netloc!="api.ailoot.ai" or z.username or z.password:raise SystemExit("Use the actual Ailoot asset paths from status")
    urls.append(u)
Path("asset-urls.txt").write_text("\n".join(urls)+"\n")
PY_REQUEST
index=0
while IFS= read -r asset_url; do
  curl --fail-with-body --silent --show-error "$asset_url" \
    -H "Authorization: Bearer $AILOOT_API_KEY" -o "video-${index}.mp4"
  index=$((index + 1))
done < asset-urls.txt
```

Otras consultas de contenido

Obtener contenido con GET

```bash
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_OPERATION_ID:?Set the actual Ailoot operation ID returned by creation}"
export AILOOT_OPERATION_ID
operation_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_OPERATION_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/videos/$operation_id/content" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o video.mp4
```

##### Conserva todos los resultados completados

Guarda todos los vídeos completados o archivos recibidos; descarga cada URL de archivo que se haya devuelto.

data\[\] completado contiene todas las URL firmadas de contenido bajo tu titularidad. Recupera cada URL devuelta o utiliza el endpoint de contenido con index establecido en un índice real de salida. Un trabajo original fallido puede devolver charge\_pending\_check; comprueba ese trabajo original en lugar de crearlo de nuevo.

##### Si es necesario revisar la respuesta original

Consulta el trabajo original existente; no vuelvas a enviar nunca un envío de resultado desconocido.

Máximo de salidas: 1.

Campos de respuesta

| Campo | Tipo |
| --- | --- |
| Campo`id` | Tipostring |
| Campo`object` | Tipostring |
| Campo`model` | Tipostring |
| Campo`status` | Tipostring |
| Campo`data[]` | Tiposigned content URL |
| Campo`charge_pending_check` | Tipoboolean |
| Campo`error.code` | Tipostring |
| Campo`error.message` | Tipostring |
| Campo`requested_nominal_duration_seconds` | Tipointeger |
| Campo`measured_duration_seconds` | Tiponumber |
| Campo`width` | Tipointeger |
| Campo`height` | Tipointeger |

Errores y siguientes pasos

| Respuesta | Condición | Siguiente paso |
| --- | --- | --- |
| Respuesta400 · `invalid_request_error` | CondiciónCampos obligatorios, representación del material o valor del parámetro no válidos | Siguiente pasoCorrige los campos indicados antes de una nueva solicitud de creación. |
| Respuesta409 · `video_not_ready` | CondiciónEl contenido del resultado original aún no está disponible | Siguiente pasoConsulta periódicamente el ID original devuelto y respeta Retry-After. |
| Respuesta`server_error` | CondiciónLa respuesta devuelta indica que la operación o el resultado requiere una comprobación | Siguiente pasoConserva el ID original de operación o tarea devuelto, las cabeceras de la solicitud y la respuesta; continúa con las lecturas admitidas de esa operación original. No vuelvas a enviar la solicitud de creación. |

### Alias

#### Alias del modelo

<strong>Ailoot</strong> [`MiniMax-Hailuo-2.3`](https://ailoot.ai/models/es/#m=MiniMax-Hailuo-2.3&route=Core&caller=MiniMax-Hailuo-2.3&fmt=videos)
**Ailoot Ultra** [`MiniMax-Hailuo-2.3`](https://ailoot.ai/models/es/#m=MiniMax-Hailuo-2.3&route=Ultra&caller=MiniMax-Hailuo-2.3&fmt=videos)

#### Alias de rutas de métodos

`/v1/videos/generations`, `/videos`, `/videos/generations`

#### ID de modelo relacionados

[`MiniMax-Hailuo-2.3`](https://ailoot.ai/models/es/#m=MiniMax-Hailuo-2.3&route=Core&caller=MiniMax-Hailuo-2.3&fmt=videos), [`MiniMax-Hailuo-2.3`](https://ailoot.ai/models/es/#m=MiniMax-Hailuo-2.3&route=Ultra&caller=MiniMax-Hailuo-2.3&fmt=videos)

FAQ · MiniMax-Hailuo-2.3

¿Qué entradas y resultados están disponibles?

`POST /v1/videos/generations` · `MiniMax-Hailuo-2.3`: `text`, `image` → `video` `POST /v1/videos` · `MiniMax-Hailuo-2.3`: `text` → `video`

¿Qué campos utiliza la solicitud?

`POST /v1/videos/generations` · `MiniMax-Hailuo-2.3`: `model`, `prompt`, `duration`, `resolution`, `first_frame_image`, `prompt_optimizer`, `fast_pretreatment` `POST /v1/videos` · `MiniMax-Hailuo-2.3`: `model`, `prompt`, `duration`, `resolution`

¿Qué límites se aplican?

`POST /v1/videos/generations` · `MiniMax-Hailuo-2.3`: `prompt.maximum_length`: `2000` `POST /v1/videos` · `MiniMax-Hailuo-2.3`: `prompt.maximum_length`: `2000`

Conecta Ailoot a Claude Code, OpenCode, Hermes o tu aplicación.

## La empresa y su cartera de proyectos

La empresa y su cartera de proyectos: millones de clientes; ventas por miles de millones al mes.

## Compra tokens con descuento.

Ahorro por suscripción para trabajo habitual. Códigos promocionales: hasta el 50% al comprar tokens.

Suscripción

Elige un plan con descuento para tus peticiones habituales.

Código de hasta el 50%

Introduce el código al comprar. El precio se recalcula según la promoción vigente.

Gasto en el historial

Modelo, tokens e importe quedan guardados por cada petición.

[Elegir suscripción](https://ailoot.ai/docs/es/billing/subscriptions/) · [Consultar precios de modelos](https://ailoot.ai/models/es/)

## Conecta la API al producto que vendes.

SaaS, aplicaciones y bots bajo la oferta y el acuerdo de licencia Ailoot. Solicita una licencia de reventa para redistribuir el acceso.

Aplicación comercial

Integra generación de texto, imágenes, vídeo y sonido en funciones de pago de tu servicio.

Licencia para revendedores

Envía descripción del proyecto y esquema de acceso. Solicita condiciones escritas de uso y reventa.

Documentos en la web

La oferta, el acuerdo de licencia y la política de datos están disponibles antes de conectar.

[Solicitar licencia de reventa](mailto:support@ailoot.ai) · [Oferta y acuerdo de licencia](https://ailoot.ai/legal/offer?lang=es)

## Ailoot · La empresa y su cartera de proyectos





Ailoot se apoya en la experiencia operativa acumulada, una amplia base de clientes, un servicio estable y el seguimiento continuo de KPI.





La empresa y su cartera de proyectos: millones de clientes; ventas por miles de millones al mes.





Ailoot aplica esa experiencia operativa al acceso por API a funciones de IA en productos de clientes, agentes, aplicaciones y automatizaciones.
