> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.beatapi.io/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.beatapi.io/_mcp/server.

# BeatAPI Video API

> Сравните модели генерации видео BeatAPI, входные данные, длительность, разрешения, настройки звука и контракты запросов.

# Video API

Создайте одну асинхронную задачу генерации видео, указав постоянный ID модели BeatAPI.

| Модель                                                            | Входные данные                                                                       | Обязательные поля                     | Основные настройки                                               |
| ----------------------------------------------------------------- | ------------------------------------------------------------------------------------ | ------------------------------------- | ---------------------------------------------------------------- |
| [`minimax-h3`](/video-api/minimax-h3)                             | Исходный ID с контрактом и ценами Fast                                               | `model`, `prompt`                     | 4–15 с, до 2K                                                    |
| [`minimax-h3-fast`](/video-api/minimax-h3-fast)                   | Явный псевдоним Fast для `minimax-h3`                                                | `model`, `prompt`                     | Те же входные ограничения и цены, что у исходного ID             |
| [`minimax-h3-normal`](/video-api/minimax-h3-normal)               | Более медленная модель за половину цены: текст, кадры или визуальные референсы       | `model`, `prompt`                     | 5–15 с; 480p/768p/1080p; генерация звука, без входного аудио     |
| [`grok-imagine-video-1.5`](/video-api/grok-imagine-video-1-5)     | Текст, первый кадр, до семи изображений-референсов                                   | `model`, `prompt`                     | 1–15 с, 480p/720p/1080p; в 1080p не больше одного изображения    |
| [`seedance-2`](/video-api/seedance-2)                             | Текст, первый/последний кадры, мультимодальные референсы                             | `model`, `prompt`                     | 4–15 с, до 4K, генерация звука                                   |
| [`seedance-2-fast`](/video-api/seedance-2-fast)                   | Текст, первый/последний кадры, мультимодальные референсы                             | `model`, `prompt`                     | 4–15 с, 480p/720p, генерация звука                               |
| [`seedance-2-mini`](/video-api/seedance-2-mini)                   | Текст, первый/последний кадры, мультимодальные референсы                             | `model`, `prompt`                     | 4–15 с, 480p/720p, поля `generate_audio` нет                     |
| [`veo-3.1`](/video-api/veo-3-1)                                   | Текст, первый/последний кадры, изображения-референсы                                 | `model`, `prompt`                     | Поля `duration` нет; `quality`: Quality/Fast/Lite; 720p/1080p/4K |
| [`seedance-2.5`](/video-api/seedance-2-5)                         | Текст, первый/последний кадры, больше мультимодальных референсов                     | `model`, `prompt`                     | 4–30 с, 480p/720p/1080p, генерация звука и seed                  |
| [`kling-v3`](/video-api/kling-v3)                                 | Текст, первый/последний кадры, несколько сцен, повторно используемые элементы        | `model`, `prompt`                     | 3–15 с, `std` (720p) или `pro` (1080p), необязательный звук      |
| [`kling-v4`](/video-api/kling-v4)                                 | Текст, кадры по времени, изображения, видео и голоса-референсы, именованные элементы | `model`, `prompt`                     | 3–30 с, 720p/1080p, звук генерируется всегда                     |
| [`kling-2.6-motion-control`](/video-api/kling-2-6-motion-control) | Одно загруженное изображение персонажа и одно видео движения                         | `model`, `images`, `reference_videos` | Видео движения 3–30 с, 720p/1080p, посекундная оплата            |
| [`kling-3-motion-control`](/video-api/kling-3-motion-control)     | Перенос движения с настройками ориентации и фона                                     | `model`, `images`, `reference_videos` | Видео движения 3–30 с, 720p/1080p, посекундная оплата            |
| [`wan-3.0`](/video-api/wan-3-0)                                   | Текст, первый кадр, видео и аудио-референсы                                          | `model`, `prompt`                     | 2–30 с, 480p/720p/1080p                                          |
| [`wan-3.0-prime`](/video-api/wan-3-0-prime)                       | Те же входные данные, что у Wan 3.0, но отдельный ID модели и собственная цена       | `model`, `prompt`                     | 4–30 с, 480p/720p/1080p                                          |
| [`happyhorse-1.0`](/video-api/happyhorse-1-0)                     | Только изображение в видео, до девяти исходных ракурсов                              | `model`, `prompt`, `images`           | 3–15 с, 720p/1080p                                               |
| [`happyhorse-1.1`](/video-api/happyhorse-1-1)                     | Контракт как у 1.0, ниже цена за секунду                                             | `model`, `prompt`, `images`           | 3–15 с, 720p/1080p                                               |
| [`minimax-h3-max`](/video-api/minimax-h3-max)                     | Текст, первый кадр, первый и последний кадры                                         | `model`, `prompt`                     | От 5 с, 480P/768P, seed                                          |
| [`minimax-h3-max-turbo`](/video-api/minimax-h3-max-turbo)         | Контракт как у H3 Max                                                                | `model`, `prompt`                     | От 5 с, 480P/768P, вдвое ниже цена за секунду                    |

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

## Список доступных моделей

`GET /v1/media/models`

| Параметр     | Где передаётся | Тип    | Обязателен | Допустимые значения |
| ------------ | -------------- | ------ | ---------- | ------------------- |
| `media_type` | Строка запроса | string | Нет        | `image`, `video`    |

Этот общедоступный метод не требует авторизации.

```bash
curl "https://api.beatapi.io/v1/media/models?media_type=video"
```

```json
{
  "data": {
    "object": "list",
    "data": [
      {
        "id": "minimax-h3",
        "object": "generation_model",
        "name": "MiniMax H3",
        "media_type": "video",
        "input_modes": ["text", "frames", "reference"]
      }
    ]
  }
}
```

| Поле          | Тип       | Значение                                        |
| ------------- | --------- | ----------------------------------------------- |
| `id`          | string    | Постоянный публичный ID модели                  |
| `object`      | string    | `generation_model`                              |
| `name`        | string    | Отображаемое название                           |
| `media_type`  | string    | `image` или `video`                             |
| `input_modes` | string\[] | Любые из `text`, `image`, `frames`, `reference` |

Внутренняя маршрутизация к поставщикам не входит в публичный контракт.

## Общие правила создания задачи

`POST /v1/videos/tasks`

| Заголовок         | Тип    | Обязателен         | Правила                                                         |
| ----------------- | ------ | ------------------ | --------------------------------------------------------------- |
| `Authorization`   | string | Да                 | `Bearer <BEATAPI_API_KEY>`                                      |
| `Content-Type`    | string | Да                 | `application/json`                                              |
| `Idempotency-Key` | string | Нет, рекомендуется | До 255 символов; один ключ на одну логическую операцию создания |

Тело запроса должно соответствовать ровно одной схеме модели. Поле `model` определяет схему; неизвестные поля отклоняются.

```bash
curl https://api.beatapi.io/v1/videos/tasks \
  -X POST \
  -H "Authorization: Bearer $BEATAPI_API_KEY" \
  -H "Idempotency-Key: video-seedance-2-5-001" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2.5",
    "prompt": "A cinematic tracking shot through a rain-lit night market.",
    "duration": 5,
    "aspect_ratio": "16:9",
    "resolution": "720p"
  }'
```

Корректный запрос возвращает `201 Created` с `data.id`, `task_kind="video"`, выбранной `model`, `status="queued"`, данными об использовании и `request_id`. Проверяйте `GET /v1/tasks/{task_id}` каждые 5–10 секунд до `succeeded` или `failed`. Готовое видео доступно в `data.output.media[]` и `data.output.r2_url`.

Точный повтор с тем же ключом идемпотентности возвращает уже принятую задачу. Тот же ключ с другим телом запроса даёт `409 idempotency_conflict`.

## Общие ошибки

| HTTP  | Типичный код                                                                                     | Что делать                                                                                    |
| ----- | ------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------- |
| `400` | `bad_request`                                                                                    | Исправьте поля, значения, сочетания параметров, количество файлов или URL медиа               |
| `400` | `content_policy_violation`                                                                       | Измените промпт или входные данные; не отправляйте повтор без изменений                       |
| `401` | `missing_api_key` / `invalid_api_key`                                                            | Передайте Bearer-ключ либо замените неверный, просроченный, отключённый или исчерпавший лимит |
| `402` | `insufficient_credits`                                                                           | Пополните баланс перед созданием новой задачи                                                 |
| `403` | `forbidden`                                                                                      | Ключу или аккаунту запрещена операция, например модель недоступна за счёт бонуса              |
| `409` | `idempotency_conflict`                                                                           | Повторно используйте ключ только с тем же телом запроса                                       |
| `429` | `rate_limit_exceeded`                                                                            | Подождите время из `Retry-After`                                                              |
| `500` | `internal_error`                                                                                 | Повторите один раз после задержки                                                             |
| `503` | `processing_unavailable` / `processing_timeout` / `processing_failed` / `result_transfer_failed` | Повторите позже с увеличивающейся задержкой; средства не списаны                              |

Ответ с ошибкой содержит `error.code`, английское `error.message`, `error.retryable`, `error.request_id`, а при `429` — `error.retry_after_seconds`. Если уже принятая задача завершилась ошибкой, запрос статуса всё равно возвращает `200`: проверьте `data.error_code`. Все коды и правила повторов описаны в разделе [ошибок](/errors). Страницы отдельных моделей ниже содержат полные контракты для рабочей среды.