MiniMax
MiniMax H3
minimax-h3-max/text-to-video
A unified multimodal video model that handles text, images, video, and audio within a single context, supporting text-to-video, image-to-video, reference-to-video, and instruction-based editing, and can generate synchronized audio
Try minimax-h3-max/text-to-video
Input
Showcases
View all showcasesOutput
videoPricing
minimax-h3-max/text-to-video per second
| Specifications | Unit Price |
|---|---|
| 480P | $0.072 |
| 768P | $0.115 |
| 1080P | $0.229 |
Overview
minimax-h3-max/text-to-video is MiniMax's text-driven video generation pipeline for text-to-video scenarios. Given a natural language prompt, it produces short video clips with synchronized audio tracks. It supports durations up to 15 seconds, resolutions from 480P to 1080P, and six aspect ratios, and offers prompt expansion and replaceable target audio. It is suitable for developers who need to batch-produce storyboard samples, ad creatives, or vertical short videos, and can be used in production workflows by integrating through the unified HiAPI.ai API.
Key Highlights
- Prompts can directly describe visuals, actions, and sound——the prompt carries both visual and auditory descriptions, and the output video comes with a matching audio track, eliminating the need for post-production dubbing alignment.
- Prompt expansion with three control levels——prompt_expansion_mode offers three levels: disabled, balanced, and quality, allowing you to choose between preserving the original intent and enhancing details as needed.
- Broad coverage of durations and aspect ratios——durations can be set from 0.92 to 15 seconds, and aspect ratios include six options from 21:9 to 9:16, so landscape, square, and vertical assets can be configured and generated in one go.
- Replaceable audio track——passing target_audio_url replaces the output audio track. Audio that is too long is trimmed from the beginning, and audio that is too short is padded with silence, making it easy to align with existing music.
Capabilities
Parameterized text-to-video: Control the output through combinations of prompt, duration, resolution, and aspect_ratio. Defaults are 768P, 16:9, and 5 seconds, and you can adjust to 1080P and vertical aspect ratios according to the delivery channel.
Synchronized audio output: Matching sound is generated together with the video, suitable for short video assets that need to be used directly as finished pieces, reducing audio post-production work.
Prompt expansion: When the prompt is brief, enable balanced or quality mode to let the model fill in details; switch to disabled when the original description must be reproduced strictly.
Audio track replacement and duration constraints: When target_audio_url is provided, your own audio can be substituted in, and the minimum duration is adjusted to 2 seconds when audio is passed, avoiding misalignment between overly short audio tracks and the visuals.
Reproducible random seed: The seed field supports fixing the random seed to reproduce the same result. Explicitly passing 0 is passed through normally, which is convenient for debugging and batch comparisons.
Use Cases
- Short video teams: generate samples from one-sentence shot descriptions——enter the shot copy along with duration and aspect ratio parameters to quickly obtain a clip with sound for storyboard drafts and client approval.
- Ad delivery: batch output across multiple aspect ratios——switch the same prompt to 16:9, 9:16, 1:1, and other ratios to produce vertical and square assets ready for delivery on various channels.
- Content creators: music-driven finished video generation——pass your own audio as target_audio_url to generate visuals matching the audio track length, for beat-synced short videos and music content.
- Application developers: programmatic video API integration——call in batches by seed and parameters through the unified HiAPI.ai API to embed text-to-video into content production or marketing automation workflows.
Limitations and Selection Advice
The maximum duration per generation is 15 seconds; longer narratives need to be generated in segments and then stitched together. The maximum resolution is 1080P; when higher-spec output is needed, other pipelines should be evaluated. When prompt expansion is enabled, the model adds details; if the description must be reproduced strictly, it is recommended to turn it off. When custom audio is passed, the minimum video duration is 2 seconds, and the audio track will be truncated or padded with silence, so you need to control the asset length yourself. For scenarios with only text input that require reference images or first/last frame control, choose the image-to-video pipeline from the same series.
What's new
View changelog →- New model New model: minimax-h3
Frequently asked questions
View all FAQs →-
What type of video model is MiniMax H3?
It is prompt-led and can also use endpoint frames or image, video, and audio references according to the active contract.
-
Which output settings does MiniMax H3 support?
4-15 seconds, 2K, and 21:9, 16:9, 4:3, 1:1, 3:4, 9:16, adaptive.
-
Can it generate sound or use audio references?
Optional image, video, and audio references; generated audio
-
How is MiniMax H3 billed?
Billing follows output duration and the live tier. Resolution, mode, or audio differences are reflected by the page price and task record.
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/text-to-video
routestringOptionalCurrent fixed value: default
inputobjectRequired
Business parameters for minimax-h3-max/text-to-video and route default — see the parameter table below.
seedintegerOptionalRandom seed used to control the randomness of the generated result. When omitted, the system chooses randomly; to fix the seed, an explicit 0 must also be passed in.
promptstringRequiredminLength 1maxLength 50000pattern \SText prompt describing the desired visuals, motion, camera movement, and sound content to generate.
durationnumberOptionalDefault: 5min 0.92max 15Duration of the generated video, numeric, default 5.
resolutionstringOptionalDefault: "768P"Resolution of the generated video, string, default 768P.
480P768P1080Paspect_ratiostringOptionalDefault: "16:9"Aspect ratio of the generated video, string, default 16:9.
21:916:94:31:13:49:16target_audio_urlstringOptionalminLength 1pattern ^https?://[^\s/@]+(?:[/?#][^\s]*)?$Target audio URL, used to replace the audio track of the output video; the audio must be at least 2 seconds and no more than 15 MB. Longer audio is truncated from the beginning, and shorter audio is padded with silence.
prompt_expansion_modestringOptionalDefault: "balanced"Prompt expansion mode, controls the automatic expansion strategy for the input prompt, default balanced.
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/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/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/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
-
Kling 3.0 Turbo Kuaishou $0.130 /second -
MiniMax H3 MiniMax $0.072 /second -
PixVerse V6 PixVerse $0.036 /second -
Wan 3.0 Video Alibaba $0.040 /second -
HappyHorse 1.1 Alibaba $0.160 /second -
FLUX 3 Max Black Forest Labs $0.061 /second -
FLUX 3 Video Black Forest Labs $0.090 /second -
LTX 2.5 Fast Lightricks $0.086 /second -
Wan 2.6 Flash Alibaba $0.043 /second -
Kling 3.0 Kuaishou $0.100 /second -
Hailuo 2.3 MiniMax $0.270 /video -
HeyGen Avatar V HeyGen $0.150 /second