Перейти к основному содержанию
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, и его можно скачать напрямую:

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

Неподдерживаемые параметры: управление фиксированным seed не поддерживается, переключателя генерации аудио нет. Передача seed или generate_audio приводит к ошибке HTTP 400 unsupported field. Добавьте <Audio 1>: fully_copy в текстовый prompt, чтобы задать инструкции по повторному использованию аудио; передача исходного аудио без изменений и отсутствие добавленного звука не гарантируются. См. Рекомендации по повторному использованию аудио в обзоре.

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

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

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

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

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

Запрос задачи (выполняется)

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

Запрос задачи (завершён с ошибкой)

⚠️ Примечания к ответу
  • Результат запроса обёрнут в объект task, а не находится на верхнем уровне
  • При успешном выполнении гарантированно возвращаются только id, status и content.url; поля progress, usage, model, ratio и аналогичные поля возвращаются не всегда, поэтому обрабатывайте их с учётом возможного отсутствия
  • Статусы последовательно изменяются так: queued → running → succeeded / failed; в периоды пиковой нагрузки задача может начинаться со статуса running
  • progress может содержать промежуточные значения от 0 до 1 или отсутствовать. Считайте это поле справочным; даже при значении 1 используйте status: succeeded для определения завершения
  • Версия модели, полный снимок параметров выполнения и фактическое начальное значение для воспроизводимости не возвращаются. Частичные метаданные о модели, размере и длительности не являются полным снимком параметров
  • URL видео содержится в task.content.url, и для него не требуется заголовок авторизации. Запросы HEAD к нему возвращают 403, но запросы GET работают, поэтому для проверки используйте GET
  • После получения URL как можно скорее скачайте видео и сохраните его на своей стороне
Тарификация: выходное видео и исходное референсное видео стоят $0.03 за секунду каждое. После принятия задачи с duration × \$0.03 предварительно списывается стоимость выходного видео; после завершения фактическое использование уточняется, а длительность входного видео берётся из вышестоящего usage.input_seconds. В журнале тарификации фиксируется только дополнительное списание или возврат средств: итоговая стоимость = предварительное списание + дополнительные списания − возвраты. До 9 референсных изображений и референсное аудио не тарифицируются дополнительно. Стоимость неудачных задач автоматически возвращается в полном объёме. Запросы, которые при отправке возвращают 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"