MiniMax H3 (Text to Video)

minimax/h3/text-to-video

Generate native-stereo 2K video from text with MiniMax H3.

Base price
$0.65USD / run
Execution
async
Model type
video
Input fields
5

Try the model

Playground

Open playground
Input
Allowed values: 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15.
Allowed values: 21:9, 16:9, 4:3, 1:1, 3:4, 9:16.
Output resolution. 768P is generated natively; 2K is upscaled via an in-context regeneration pass. Allowed values: 768P, 2K.
Whether to add an AIGC label watermark to the generated video.
OutputReady

Your output will appear here

Complete the inputs, then click Run.

Specifications

Pricing

Base price
$0.65 / run
Billing formula
(usage.total_seconds ?? params.duration) * (params.resolution == "768P" ? 0.08 : 0.13)

Context & modalities

Input
Schema-defined
Output
video

Capabilities

Chat
Not supported
Vision
Not supported
Reasoning
Not supported
Structured output
Not supported
Function calling
Not supported
Audio input
Not supported

Access

Provider
MiniMax
Model ID
minimax/h3/text-to-video
Execution
async
API
Unified Run API
Endpoint
/v1/run

API README

MiniMax H3 Text to Video

MiniMax H3 Text to Video turns a written scene into a complete audiovisual clip without requiring a starting image. A single prompt can direct subject behavior, shot progression, camera movement, lighting, dialogue, ambience, sound effects, and music, producing video with synchronized native stereo audio.

This route supports whole-second durations from 4 to 15 seconds, six landscape, square, and portrait aspect ratios, and either 768P output or a 2K in-context regeneration pass. H3's strong instruction following and accurate rendering of text and brand elements make it especially useful when a storyboard, campaign brief, or product concept must become a polished first shot directly from text.

Highlights

  • Native stereo audiovisual generation. Creates picture and synchronized 32 kHz stereo sound together, so dialogue, ambience, effects, and music can be planned inside the prompt.
  • Up to 15 seconds at 2K. Produces 4–15 second clips at 768P or regenerates them at 2K for higher-resolution delivery.
  • Detailed cinematic direction. Follows complex instructions for action, camera language, scene transitions, lighting, timing, and sound within one text brief.
  • Commercial creative accuracy. Excels at presenting text and brand information, supporting advertising, e-commerce, product design, UI/UX, gaming, and campaign visualization.

Pricing

Final billing uses completed-task usage.total_seconds when available; otherwise it uses the requested duration. The rate is $0.08 per billable second at 768P and $0.13 per billable second at 2K.

Duration768P price2K price
4 seconds$0.32$0.52
5 seconds$0.40$0.65
6 seconds$0.48$0.78
7 seconds$0.56$0.91
8 seconds$0.64$1.04
9 seconds$0.72$1.17
10 seconds$0.80$1.30
11 seconds$0.88$1.43
12 seconds$0.96$1.56
13 seconds$1.04$1.69
14 seconds$1.12$1.82
15 seconds$1.20$1.95

When to Use

Use caseWhy this model fits
Storyboards and previsualizationTurn a written shot description into an audiovisual concept before committing to production.
Advertising and product filmsDirect product behavior, camera movement, brand presentation, typography, and sound in one brief.
Social and campaign creativeChoose landscape, square, or portrait framing and generate a complete 4–15 second asset.
Dialogue or ambience-led scenesPrompt spoken lines, environmental sound, effects, and music alongside the visual action.
High-resolution hero shotsUse the 2K regeneration option when detail and delivery resolution matter more than draft cost.

Prompt Guide

Write the prompt as a short shot plan: establish subject and location, describe actions in chronological order, specify camera framing and movement, then add lighting, visual style, dialogue, ambience, effects, and music. For multi-beat clips, use timing language such as “begin with,” “then,” and “end on.” Quote any required spoken words or on-screen text exactly.

{
  "prompt": "A premium electric motorcycle waits beneath a rain-soaked glass canopy at night. Begin with a low close-up of water running across the illuminated emblem, then track backward as the rider mounts and the dashboard wakes. The motorcycle accelerates into a neon city avenue; reflections streak across the wet road. End on a wide crane shot above the intersection. Natural tire spray, a restrained electric motor tone, distant traffic, and deep cinematic music in native stereo. On-screen text: ‘MOVE BEYOND.’",
  "duration": 10,
  "aspect_ratio": "16:9",
  "resolution": "2K",
  "aigc_watermark": false
}

Technical Specs

PropertyDetails
Model IDminimax/h3/text-to-video
Required inputsprompt, duration
Prompt length1–7,000 characters
Output durationWhole seconds from 4 through 15; default 5
Frame rate24 FPS
Resolution768P or 2K (default); 2K uses in-context regeneration
Aspect ratio21:9, 16:9 (default), 4:3, 1:1, 3:4, 9:16
AudioNative 32 kHz stereo
Watermark controlOptional aigc_watermark; default false
OutputDownloadable video URL with optional content type
ExecutionAsynchronous

Related Models

Start building

Send your first request

OpenAI-compatible endpoint with unified authentication and usage tracking.

Production API
Unified Run API endpoint
https://api.sandbase.ai/v1/run
Model ID
minimax/h3/text-to-video
# The quoted heredoc keeps Unicode and shell metacharacters unchanged.
result=$(curl --fail-with-body --silent \
  -X POST "https://api.sandbase.ai/v1/run" \
  -H "Authorization: Bearer $SANDBASE_API_KEY" \
  -H "Content-Type: application/json" \
  --data-binary @- <<'SANDBASE_JSON'
{
  "model": "minimax/h3/text-to-video",
  "prompt": "A cinematic wide shot of an astronaut walking across a red desert at sunset, wind lifting fine dust, with natural footsteps and distant ambient sound.",
  "duration": 5,
  "resolution": "2K",
  "aspect_ratio": "16:9",
  "aigc_watermark": false
}
SANDBASE_JSON
)
run_id=$(printf '%s' "$result" | jq -r .id)
for attempt in $(seq 1 120); do
  status=$(printf '%s' "$result" | jq -r .status)
  case "$status" in completed|failed|timeout) break ;; esac
  sleep 2
  result=$(curl --fail-with-body --silent \
    -H "Authorization: Bearer $SANDBASE_API_KEY" \
    "https://api.sandbase.ai/v1/run/$run_id")
done
status=$(printf '%s' "$result" | jq -r .status)
[ "$status" = completed ] || { echo "Generation ended: $status" >&2; exit 1; }
printf '%s\n' "$result"

Choose your model

Compare models

All language models
ModelContextInput / 1MOutput / 1MReleased
MiniMax———Jul 29, 2026
MiniMax———Aug 31, 2026
MiniMax———Aug 26, 2026
MiniMax———Aug 26, 2026
MiniMax———Aug 14, 2026
MiniMax———Jul 29, 2026