# MiniMax H3 — /videos/generations

MiniMax H3 video generation (async): 1080P output with native audio always on; duration is any integer 5-15 seconds, six aspect ratios; include image for image-to-video. Returns a job id (HTTP 202); poll GET /v1/videos/jobs/{id} until status=succeeded, result in data[0].url. Billed per second, fully refunded on failure.

**Endpoint:** `POST https://nezhagate.com/v1/videos/generations`

## Authentication
```
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
```

## Request body
| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `model` | string | Yes | Model ID, here minimax-h3. |
| `prompt` | string | Yes | Text prompt describing the video, camera and motion. Max 2000 bytes (UTF-8; a Chinese character counts as 3). With multiple reference images you can address them as @Image1 / @Image2 in the prompt, e.g. "the character from @Image1 in the scene from @Image2"; without tokens the model decides on its own. |
| `duration` | integer | No | Length in seconds, any integer 5-15 (default 5); alias seconds. Billed per second. |
| `resolution` | string | No | Resolution: 1080P (default 1080P; each tier has its own rate, see the model page). |
| `size` | string | No | Aspect ratio: 16:9 / 9:16 / 21:9 / 4:3 / 1:1 / 3:4 (16:9 default); alias aspect_ratio. |
| `audio` | boolean | No | This model always generates native audio; the parameter is ignored (false is rejected). |
| `image` | string | No | Image-to-video: include a reference image (used as the first frame by default) — a public URL, a data: URI, or base64; omit for text-to-video. |
| `images` | array | No | Multiple reference images, up to 5 for this model. Each item may be a public URL, a data: URI, or base64. Exceeding the cap is rejected, never truncated. Alias: reference_images. |
| `image_role` | string | No | How the reference images are used: first_frame (default; a second image becomes the last frame) or reference (subject/style references — use this for multiple images). Passing reference_images defaults to reference. |
| `audio_reference` | string / array | No | Public http(s) URL(s) for reference audio, up to 3. Must accompany a reference image or video; alias audio_references (do not send both). |

## Request example
```bash
# 1) submit -> 202 {"id":"img_...","status":"queued"}
curl https://nezhagate.com/v1/videos/generations -H 'Authorization: Bearer YOUR_API_KEY' -H 'Content-Type: application/json' -d '{"model": "minimax-h3", "prompt": "a cat surfing a wave at sunset", "duration": 5, "resolution": "1080P", "size": "16:9"}'
# image-to-video: also pass  "image": "https://example.com/first-frame.png"
# 2) poll every ~5s until status=succeeded, then read data[0].url
curl https://nezhagate.com/v1/videos/jobs/img_3f9a...c2 -H 'Authorization: Bearer YOUR_API_KEY'
```

## Response
```json
{
  "id": "img_3f9a...c2",
  "object": "video.generation.job",
  "status": "queued",
  "model": "minimax-h3"
}
```