Skip to main content
POST
Интерактивный Playground справа позволяет протестировать работу в реальном времени. Укажите ваш API-ключ в Authorization (формат Bearer sk-xxx), добавьте один текстовый элемент в content (а также изображения, видео или аудио при необходимости), выберите duration и ratio и отправьте запрос. В ответе вернется task_id; получите видео с помощью эндпоинта запроса, описанного ниже.
Один эндпоинт, четыре режима: только текст = text-to-video; добавление изображения first_frame / last_frame = видео по ключевым кадрам; добавление reference_image / reference_video / reference_audio = видео по референсу. Режим определяется на основе content[], поэтому переключать эндпоинт не требуется. Подробности см. в обзоре MiniMax-H3.
⚠️ Четыре самые распространенные ошибки
  1. Путь начинается с /hailuo: создание через POST /hailuo/v2/video_generation, запрос через GET /hailuo/v2/query/video_generation/{task_id}. Путь /v2/... сам по себе возвращает веб-страницу, а не JSON
  2. duration должно быть целым числом от 4 до 15: строка "5" или дробное число вроде 5.5 будут отклонены
  3. resolution должно быть в верхнем регистре 768P: и 768p, и 2K будут отклонены
  4. Запросы только с текстом и только с аудио не могут использовать ratio: "adaptive"; выберите фиксированное соотношение сторон. adaptive работает только тогда, когда запрос содержит изображения или видео

Примеры кода

Python (requests · отправка + опрос + скачивание)

Python (видео по первому кадру · тело запроса)

Python (смешанные референсы · тело запроса)

cURL

Node.js (нативный fetch)

Браузерный JavaScript

Уже есть task_id? Один вызов cURL

Когда status равен succeeded, task.content.url — это URL MP4, и его можно скачать напрямую:

Справочник параметров

Соотношение сторон и размер на выходе (измеренный)

Требования к медиафайлам

Все медиафайлы должны быть публичными HTTPS URL, доступными для прямого скачивания. Base64, data URI, ссылки http:// и адреса частных сетей не поддерживаются. Ссылки с защитой от хотлинкинга или требующие авторизации приведут к сбою выполнения задачи при попытке скачивания медиафайлов.

Формат ответа

Создание задачи

Запрос задачи (в процессе)

Запрос задачи (успешно)

Запрос задачи (ошибка)

⚠️ Примечания к ответу
  • Результат запроса обернут в объект task, а не находится на верхнем уровне
  • При успешном выполнении гарантируются только id, status, progress и content.url; usage, model, ratio и подобные поля возвращаются не всегда, поэтому обрабатывайте их с осторожностью
  • Статус меняется по цепочке queued → running → succeeded / failed; в периоды пиковой нагрузки задача может начинаться с running
  • progress принимает только значения 0 и 1, поэтому его не стоит использовать как индикатор выполнения в процентах
  • URL видео — это task.content.url, и для него не требуется заголовок авторизации. На запросы HEAD возвращается 403, но с GET он работает корректно, поэтому для проверки используйте GET
  • Скачайте и сохраните видео на своей стороне как можно скорее после получения URL
Тарификация: при принятии задачи предварительно списывается duration × \$0.03 без дополнительной платы за референсные медиафайлы; за задачи, завершившиеся ошибкой, средства автоматически возвращаются в полном объеме. Запросы, возвращающие 4xx / 5xx при отправке, не тарифицируются, а запросы статуса и скачивание бесплатны. См. цены на обзорной странице.

Авторизации

Authorization
string
header
обязательно

API Key from the APIYI console

Тело

application/json
model
enum<string>
по умолчанию:MiniMax-H3
обязательно

Always MiniMax-H3 (case-sensitive)

Доступные опции:
MiniMax-H3
content
object[]
обязательно

Exactly one text item plus 0–12 media items. Media item types:

  • image_url: role first_frame / last_frame / reference_image; up to 9 reference images. A single image without role is treated as the first frame
  • video_url: role reference_video; up to 3 clips, MP4/MOV, 50MB max, at least 2 seconds each, 15 seconds total at most
  • audio_url: role reference_audio; up to 3 clips, WAV/MP3/M4A/AAC, 15MB max, at least 2 seconds each
Required array length: 1 - 13 elements
resolution
enum<string>
по умолчанию:768P
обязательно

Resolution. This channel supports 768P only (uppercase; 768p and 2K are rejected)

Доступные опции:
768P
duration
integer
по умолчанию:5
обязательно

Output length in seconds, an integer from 4 to 15. Billed per second; the finished clip is usually 0.1–0.5 s longer than requested

Требуемый диапазон: 4 <= x <= 15
ratio
enum<string>
по умолчанию:16:9
обязательно

Aspect ratio and output size: 21:9=1536×672, 16:9=1344×768, 4:3=1024×768, 1:1=768×768, 3:4=768×1024, 9:16=768×1344. adaptive follows the input image's ratio and only works for requests with images or videos; text-only and audio-only requests need a fixed ratio.

Доступные опции:
16:9,
9:16,
21:9,
4:3,
1:1,
3:4,
adaptive

Ответ

Task accepted; returns task_id

task_id
string

Task ID for GET /hailuo/v2/query/video_generation/{task_id}

Пример:

"task_Clo9iKPCM46sRwRsMFcmJG6pGNSL1ygx"