> ## Documentation Index
> Fetch the complete documentation index at: https://docs.toapis.com/llms.txt
> Use this file to discover all available pages before exploring further.

# MiniMax-Hailuo-2.3 비디오 생성

> Generate videos using MiniMax Hailuo 2.3 series models, supporting text-to-video and image-to-video with optional Fast mode

> [!NOTE]
>
> **중국 본토 사용자 안내:** 중국 본토 사용자는 `https://toapis.cn` 를 API 엔드포인트(Base URL)로 사용해 주세요. 본 문서의 예시에서 `https://toapis.com` 을 `https://toapis.cn` 로 바꿔 주세요.

* Async task API, returns task ID upon submission
* Supported models: `MiniMax-Hailuo-2.3`, `MiniMax-Hailuo-2.3-Fast`
* `MiniMax-Hailuo-2.3`: Supports text-to-video and image-to-video, best quality
* `MiniMax-Hailuo-2.3-Fast`: **Image-to-video only** (first frame image required), faster generation

> [!WARNING]
>
> Please provide publicly accessible image URLs. Do not pass base64 image data directly in `image_urls`; upload local images first using the [Upload 이미지 API](https://docs.toapis.com/docs/ko/api-reference/uploads/images.md) to get URLs.

## 인증

**Authorization** `string` *required*

All endpoints require Bearer Token authentication.

```
Authorization: Bearer YOUR_API_KEY
```

## 요청 파라미터

**model** `string` *required*

모델 name.

Options:

* `MiniMax-Hailuo-2.3` - Supports text-to-video and image-to-video
* `MiniMax-Hailuo-2.3-Fast` - Image-to-video only (`image_urls` required)

**prompt** `string` *required*

Video content description, max **2000 characters**.

Supports 15 camera directives (e.g., `[Push in]`, `[Pull out]`, `[Pan left, Pedestal up]`), see the Camera Directives table below.

Example: `"A cat running in a garden [Push in], then stops and looks at the camera [Static shot]"`

**duration** `integer` (default: 6)

Video duration in seconds.

Options: `6` or `10`

> [!WARNING]
>
> When using `1080P` resolution, only `6` seconds is supported.

**resolution** `string` (default: 768P)

Video resolution.

Options:

* `768P` - HD (default)
* `1080P` - Full HD (6-second duration only)

**image\_urls** `string[]`

First frame image URL array.

* Not provided: text-to-video (`MiniMax-Hailuo-2.3-Fast` does not support this, must provide)
* 1 image: image-to-video, image used as video starting frame

Image requirements:

* Format: JPG, JPEG, PNG, WebP
* Size: under 20MB
* Dimensions: short side > 300px, aspect ratio between 2:5 and 5:2

Example: `["https://example.com/first-frame.jpg"]`

**metadata** `object`

Extended parameters.

**Show metadata fields**

**prompt\_optimizer** `boolean` (default: true)

Auto-optimize prompt. Set to `false` for more precise control.

**fast\_pretreatment** `boolean` (default: false)

Shorten prompt optimization time. Speeds up processing when enabled.

**aigc\_watermark** `boolean` (default: false)

Whether to add watermark to the generated video.

**callback\_url** `string`

ToAPIs 최종 Task Webhook입니다. Token URL과 secret을 먼저 설정하세요. [Webhook](https://docs.toapis.com/docs/ko/api-reference/webhooks/task-webhooks.md).

## 모델 Comparison

| 모델 | Text-to-Video | Image-to-Video | Resolution | Duration |
| - | :-: | :-: | - | - |
| `MiniMax-Hailuo-2.3` | ✅ | ✅ | `768P` / `1080P` | 6s / 10s |
| `MiniMax-Hailuo-2.3-Fast` | ❌ | ✅ (first frame required) | `768P` / `1080P` | 6s / 10s |

## Resolution and Duration Combinations

| Resolution | Supported Durations | Note |
| - | - | - |
| 768P | 6s, 10s | Default resolution |
| 1080P | 6s | 10s not supported |

## Camera Directives

Use `[directive]` syntax in `prompt` to control camera movement:

| Category | Directives |
| - | - |
| Pan | `[Pan left]` `[Pan right]` |
| Tilt | `[Tilt up]` `[Tilt down]` |
| Push/Pull | `[Push in]` `[Pull out]` |
| Pedestal | `[Pedestal up]` `[Pedestal down]` |
| Truck | `[Truck left]` `[Truck right]` |
| Zoom | `[Zoom in]` `[Zoom out]` |
| Other | `[Shake]` `[Tracking shot]` `[Static shot]` |

**Usage rules:**

* Combine up to 3 directives in one bracket for simultaneous movement, e.g., `[Pan left, Pedestal up]`
* Sequence directives in the prompt for ordered camera moves, e.g., `"...[Push in], then...[Pull out]"`

## 응답

**id** `string`

Task ID for querying task status.

**object** `string`

Object type, always `generation.task`.

**model** `string`

모델 name used for this request.

**status** `string`

Task status: `queued`, `in_progress`, `completed`, or `failed`.

**created\_at** `integer`

Task creation timestamp.

## Examples

### Text-to-Video

```json theme={null}
{
  "model": "MiniMax-Hailuo-2.3",
  "prompt": "A cat running in a garden, camera slowly pushing in, cinematic feel",
  "duration": 6,
  "resolution": "1080P"
}
```

### Image-to-Video

```json theme={null}
{
  "model": "MiniMax-Hailuo-2.3",
  "prompt": "The person in the image slowly turns around and smiles",
  "image_urls": ["https://example.com/portrait.jpg"],
  "duration": 6,
  "resolution": "1080P"
}
```

### Image-to-Video (Fast Mode)

```json theme={null}
{
  "model": "MiniMax-Hailuo-2.3-Fast",
  "prompt": "Person starts walking from a still position",
  "image_urls": ["https://example.com/person.jpg"],
  "duration": 6,
  "resolution": "768P"
}
```

### Camera Control

```json theme={null}
{
  "model": "MiniMax-Hailuo-2.3",
  "prompt": "A man picks up a book [Pedestal up], then reads [Static shot]",
  "duration": 6,
  "resolution": "768P"
}
```

### 10-Second Long Video

```json theme={null}
{
  "model": "MiniMax-Hailuo-2.3",
  "prompt": "Waves crashing on the beach at sunset, golden light shimmering on the water",
  "duration": 10,
  "resolution": "768P",
  "metadata": {
    "prompt_optimizer": true,
    "fast_pretreatment": true
  }
}
```

> [!NOTE]
>
> Video generation is an async task. Use [Get Video Task 상태](https://docs.toapis.com/docs/ko/api-reference/tasks/video-status.md) to query progress and results.

```bash cURL theme={null}
curl --request POST \
  --url https://toapis.com/v1/videos/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "MiniMax-Hailuo-2.3",
    "prompt": "A cat running in a garden, camera slowly pushing in, cinematic feel",
    "duration": 6,
    "resolution": "1080P"
  }'
```

```python Python theme={null}
import requests

response = requests.post(
    "https://toapis.com/v1/videos/generations",
    headers={
        "Authorization": "Bearer your-ToAPIs-key",
        "Content-Type": "application/json",
    },
    json={
        "model": "MiniMax-Hailuo-2.3",
        "prompt": "A cat running in a garden, camera slowly pushing in, cinematic feel",
        "duration": 6,
        "resolution": "1080P",
    },
)

print(response.json())
```

```javascript JavaScript theme={null}
const response = await fetch("https://toapis.com/v1/videos/generations", {
  method: "POST",
  headers: {
    Authorization: "Bearer your-ToAPIs-key",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    model: "MiniMax-Hailuo-2.3",
    prompt: "A cat running in a garden, camera slowly pushing in, cinematic feel",
    duration: 6,
    resolution: "1080P"
  })
});

console.log(await response.json());
```

```json 200 theme={null}
{
  "id": "vid_01J9HA7JPQ9A0Z6JZ3V8M9W6PZ",
  "object": "generation.task",
  "model": "MiniMax-Hailuo-2.3",
  "status": "queued",
  "progress": 0,
  "created_at": 1768380224,
  "metadata": {}
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.