MiniMax H3 2K - Create video
Generate 2K 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.
Authorizations
Your Magnific API key. Required for authentication. Learn how to obtain an API key
Body
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.
1 - 7000"A cinematic shot of a cat walking through a neon-lit alley at night"
URL to receive a webhook notification when the video generation task completes. The webhook payload includes the task ID and status.
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.
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.
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.
9Up 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.
3Up 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.
3Video duration in seconds. Any integer from 4 to 15. H3 accepts 4-second clips, unlike H3 Max, whose floor is 5.
4 <= x <= 155
Output video aspect ratio. Available options:
adaptive: infer the ratio from the reference imagesfilm_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.
adaptive, film_horizontal_21_9, widescreen_16_9, classic_4_3, square_1_1, traditional_3_4, social_story_9_16 Whether the provider stamps a visible AI-generated-content watermark on the output video.
Response
OK - The task exists and the status is returned