# MiniMax H3 API (MiniMax)

> MiniMax H3 (Hailuo 3) generates expressive 5–15s videos with strong physics and character motion at 768P or 2K, from text, images or references.

Page: https://cheapergen.com/models/minimax/h3 · API reference: https://cheapergen.com/models/minimax/h3/api

## Pricing
Official list price source: MiniMax international official price ($0.08 / $0.13 per second; reference-video seconds billed at the output rate, reference audio free). Prices verified 2026-10-14.

| Tier | Official | Cheaper Gen. | Save |
|---|---|---|---|
| 768P | $0.0800/s | $0.0629/s | 21% |
| 2K | $0.1300/s | $0.1006/s | 23% |

## Specs
- Resolutions: 768P · 2K
- Duration: 5–15 s
- Aspect ratios: 16:9 · 9:16 · 1:1 · 4:3 · 3:4 · 21:9
- Inputs: Text, first/last frame, reference images, videos and audio

## Endpoints

### Text to Video — `POST https://cheapergen.com/api/v1/run/minimax/h3/text-to-video`

| Param | Type | Required | Description |
|---|---|---|---|
| prompt | string | yes | Describe the shot: subject, action, camera movement, lighting and style. |
| aspect_ratio | string (enum) (16:9, 9:16, 1:1, 4:3, 3:4, 21:9) | no | Output frame shape. |
| resolution | string (enum) (768P, 2K) | no | Output resolution. Higher resolutions cost more per second. |
| duration | integer (5–15) | no | Length of the generated clip in seconds (5–15s). You pay per second. |
| seed | integer | no | Use the same seed and settings to reproduce a result. Leave empty for random. |

```bash
curl -X POST https://cheapergen.com/api/v1/run/minimax/h3/text-to-video \
  -H "Authorization: Bearer $CHEAPERGEN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "prompt": "A hummingbird hovers at a red flower, wings frozen in a sliver of light, nature documentary",
  "aspect_ratio": "16:9",
  "resolution": "768P",
  "duration": 6
}'
```

### Image to Video — `POST https://cheapergen.com/api/v1/run/minimax/h3/image-to-video`

| Param | Type | Required | Description |
|---|---|---|---|
| prompt | string | yes | Describe the shot: subject, action, camera movement, lighting and style. |
| image_url | string (URL) | yes | Image used as the opening frame. JPG/PNG/WebP, URL or upload. |
| end_image_url | string (URL) | no | Optional closing frame — the model animates between the two. |
| resolution | string (enum) (768P, 2K) | no | Output resolution. Higher resolutions cost more per second. |
| duration | integer (5–15) | no | Length of the generated clip in seconds (5–15s). You pay per second. |
| seed | integer | no | Use the same seed and settings to reproduce a result. Leave empty for random. |

```bash
curl -X POST https://cheapergen.com/api/v1/run/minimax/h3/image-to-video \
  -H "Authorization: Bearer $CHEAPERGEN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "prompt": "The poster comes alive: confetti falls and the headline glows",
  "image_url": "https://cdn.cheapergen.ai/samples/portrait.jpg",
  "resolution": "768P",
  "duration": 6
}'
```

### Reference to Video — `POST https://cheapergen.com/api/v1/run/minimax/h3/reference-to-video`

| Param | Type | Required | Description |
|---|---|---|---|
| prompt | string | yes | Describe the shot: subject, action, camera movement, lighting and style. |
| reference_image_urls | string[] (URLs) | no | Up to 5 images for characters, products, style or scene. Refer to them in the prompt as @Image1, @Image2… |
| reference_video_urls | string[] (video URLs) | no | Up to 3 MP4/MOV clips for motion, camera moves or effects (2–15 s each, 15 s in total, ≤ 50 MB each). Refer to them as @Video1, @Video2… Reference-video seconds are billed like output seconds. |
| reference_audio_urls | string[] (audio URLs) | no | Up to 3 MP3/WAV clips for voice, music or sound (2–15 s each, 15 s in total, ≤ 15 MB each). Refer to them as @Audio1, @Audio2… Needs at least one reference image or video. |
| aspect_ratio | string (enum) (16:9, 9:16, 1:1, 4:3, 3:4, 21:9) | no | Output frame shape. |
| resolution | string (enum) (768P, 2K) | no | Output resolution. Higher resolutions cost more per second. |
| duration | integer (5–15) | no | Length of the generated clip in seconds (5–15s). You pay per second. |
| seed | integer | no | Use the same seed and settings to reproduce a result. Leave empty for random. |

```bash
curl -X POST https://cheapergen.com/api/v1/run/minimax/h3/reference-to-video \
  -H "Authorization: Bearer $CHEAPERGEN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "prompt": "The mascot from @Image1 dances in front of the storefront from @Image2, following the moves in @Video1",
  "reference_image_urls": [
    "https://cdn.cheapergen.ai/samples/reference-1.jpg",
    "https://cdn.cheapergen.ai/samples/reference-2.jpg"
  ],
  "reference_video_urls": [
    "https://cdn.cheapergen.ai/samples/reference-1.mp4"
  ],
  "aspect_ratio": "16:9",
  "resolution": "768P",
  "duration": 6
}'
```

## Getting the result
Jobs are async. Poll `GET https://cheapergen.com/api/v1/generations/{id}` until status is succeeded/failed/canceled, or pass `webhook_url`. Failed generations are refunded automatically.

## FAQ
**How is MiniMax H3 priced?**
MiniMax H3 is billed per second of output video at the selected resolution. In reference-to-video, reference-video seconds are billed at the same rate. Failed generations are never charged.

**Does it support first and last frames?**
Yes — image-to-video accepts a first frame and an optional last frame, and the model animates between them.

**Can I use the output commercially?**
Yes, subject to MiniMax's usage policy and our Terms of Service.

MiniMax H3 is developed by MiniMax. Cheaper Gen. provides API access and does not own the model.