# MiniMax H3 Max (`minimax_h3_max`)

> MiniMax H3 Max. fal's post-trained H3 with stronger prompt adherence and aesthetics: text, first/last frame or multimodal references, 480p-1080p, up to 15 seconds; can sync to an audio track.

- Capability: Video (tool `video`) — Text to video, Image to video
- Price: from $0.05 per run (1 credit = $0.01). Exact price for a request: POST https://api.varg.ai/v2/estimate
- Typical time: ~2 min
- JSON Schema: https://api.varg.ai/v2/tools/video?model=minimax_h3_max (public, no key)
- Try it: https://varg.ai/dashboard/tools/playground?model=minimax_h3_max

## Call it

REST: `POST https://api.varg.ai/v2/tools/video/call` with `Authorization: Bearer $VARG_API_KEY` (create a key at https://varg.ai/dashboard/api).
It answers `202` with a job right away. Poll `GET /v2/jobs/{id}` until `status` is `completed`, then read `output.outputs[0].url` — or pass `options.webhook_url` and get the finished job POSTed to you.

```bash
curl -X POST https://api.varg.ai/v2/tools/video/call \
  -H "Authorization: Bearer $VARG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "minimax_h3_max",
  "prompt": "A white kitten chases a butterfly across a sunlit garden. Gentle camera tracking, natural movement, soft afternoon light filtering through the leaves.",
  "aspect_ratio": "16:9",
  "duration": 5
}'
```

MCP: the varg server `https://mcp.varg.ai/mcp` (OAuth sign-in, no key) runs it with `call_tool`:

```json
{
  "tool": "video",
  "input": {
    "model": "minimax_h3_max",
    "prompt": "A white kitten chases a butterfly across a sunlit garden. Gentle camera tracking, natural movement, soft afternoon light filtering through the leaves.",
    "aspect_ratio": "16:9",
    "duration": 5
  },
  "wait": true
}
```

## Inputs

| field | type | required | default | allowed | description |
|---|---|---|---|---|---|
| `model` | string | yes | — | `minimax_h3_max` or a route key below | Which model runs the job. |
| `prompt` | string | no | — | — | — |
| `files` | array of { url } | no | — | — | — |
| `aspect_ratio` | string | no | — | e.g. 16:9 \| 9:16 \| 1:1 \| 4:3 \| 3:4 \| 21:9 \| auto | — |
| `resolution` | string | no | — | 480p \| 720p \| 1080p \| 4k | Quality tier. Supported by this model: 480p, 720p, 1080p. Unsupported tiers fall back to the nearest available. |
| `audio` | boolean | no | — | — | Native audio track request. Not supported by this model — ignored if sent. |
| `duration` | integer | no | — | 1–15 | Length in seconds. Supported by this model's routes: fal: number 0.92-15. A non-numeric value such as "auto" is routed to a route whose schema accepts it; when none does, the request is rejected. |

Media inputs are URLs. Upload a local file first with `POST /v2/files` and pass the returned URL.

## Provider options

Optional, per provider, under `provider_options.<provider>`. Only the options of the provider that runs the job apply — pin a route to choose it.

### provider_options.fal

| field | type | required | default | allowed | description |
|---|---|---|---|---|---|
| `prompt` | string | no | — | — | Text prompt for video generation |
| `reference_audio_urls` | array of URL strings | no | — | — | — |
| `reference_image_urls` | array of URL strings | no | — | — | — |
| `reference_video_urls` | array of URL strings | no | — | — | — |
| `duration` | number | no | — | 0.92–15 | Video length in seconds. The output can run up to about 0.7 s longer than requested. Use at least 2 s with target_audio_url. |
| `sync_mode` | boolean | no | — | — | Return the generated video as base64 instead of a CDN URL. |
| `resolution` | string | no | — | 480P \| 768P \| 1080P | — |
| `aspect_ratio` | string | no | — | 21:9 \| 16:9 \| 4:3 \| 1:1 \| 3:4 \| 9:16 \| adaptive | — |
| `enable_safety_checker` | boolean | no | — | — | If set to true, the safety checker will be enabled. |
| `prompt_expansion_mode` | string | no | — | — | How much effort to spend rewriting the prompt before generation. 'disabled' skips prompt expansion. 'balanced' returns in about a second. 'quality' spends up to ~30s on a richer prompt. |
| `middle_image_url` | string (URL) | no | — | — | — |
| `middle_frame_time` | number | no | — | 0–15 | — |

## Routes

`"model": "minimax_h3_max"` picks a route automatically (priority order, then the inputs you send). To pin one, pass its key as `model`.

| model key | provider | modality | price from | typical time |
|---|---|---|---|---|
| `fal:minimax/h3-max/text-to-video` | fal | text-to-video | $0.05 | ~2 min |
| `fal:minimax/h3-max/image-to-video` | fal | image-to-video | $0.05 | ~2 min |
| `fal:minimax/h3-max/reference-to-video` | fal | image-to-video | $0.05 | ~2 min |

---

Catalog version 2026-11-11T12:59:09.901887+00:00. All models: https://varg.ai/models/llms.txt
