> 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

> 動画生成モデルの入力モード、長さ、解像度、音声設定、モデル別のリクエスト仕様を比較します。

# Video API

安定した BeatAPI モデル ID で、非同期の動画生成タスクを作成します。

| モデル                                                               | 入力モード                           | 必須項目                                | 主な設定                                     |
| ----------------------------------------------------------------- | ------------------------------- | ----------------------------------- | ---------------------------------------- |
| [`minimax-h3`](/video-api/minimax-h3)                             | 元の ID。Fast の仕様と料金を維持            | `model`、`prompt`                    | 4–15 秒、最大 2K                             |
| [`minimax-h3-fast`](/video-api/minimax-h3-fast)                   | `minimax-h3` の明示的な Fast エイリアス   | `model`、`prompt`                    | 元の ID と同じ入力上限と料金                         |
| [`minimax-h3-normal`](/video-api/minimax-h3-normal)               | 低速、半額。テキスト、フレーム、視覚参照            | `model`、`prompt`                    | 3–15 秒、480p/768p/1080p、音声生成対応、音声入力なし     |
| [`grok-imagine-video-1.5`](/video-api/grok-imagine-video-1-5)     | テキスト、最初のフレーム、参照画像最大 7 枚         | `model`、`prompt`                    | 1–15 秒、480p/720p/1080p。1080p は画像最大 1 枚   |
| [`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、音声生成なし                  |
| [`veo-3.1`](/video-api/veo-3-1)                                   | テキスト、最初と最後のフレーム、参照画像            | `model`、`prompt`                    | モデル固定の長さと品質                              |
| [`seedance-2.5`](/video-api/seedance-2-5)                         | テキスト、最初と最後のフレーム、より多くのマルチモーダル参照  | `model`、`prompt`                    | 4–30 秒、720p、音声生成とシード                     |
| [`kling-3`](/video-api/kling-3)                                   | テキスト、最初と最後のフレーム、複数ショット、再利用可能な要素 | `model`、`prompt`                    | 3–15 秒、最大 4K、サウンド生成                      |
| [`kling-2.6-motion-control`](/video-api/kling-2-6-motion-control) | アップロードしたキャラクター画像 1 枚と動作動画 1 本   | `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。参照動画を使うと料金は 1.5 倍 |
| [`wan-3.0-prime`](/video-api/wan-3-0-prime)                       | Wan 3.0 と同じ入力、より速いキュー           | `model`、`prompt`                    | 2–30 秒、480p/720p/1080p、Wan 3.0 と同じ料金     |
| [`happyhorse-1.0`](/video-api/happyhorse-1-0)                     | 画像から動画のみ。最大 9 つの元画像のアングル        | `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、シード                      |
| [`minimax-h3-max-turbo`](/video-api/minimax-h3-max-turbo)         | H3 Max と同じ仕様、約 2.5 倍高速          | `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    | 安定した公開モデルエイリアス                            |
| `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 文字。論理的な作成操作ごとに 1 つ  |

本文は、いずれか 1 つのモデルスキーマに正確に一致する必要があります。`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` / `user_concurrency_exceeded`                                              | `Retry-After` に従うか、処理中のタスクの完了を待つ      |
| `500` | `internal_error`                                                                                 | バックオフして 1 回再試行                        |
| `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)で、全コードと再試行ルールを確認してください。各モデルページには本番のリクエスト仕様を掲載しています。