---
title: "MiniMax H3 768p - Create video"
method: POST
path: "/v1/ai/video/minimax-h3-768p"
tags: ["video"]
---

# MiniMax H3 768p - Create video

`POST /v1/ai/video/minimax-h3-768p`

## Request

- Base URL: `https://api.magnific.com`
- URL: `https://api.magnific.com/v1/ai/video/minimax-h3-768p`
- Auth: API key in header `x-magnific-api-key`

Generate 768p video with MiniMax H3. Supports text-to-video, image-to-video with an optional first and last frame, and subject reference images (up to 9, mentioned in the prompt as @Image1..@Image9). Keyframes and reference images are mutually exclusive. The response is a task: poll the GET endpoint or supply `webhook_url` to be notified; the finished task carries a time-limited MP4 URL. Reference videos are billed on top of the output duration, capped at 15 seconds.

## Request body

- MinimaxH3Request
  - `webhook_url` string, uri: URL to receive a webhook notification when the video generation task completes. The webhook payload includes the task ID and status.
  - `prompt` string, required: Text prompt describing the video to generate. Chinese and English are supported. Mention reference images as @Image1, @Image2, ... matching their 1-indexed array order. For best instruction following keep it under roughly 500 Chinese characters or 1,000 English words.
  - `image` string, byte: Optional image to use as the first frame for image-to-video generation. Accepts a publicly accessible URL or a base64-encoded image. Mutually exclusive with `reference_images`.
  - `image_end` string, byte: Optional image to use as the last frame for image-to-video generation. Requires `image`: the provider rejects a last frame with no first frame. Together they generate a transition video between the two. Mutually exclusive with `reference_images`. Accepts a publicly accessible URL or a base64-encoded image.
  - `reference_images` string[]: Up to 9 reference images for reference-to-video generation. Each item is a publicly accessible URL or a base64-encoded image. Reference them in the prompt using @Image1, @Image2, ... @Image9 (1-indexed to the array order). Each image must be JPG, JPEG, PNG, WEBP, HEIC or HEIF, no larger than 30 MB, 256 to 5760 px per side, with an aspect ratio from 0.4 to 2.5. Mutually exclusive with `image` and `image_end`.
  - `reference_videos` string[]: Up to 3 reference videos. Each item must be a publicly accessible HTTPS URL or a video upload file_id (`upl_vid_...`). Reference them in the prompt using @Video1, @Video2 or @Video3. Each video must be MP4 or MOV (H.264 or H.265), 2 to 15 seconds, 23.976 to 60 fps, no larger than 50 MB, 256 to 5760 px per side, with an aspect ratio from 0.4 to 2.5, and their combined duration must not exceed 15 seconds. Mutually exclusive with `image` and `image_end`. **These are billed**: their combined duration is added to the output duration, capped at 15 seconds.
  - `reference_audios` string[]: Up to 3 reference audios. Each item must be a publicly accessible HTTPS URL — unlike `reference_videos`, this field does not take upload file_ids. Reference them in the prompt using @Audio1, @Audio2 or @Audio3. Each audio must be WAV or MP3, 2 to 15 seconds and no larger than 15 MB, and their combined duration must not exceed 15 seconds. Audio cannot be the only reference: at least one `reference_images` or `reference_videos` entry is required alongside it. Mutually exclusive with `image` and `image_end`. Adds nothing to the price.
  - `duration` integer: Video duration in seconds. Any integer from 4 to 15. H3 accepts 4-second clips, unlike H3 Max, whose floor is 5.
  - `aspect_ratio` 'adaptive' | 'film_horizontal_21_9' | 'widescreen_16_9' | 'classic_4_3' | 'square_1_1' | 'traditional_3_4' | 'social_story_9_16': Output video aspect ratio. Available options: - `adaptive`: infer the ratio from the reference images - `film_horizontal_21_9`: Ultra-wide cinematic (21:9) - `widescreen_16_9`: Standard widescreen (16:9) - `classic_4_3`: Classic TV format (4:3) - `square_1_1`: Square format (1:1) - `traditional_3_4`: Portrait classic (3:4) - `social_story_9_16`: Vertical/social media story (9:16) **`adaptive` needs something to adapt to.** It only means anything when the request carries `reference_images`; on a text-only request there is nothing to infer from and it falls back to `widescreen_16_9`. **Note:** ignored when `image` or `image_end` is supplied — in keyframe mode the output always follows the aspect ratio of the supplied image.
  - `aigc_watermark` boolean: Whether the provider stamps a visible AI-generated-content watermark on the output video.

## Response `200`

OK - The task exists and the status is returned

- InlineObject4
  - `data` TaskDetail1, required
    - `task_id` string, uuid, required: Task identifier
    - `status` 'CREATED' | 'IN_PROGRESS' | 'COMPLETED' | 'FAILED', required: Task status
    - `generated` string[], required

## Other responses

- `400`: Bad Request - The server could not understand the request due to invalid syntax.
- `401`: Unauthorized - The client must authenticate itself to get the requested response.
- `500`: Internal Server Error - The server has encountered a situation it doesn't know how to handle.
- `503`: Service Unavailable

---

[API](https://skmtc.dev/magnific/apis/magnific-api.md) · [All operations](https://skmtc.dev/magnific/apis/magnific-api/llms.txt) · [OpenAPI document](https://skmtc.dev/magnific/apis/magnific-api/revisions/60711fb082c7?raw)
