CyHUB
EnglishПолучить ключ

MiniMax H3 (Hailuo 03) API

Видео MiniMax H3 (Hailuo 03) со звуком, до 15 секунд: по описанию, по первому и последнему кадру или по референсам. Референсы: картинки, видео и аудио. Качество 768P или 2K, звук модель пишет сама.

Разработчик: MiniMaxКлюч модели в API: minimax_h3

Для нейросети:Скачать .mdВся документация .mdОткрыть как текст

Подключение в три шага

  1. Получите ключКлюч создаётся в кабинете после подтверждения почты. Один ключ открывает все модели.
  2. Узнайте ценуPOST /v1/price считает стоимость запуска заранее, деньги при этом не списываются.
  3. Запустите задачу и заберите результатPOST /v1/tasks ставит задачу, GET /v1/tasks/{id} показывает её статус и файлы.

Готовый код

Замените YOUR_API_KEY своим ключом. Код ставит задачу и ждёт результата. В cURL второй запрос повторяйте, подставив вместо TASK_ID поле id из ответа первого, пока status не станет succeeded.

cURL
curl -X POST "https://api.cyhub.ai/v1/tasks" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "minimax_h3",
  "settings": {
    "mode": "text_to_video",
    "prompt": "Кот медленно идёт по пляжу на закате, волны тихо набегают на берег",
    "resolution": "768P",
    "aspect_ratio": "16:9",
    "duration": 6
  }
}'

curl "https://api.cyhub.ai/v1/tasks/TASK_ID" \
  -H "Authorization: Bearer YOUR_API_KEY"
Python
import time

import requests

API = "https://api.cyhub.ai/v1"
HEADERS = {"Authorization": "Bearer YOUR_API_KEY"}

body = {
    "model": "minimax_h3",
    "settings": {
        "mode": "text_to_video",
        "prompt": "Кот медленно идёт по пляжу на закате, волны тихо набегают на берег",
        "resolution": "768P",
        "aspect_ratio": "16:9",
        "duration": 6,
    },
}

response = requests.post(f"{API}/tasks", json=body, headers=HEADERS, timeout=60)
response.raise_for_status()
task = response.json()
while task["status"] in ("queued", "running"):
    time.sleep(5)
    task = requests.get(f"{API}/tasks/{task['id']}", headers=HEADERS, timeout=30).json()
print(task["status"], task["result"])
Node.js
const API = "https://api.cyhub.ai/v1";
const HEADERS = { Authorization: "Bearer YOUR_API_KEY", "Content-Type": "application/json" };

const body = {
  "model": "minimax_h3",
  "settings": {
    "mode": "text_to_video",
    "prompt": "Кот медленно идёт по пляжу на закате, волны тихо набегают на берег",
    "resolution": "768P",
    "aspect_ratio": "16:9",
    "duration": 6
  }
};

async function main() {
  let response = await fetch(`${API}/tasks`, { method: "POST", headers: HEADERS, body: JSON.stringify(body) });
  if (!response.ok) throw new Error(await response.text());
  let task = await response.json();
  while (task.status === "queued" || task.status === "running") {
    await new Promise((resolve) => setTimeout(resolve, 5000));
    response = await fetch(`${API}/tasks/${task.id}`, { headers: HEADERS });
    task = await response.json();
  }
  console.log(task.status, task.result);
}

main();
Получить ключ

Цена до запуска

Цены на 15.10.2026: от 26 ₽. Точную цену своих настроек покажет POST /v1/price.

РежимЦена
По описаниюот 26 ₽
По кадрамот 26 ₽
По референсамот 26 ₽

Отправьте те же настройки в POST /v1/price: ответ покажет цену запуска, деньги при этом не списываются.

cURL
curl -X POST "https://api.cyhub.ai/v1/price" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
  "model": "minimax_h3",
  "settings": {
    "mode": "text_to_video",
    "prompt": "Кот медленно идёт по пляжу на закате, волны тихо набегают на берег",
    "resolution": "768P",
    "aspect_ratio": "16:9",
    "duration": 6
  }
}'
  • amount_minor: цена запуска в копейках (для рублей)
  • currency: валюта кошелька
  • available_minor: сколько сейчас доступно на балансе для новых задач

Режимы

У каждого режима свои параметры и примеры. Режим выбирает поле mode.

По описанию

Видео только по тексту, файлы не передаются.

Значение поля mode: text_to_video

Цена в этом режиме от 26 ₽.

Параметры

Параметры модели передаются внутри settings. Пропущенные необязательные поля берут значение по умолчанию.

promptОбязательно

Что происходит в видео, как движется камера, какой звук. Можно расписать по секундам: что происходит с 0 по 3 секунду, с 3 по 7 и так далее.

Тип: СтрокаМинимум символов: 1Максимум символов: 7000
resolutionНеобязательно

Качество видео. 2K детальнее, секунда дороже.

Тип: СтрокаДопустимые значения: 768P2KПо умолчанию: "768P"
durationНеобязательно

Длина видео в секундах, от 4 до 15. Цена за каждую секунду.

Тип: Целое числоМинимум: 4Максимум: 15По умолчанию: 6
aspect_ratioНеобязательно

Пропорции кадра: от кинематографичного 21:9 до вертикального 9:16.

Тип: СтрокаДопустимые значения: 21:916:94:31:13:49:16По умолчанию: "16:9"

Параметры, которых нет в списке, не принимаются: ответ 422 unknown_setting.

Эти настройки API задаёт сам, передавать их не нужно: files_as_is = true

Входные данные

    Пример запроса

    Отправьте этот JSON в POST /v1/tasks с ключом API. Чтобы узнать цену заранее, тот же JSON можно отправить в POST /v1/price.

    Видео по описанию

    JSON
    {
      "model": "minimax_h3",
      "settings": {
        "mode": "text_to_video",
        "prompt": "Кот медленно идёт по пляжу на закате, волны тихо набегают на берег",
        "resolution": "768P",
        "aspect_ratio": "16:9",
        "duration": 6
      }
    }

    Цена считается при приёме задачи, валюта RUB.

    Полный пример запуска

    Результат

    • Одно видео MP4 со звуком: звук модель пишет сама.
    • Генерация обычно занимает от 1 до 10 минут.
    Вид (kind)ФорматыСколькоПояснение
    videomp41

    Так выглядит готовая задача в ответе GET /v1/tasks/{id} (часть полей опущена). Подпись caption бывает у задачи или у отдельного файла и может быть пустой, имя файла задаёт модель.

    JSON
    {
      "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
      "status": "succeeded",
      "finished_at": "2026-10-01T12:03:41+00:00",
      "result": {
        "caption": "Подпись к результату: модель и настройки",
        "texts": [],
        "files_expire_at": "2026-10-08T12:03:41+00:00",
        "files_expired": false,
        "artifacts": [
          {
            "index": 0,
            "kind": "video",
            "filename": "video.mp4",
            "size": 12582912,
            "caption": "",
            "download_path": "/v1/tasks/7c9e6679-7425-40de-944b-e07fc1f90ae7/artifacts/0"
          }
        ]
      }
    }
    Как читать результат и скачивать файлы

    По кадрам

    Видео начинается с первого кадра. Если передан и последний кадр, видео им заканчивается. Пропорции видео берутся у кадров.

    Значение поля mode: image_to_video

    Цена в этом режиме от 26 ₽.

    Параметры

    Параметры модели передаются внутри settings. Пропущенные необязательные поля берут значение по умолчанию.

    promptОбязательно

    Что происходит в видео, как движется камера, какой звук. Можно расписать по секундам: что происходит с 0 по 3 секунду, с 3 по 7 и так далее.

    Тип: СтрокаМинимум символов: 1Максимум символов: 7000
    resolutionНеобязательно

    Качество видео. 2K детальнее, секунда дороже.

    Тип: СтрокаДопустимые значения: 768P2KПо умолчанию: "768P"
    durationНеобязательно

    Длина видео в секундах, от 4 до 15. Цена за каждую секунду.

    Тип: Целое числоМинимум: 4Максимум: 15По умолчанию: 6
    image_urlsОбязательно

    Одна ссылка: первый кадр. Две ссылки: первый и последний кадры.

    Тип: Список (Строка, uri)Максимум элементов: 2

    Параметры, которых нет в списке, не принимаются: ответ 422 unknown_setting.

    Эти настройки API задаёт сам, передавать их не нужно: files_as_is = true

    Входные данные

    • Картинки передаются ссылками на JPEG, PNG или WebP до 30 МБ каждая, стороны от 256 до 5760 пикселей, пропорции от 2:5 до 5:2.
    ПолеЧто принимаетФорматыФайловРазмер файла до
    image_urlsКартинкиjpeg, jpg, png, webp230 МБ
    Как передать файлы

    Пример запроса

    Отправьте этот JSON в POST /v1/tasks с ключом API. Чтобы узнать цену заранее, тот же JSON можно отправить в POST /v1/price.

    Оживить кадр

    JSON
    {
      "model": "minimax_h3",
      "settings": {
        "mode": "image_to_video",
        "prompt": "Героиня поворачивается и улыбается, камера медленно наезжает",
        "image_urls": [
          "https://example.com/first-frame.jpg"
        ],
        "duration": 6
      }
    }

    От первого кадра к последнему

    JSON
    {
      "model": "minimax_h3",
      "settings": {
        "mode": "image_to_video",
        "prompt": "Бутон медленно раскрывается в цветок",
        "image_urls": [
          "https://example.com/bud.jpg",
          "https://example.com/flower.jpg"
        ],
        "resolution": "2K",
        "duration": 5
      }
    }

    Цена считается при приёме задачи, валюта RUB.

    Полный пример запуска

    Результат

    • Одно видео MP4 со звуком: звук модель пишет сама.
    • Генерация обычно занимает от 1 до 10 минут.
    Вид (kind)ФорматыСколькоПояснение
    videomp41

    Так выглядит готовая задача в ответе GET /v1/tasks/{id} (часть полей опущена). Подпись caption бывает у задачи или у отдельного файла и может быть пустой, имя файла задаёт модель.

    JSON
    {
      "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
      "status": "succeeded",
      "finished_at": "2026-10-01T12:03:41+00:00",
      "result": {
        "caption": "Подпись к результату: модель и настройки",
        "texts": [],
        "files_expire_at": "2026-10-08T12:03:41+00:00",
        "files_expired": false,
        "artifacts": [
          {
            "index": 0,
            "kind": "video",
            "filename": "video.mp4",
            "size": 12582912,
            "caption": "",
            "download_path": "/v1/tasks/7c9e6679-7425-40de-944b-e07fc1f90ae7/artifacts/0"
          }
        ]
      }
    }
    Как читать результат и скачивать файлы

    По референсам

    Модель переносит в новое видео персонажей и предметы с картинок, движение и монтаж из видео, голос и ритм из аудио. Нужна хотя бы одна картинка или одно видео.

    Значение поля mode: reference_to_video

    Цена в этом режиме от 26 ₽.

    Параметры

    Параметры модели передаются внутри settings. Пропущенные необязательные поля берут значение по умолчанию.

    promptОбязательно

    Что происходит в видео, как движется камера, какой звук. Можно расписать по секундам: что происходит с 0 по 3 секунду, с 3 по 7 и так далее.

    Тип: СтрокаМинимум символов: 1Максимум символов: 7000
    resolutionНеобязательно

    Качество видео. 2K детальнее, секунда дороже.

    Тип: СтрокаДопустимые значения: 768P2KПо умолчанию: "768P"
    durationНеобязательно

    Длина видео в секундах, от 4 до 15. Цена за каждую секунду.

    Тип: Целое числоМинимум: 4Максимум: 15По умолчанию: 6
    aspect_ratioНеобязательно

    Пропорции кадра. adaptive: модель подбирает их по приложенным файлам.

    Тип: СтрокаДопустимые значения: adaptive21:916:94:31:13:49:16По умолчанию: "16:9"
    image_urlsНеобязательно

    До 9 ссылок на картинки с персонажами, предметами или стилем. Первые 5 бесплатно, каждая следующая добавляет к цене.

    Тип: Список (Строка, uri)Максимум элементов: 9
    video_urlsНеобязательно

    До 3 ссылок на видео, из которых модель берёт движение и монтаж. Секунды видео оплачиваются как секунды результата.

    Тип: Список (Строка, uri)Максимум элементов: 3
    audio_urlsНеобязательно

    До 3 ссылок на аудио: голос или музыка, под которые модель подгоняет речь и ритм. Бесплатно, только вместе с картинкой или видео.

    Тип: Список (Строка, uri)Максимум элементов: 3

    Параметры, которых нет в списке, не принимаются: ответ 422 unknown_setting.

    Эти настройки API задаёт сам, передавать их не нужно: files_as_is = true

    Входные данные

    • Картинки передаются ссылками на JPEG, PNG или WebP до 30 МБ каждая, стороны от 256 до 5760 пикселей, пропорции от 2:5 до 5:2.
    • Видео передаются ссылками на MP4 или MOV (H.264 или H.265) до 50 МБ каждое: каждое от 2 до 15 секунд, все вместе не длиннее 15 секунд, стороны от 256 до 5760 пикселей, пропорции от 2:5 до 5:2, от 23,976 до 60 кадров в секунду.
    • Аудио передаются ссылками на MP3 или WAV до 15 МБ каждое: каждое от 2 до 15 секунд, все вместе не длиннее 15 секунд.
    • Видео и аудио уходят в модель целиком. Цена видео считается по длине самих файлов: их секунды прибавляются к секундам результата.
    • Длины видео и аудио сверяются до отправки в модель: если они не подходят, задача завершается отказом с причиной и ничего не стоит.
    ПолеЧто принимаетФорматыФайловРазмер файла до
    image_urlsКартинкиjpeg, jpg, png, webp930 МБ
    video_urlsВидеоmp4, mov350 МБ
    audio_urlsАудиоmp3, wav315 МБ
    Как передать файлы

    Пример запроса

    Отправьте этот JSON в POST /v1/tasks с ключом API. Чтобы узнать цену заранее, тот же JSON можно отправить в POST /v1/price.

    Персонаж с картинки

    JSON
    {
      "model": "minimax_h3",
      "settings": {
        "mode": "reference_to_video",
        "prompt": "Девушка с картинки идёт по ночному городу под дождём",
        "image_urls": [
          "https://example.com/girl.png"
        ],
        "aspect_ratio": "9:16",
        "duration": 6
      }
    }

    Движение из видео, музыка из аудио

    JSON
    {
      "model": "minimax_h3",
      "settings": {
        "mode": "reference_to_video",
        "prompt": "Девушка с картинки танцует как в видео под музыку из аудио",
        "image_urls": [
          "https://example.com/girl.png"
        ],
        "video_urls": [
          "https://example.com/dance.mp4"
        ],
        "audio_urls": [
          "https://example.com/music.mp3"
        ],
        "aspect_ratio": "adaptive",
        "duration": 8
      }
    }

    Цена считается при приёме задачи, валюта RUB.

    Полный пример запуска

    Результат

    • Одно видео MP4 со звуком: звук модель пишет сама.
    • Генерация обычно занимает от 1 до 10 минут.
    Вид (kind)ФорматыСколькоПояснение
    videomp41

    Так выглядит готовая задача в ответе GET /v1/tasks/{id} (часть полей опущена). Подпись caption бывает у задачи или у отдельного файла и может быть пустой, имя файла задаёт модель.

    JSON
    {
      "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
      "status": "succeeded",
      "finished_at": "2026-10-01T12:03:41+00:00",
      "result": {
        "caption": "Подпись к результату: модель и настройки",
        "texts": [],
        "files_expire_at": "2026-10-08T12:03:41+00:00",
        "files_expired": false,
        "artifacts": [
          {
            "index": 0,
            "kind": "video",
            "filename": "video.mp4",
            "size": 12582912,
            "caption": "",
            "download_path": "/v1/tasks/7c9e6679-7425-40de-944b-e07fc1f90ae7/artifacts/0"
          }
        ]
      }
    }
    Как читать результат и скачивать файлы

    Смотрите также

    Попробуйте MiniMax H3 (Hailuo 03) через API

    Один ключ открывает все модели CyHUB. Оплата в рублях, цену видно до запуска.

    Получить ключ API