MiniMax
MiniMax H3 Max Turbo
minimax-h3-max-turbo/text-to-video
MiniMax's speed-optimized video model, supporting text-to-video and image-to-video (with a specified first frame and an optional last frame), generating 1- to 15-second clips at 480P to 1080P per run, ideal for quickly producing marketing short videos and storyboard previews
Try minimax-h3-max-turbo/text-to-video
Input
Showcases
View all showcasesOutput
videoPricing
minimax-h3-max-turbo/text-to-video per second
| Specifications | Unit Price |
|---|---|
| 480P | $0.025 |
| 768P | $0.040 |
| 1080P | $0.080 |
Positioning Overview
This is a text-to-video model that takes a text description and directly generates a video clip. A single generation can produce 1 to 15 seconds of footage, with three resolution tiers available: 480P, 768P, and 1080P, and support for six aspect ratios: 21:9, 16:9, 4:3, 1:1, 3:4, and 9:16. Prompts can be up to 50,000 characters long, and a random seed can be specified for reproducibility. It is well suited for scenarios that require generating dynamic footage from scratch, such as rapid batch production of short marketing videos, storyboard previsualization, and social media content creation.
Core Highlights
- Text-to-video output up to 15 seconds long — Duration can be set between 1 and 15 seconds; the actual output may be up to about 0.7 seconds longer than requested, making it suitable for standalone short video clips.
- Three resolution tiers and six aspect ratios — Choose from 480P, 768P, and 1080P as needed, with six ratios covering both landscape and portrait formats for mainstream publishing scenarios.
- Adjustable prompt expansion strength — disabled skips rewriting, balanced returns in about one second, and quality takes up to about 30 seconds to produce richer prompts.
Capability Description
Text description to video: Enter a text prompt to produce a video clip; prompts can be up to 50,000 characters, making it suitable for scenarios where no existing footage is available and visuals must be built from scratch.
Selectable duration and resolution: Each request selects a duration between 1 and 15 seconds and one resolution tier among 480P, 768P, and 1080P, balancing detail and specifications according to the purpose.
Six aspect ratios: Output can be in one of 21:9, 16:9, 4:3, 1:1, 3:4, and 9:16, adapting to different placements such as landscape playback, square feeds, and vertical short videos.
Seed and prompt expansion control: A random seed can be specified to fix the generation starting point; prompt expansion supports three modes — off, balanced, and high quality — allowing users to choose based on their generation pace.
Applicable Scenarios
- Marketing teams rapidly producing multiple short video versions — Enter text descriptions of product selling points or campaign themes to batch-generate multiple candidate clips for comparing and selecting materials before social media delivery.
- Vertical content creation by social creators — Describe visual content with a 9:16 aspect ratio and short duration to output clip materials ready to publish on short video platforms.
- Dynamic previsualization of film and TV pre-production storyboards — Generate dynamic sketches from storyboard script text, helping directors and artists confirm shot pacing and composition before formal production.
- Advertising creative concept validation — Use concise text to describe a creative concept and quickly produce footage at lower durations, used to show clients the dynamic direction rather than a final cut.
Limitations and Selection Advice
The duration range is 1 to 15 seconds, and the actual output may be up to about 0.7 seconds longer than requested; 1080P is a latent refinement from a native 768P source rather than native generation. Prompts can be up to 50,000 characters. The model only supports text-to-video and cannot use reference images, reference clips, or reference audio to maintain character and style consistency, nor does it have video editing capabilities.
What's new
View changelog →- New model MiniMax H3 Max Turbo is live: text-to-video and first/last-frame image-to-video
Frequently asked questions
View all FAQs →-
Is the 1080P of this model natively generated?
No, it is not native generation—1080P is obtained by latent-space refinement from a 768P source; the highest tier natively generated by the model is 768P. If you have strict requirements for image detail, it is recommended to evaluate based on native 768P generation, or switch to a tier that supports 2K masters.
-
Can image-to-video use reference images to lock in a character?
Currently, reference-image-to-video is not supported. image_url is used only as the starting frame, and the generated canvas will follow this image; you cannot use reference images, reference clips, or audio to lock in the character and style. For scenarios that require character consistency, you should switch to a tier that supports reference-image-to-video.
-
How should the first and last frames be set to control where the camera ends up?
Use image_url to specify the first frame and the optional end_image_url to specify the last frame; the model will interpolate motion between the two. The first frame determines the entire output canvas, so the last frame's composition and aspect ratio should closely match the first frame; otherwise, the interpolation is prone to distortion.
-
Can the generated video be longer than 15 seconds?
A single generation can be at most 15 seconds long; it cannot produce a longer clip in one go. The actual output may be about 0.7 seconds longer than the duration you specify. If you need a longer final video, generate it segment by segment and then stitch the segments together.
Create a generation task
https://api.hiapi.ai/v1/tasks Headers
AuthorizationstringRequiredAccount API key. Required on every request. Example: Bearer YOUR_HIAPI_API_KEY. Get your API key
Content-TypestringOptionalThe request body is always parsed as JSON; when sent, only application/json (optionally with charset) is accepted — any other value returns 415. Example: application/json.
Idempotency-KeystringOptionalIdempotency key, up to 255 bytes. Retries with the same key from the same account create the task only once; replays return the original taskId.
On network timeouts or client retries, the same key creates the task only once — no double charges (scope: the API key's account). Use a business-unique identifier as the key (e.g. "order-42"); replays return the original taskId, and keys expire 24 hours after the first request. See the Unified Async API overview for the full scenario matrix.
Body
modelstringRequiredCurrent fixed value: minimax-h3-max-turbo/text-to-video
routestringOptionalCurrent fixed value: default
inputobjectRequired
Business parameters for minimax-h3-max-turbo/text-to-video and route default — see the parameter table below.
seedintegerOptionalRandom seed used to control the randomness of generation results; if omitted, the system automatically selects a random seed.
promptstringRequiredminLength 1maxLength 50000The text prompt used for video generation, describing the desired visual content.
durationnumberOptionalDefault: 5min 1max 15Video duration (seconds), configurable from 1 to 15 seconds, default 5 seconds; the actual output may be about 0.7 seconds longer than the requested value. When using target_audio_url, the duration must be set to at least 2 seconds.
resolutionstringOptionalDefault: "768P"Generation resolution, options are 480P, 768P, or 1080P, default 768P; 1080P is latent-space refinement from the native 768P source and is not native generation.
480P768P1080Paspect_ratiostringOptionalDefault: "16:9"Aspect ratio of the generated video, options are 21:9, 16:9, 4:3, 1:1, 3:4, 9:16, default 16:9.
21:916:94:31:13:49:16target_audio_urlstringOptionalOptional; provide an audio URL of at least 2 seconds and no more than 15 MB to fix the audio track of the generated video.
prompt_expansion_modestringOptionalDefault: "balanced"The level of effort applied to rewriting the prompt before generation, default is balanced. disabled skips prompt expansion; balanced returns in about 1 second; quality takes up to about 30 seconds to generate a richer prompt.
disabledbalancedqualitycallbackobjectOptional
Terminal-state notification config. When omitted, no callback is delivered — poll the task yourself. See the callback note below.
Provide callback.url when creating a task and HiAPI POSTs to your service once the task reaches a terminal state — no polling needed. The callback payload mirrors the task detail structure; signature verification, delivery retries and idempotency are documented on the Unified Async API overview page.
urlstringRequiredRequired when callback is present. A POST is sent to this URL once the task reaches a terminal state; must be a valid http(s) URL.
whenstringOptionalDefault: "final"Only final is supported today — notified on both success and fail.
finalstoragestringOptionalDefault: "temp"Artifact storage tier: temp (default, retained about 7 days) or persistent (long-term, billed by size). Insufficient balance or exceeding the storage cap silently downgrades to temp; the effective tier is shown in the task detail response.
temppersistentRequest examples
# Submit an async task; returns a taskId immediately (no waiting for generation)
curl -X POST "https://api.hiapi.ai/v1/tasks" \
-H "Authorization: Bearer $HIAPI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "minimax-h3-max-turbo/text-to-video",
"input": {
"prompt": "…",
"duration": 5,
"resolution": "768P",
"aspect_ratio": "16:9",
"prompt_expansion_mode": "balanced"
}
}' const res = await fetch("https://api.hiapi.ai/v1/tasks", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.HIAPI_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "minimax-h3-max-turbo/text-to-video",
input: {
"prompt": "…",
"duration": 5,
"resolution": "768P",
"aspect_ratio": "16:9",
"prompt_expansion_mode": "balanced"
}
}),
});
const task = await res.json();
// { code: 200, message: "success", data: { taskId } } import os, requests
res = requests.post(
"https://api.hiapi.ai/v1/tasks",
headers={"Authorization": f"Bearer {os.environ['HIAPI_API_KEY']}"},
json={
"model": "minimax-h3-max-turbo/text-to-video",
"input": {
"prompt": "…",
"duration": 5,
"resolution": "768P",
"aspect_ratio": "16:9",
"prompt_expansion_mode": "balanced"
}
},
)
print(res.json()) # { code, message, data: { taskId } } 200 OK
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-01HZTQ8BX2N3GM3YFK4Z9D7VQR"
}
} 400 Bad Request
{
"code": 400,
"message": "invalid request",
"data": null,
"error_code": "INVALID_REQUEST"
} Get task detail
https://api.hiapi.ai/v1/tasks/:id Response fields
taskIdstringRequiredTask ID, always prefixed with tk-hiapi-.
modelstringRequiredResolved full model name. Tasks submitted with the route parameter return base@route (e.g. gpt-image-2/text-to-image@ext); otherwise identical to the name passed at creation.
routestringOptionalPresent only when the task was submitted with an explicit route parameter; echoes the submitted value.
statusstringRequiredTask status.
queued Queued, not started yet.
handling Being processed.
archiving Processing finished, artifacts being prepared.
success Terminal: completed, artifacts available (output returned).
fail Terminal: failed (error returned).
After submission, check status: success and fail are terminal, everything else is non-terminal. Poll every 1–3 seconds until terminal. On success, download artifacts from output[].url and transfer them before expireAt; pass storage: "persistent" at creation time when long-term retention is needed.
creatednumberRequiredTask creation time (Unix seconds).
completednumberRequiredUnix seconds when the task reached a terminal state; fixed to 0 while not terminal.
outputarrayOptional
Present only when status == success. Artifact list — always an array; a single task may return multiple types at once (e.g. video + first_frame).
Array [ object ]
Array items
urlstringRequiredArtifact URL, directly downloadable.
typestringRequiredCurrent possible values: video, image, audio, first_frame, last_frame, thumbnail; more may be added later.
expireAtnumberRequiredUnix seconds until which the artifact remains accessible; download or transfer before it expires.
errorobjectOptional
Present only when status == fail.
codestringRequiredBusiness error code.
messagestringRequiredError description.
Response examples
Success
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-01HZTQ8BX2N3GM3YFK4Z9D7VQR",
"model": "happyhorse-1-0",
"status": "success",
"created": 1777282033,
"completed": 1777282099,
"output": [
{
"url": "https://cdn.hiapi.ai/tasks/.../video.mp4",
"type": "video",
"expireAt": 1777886899
}
]
}
} Processing (non-terminal)
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-...",
"model": "happyhorse-1-0",
"status": "archiving",
"created": 1777282033,
"completed": 0
}
} Failed
{
"code": 200,
"message": "success",
"data": {
"taskId": "tk-hiapi-...",
"model": "happyhorse-1-0",
"status": "fail",
"created": 1777282033,
"completed": 1777282099,
"error": {
"code": "TASK_FAILED",
"message": "task failed"
}
}
} Articles
View all articles →Related Models
View all models →Same Type
-
FLUX 3 Max Black Forest Labs $0.121 /second -
HeyGen Avatar V HeyGen $0.150 /second -
Ray 3.2 Luma $0.214 /video -
HeyGen Avatar IV HeyGen $0.150 /second -
MiniMax H3 Max Turbo MiniMax $0.025 /second -
LTX 2.5 Fast Lightricks $0.086 /second -
Hailuo 2.3 MiniMax $0.270 /video -
Creatify Boreal Creatify $0.015 /second -
Kling 4.0 Flash Kuaishou $0.122 /second -
Veo 3.1 Fast Google $0.170 /second -
Vidu Q4 Preview Vidu $0.051 /second -
PixVerse V6 Max PixVerse $0.030 /second