MINIMAX H3 · VIDEO API

MiniMax H3 API

Create 4–15 second videos at 768p or 2K. Start with text, frames or multimodal references, with synchronized video and sound.

MiniMax H316:9
One key: 4 video models + text & images
Pay as you go, no subscription
Failed generations are not charged
Stripe + USDT
First top-up: pay $3.00, get $5.00 balance

PRICING

MiniMax H3 API cost: 768p & 2K

Compare per-second prices at 768p and 2K.

768p

$0.050 / s

Audio included

2K

$0.079 / s

Audio included

5 reference images included · $0.020 per additional image

Billed on actual output seconds; video references use the selected resolution rate.

minimax-h3 · text / image / reference to video

Price snapshot · 2026-11-09

Estimate your MiniMax H3 API cost

Choose model, resolution, duration and clips.

Resolution

Native audio included

Estimated monthly cost$25.00
Per clip
$0.250
Output seconds / month
500
Get API key →

Output-only estimate; reference inputs may add fees

Top-up tiers & offers

MiniMax H3 · 768p · Estimate at the selected settings

Balance creditYou payDiscountVideo seconds · estimateTop up
$5.00First top-up$3.00$2.00≈ 100 sTop up →
$50.00$48.00$2.00≈ 1,000 sTop up →
$100.00$95.00$5.00≈ 2,000 sTop up →
$200.00$185.00$15.00≈ 4,000 sTop up →
$500.00$450.00$50.00≈ 10,000 sTop up →

First-top-up and tier offers are separate. Checkout confirms the applicable offer. Available methods are confirmed at checkout.

Create with text, frames and references

Open-weights model — use it through our hosted API without your own GPU.

4–15 seconds · 768p or 2K

Create 4–15 second videos at 768p or 2K.

Start or finish with a frame

Create from text, a first frame, a last frame, or both endpoints.

Up to nine reference images

Guide characters, products, and visual style with up to nine reference images.

Mix image, video and audio

Combine image, video, and audio references in one request for reference-led generation.

Synchronized video and sound

Create synchronized video and sound in one request.

Direct through the prompt

Describe shots, camera moves, and sound in natural language.

VIDEO MODELS

One API key. Four video models.

Seedance, Kling, MiniMax H3 and WAN, from one balance. Use the same key for text and image models too.

View all video models →

Seedance 2.5

Seedance 2.516:9

For clips up to 30 seconds and 30 reference images.

From · 480p
$0.176 / s
Max. duration
30 s
Top resolution
1080p
Explore API →

Kling 3.0

Kling 3.016:9

For six custom shots with their own prompts and durations.

From · Standard 720p · Audio off
$0.099 / s
Max. duration
15 s
Top resolution
4K
Explore API →

MiniMax H3

On this page
MiniMax H316:9

For 2K reference-led video with native audio.

From · 768p
$0.050 / s
Max. duration
15 s
Top resolution
2K
Explore API →

WAN 3.0

WAN 3.016:9

For reference-led clips up to 30 seconds.

From · 480p
$0.047 / s
Max. duration
30 s
Top resolution
1080p
Explore API →
Shared prompt

English original · generation prompt

Night city street after rain, seen from a slow forward dolly shot at low height: wet asphalt reflecting colorful lights, light trails from passing cars, soft steam rising from a street grate, light drizzle. Generic modern architecture. No people, no readable text, signs, logos, license plates, flags or recognizable landmarks. Cinematic, realistic.

Same async API: quote → create → poll → download. Switch the model and use its supported parameters.

DEVELOPER QUICKSTART

Get a MiniMax H3 API key and make your first call

Quote → create → poll → download.202 means accepted, not completed. Keep the same idempotency key and body after uncertain acceptance. Download only after completed.These are minimal examples — in production, persist the Idempotency-Key and task ID so you can resume after a restart.

Show the AI agent instructions
Integrate the BetterToken video API in the user's application.
Read BETTERTOKEN_API_KEY only from the environment; never log or send it to analytics.
Base: https://bettertoken.ai/v1
Request JSON (replace the I2V source with your own accessible image):
{
  "model": "minimax-h3",
  "operation": "text_to_video",
  "prompt": "A rainy city street at night, slow forward camera move",
  "duration": {
    "mode": "fixed",
    "seconds": 5
  },
  "output": {
    "format": "mp4",
    "resolution": "768p",
    "aspect_ratio": "16:9"
  }
}
H3 and WAN 2.7 generate native audio by default with no on/off switch. When switching model, adapt resolution, operation, aspect ratio, media and audio. Kling uses provider_options.kling.mode, without output.resolution. H3 image_to_video requires adaptive; reference_to_video allows adaptive or a fixed ratio. WAN 2.7 I2V requires a first frame and omits aspect_ratio.
POST /videos/quote with the same JSON for a non-reserving estimate; requires authentication and may probe input media. It is not a public guest API.
BEFORE POST /videos persist an Idempotency-Key and exact body outside the process; load that saved state after a restart. Persist the task ID after acceptance and resume that task. After a timeout/503 or uncertain acceptance, reuse BOTH; never create a replacement task. Handle 409 video_idempotency_conflict / video_acceptance_pending, 402 balance and 422 validation errors.
202 means accepted only; response has root id/status. GET /videos/{id} every 5 seconds: queued, in_progress, completed, failed, canceled. Uncertain acceptance stays in_progress with stage=reconciliation. On 429 honor the full Retry-After seconds or HTTP date. Poll up to 360 times, waiting 5 seconds between requests; network delays and rate-limit backoff can extend the total observation time. Preserve the task ID when stopping; stopping does not cancel or recreate the task.
Only after completed, GET /videos/{id}/content with an authorized owner key. 410 video_artifact_expired is a delivery expiry, not a generation failure. Keep content private.
Inspect billing separately: confirmed failed/canceled generation releases/refunds the original funding source through financial processing; status alone does not prove the refund is committed. Uncertain acceptance and post-generation delivery failures need separate handling. Do not invent a public cancel endpoint.
# Minimal example: persist the Idempotency-Key and task ID in production.
# Requires curl, jq and BETTERTOKEN_API_KEY in your environment.
BASE=https://bettertoken.ai/v1
IDEM="$(uuidgen)"
cat > request.json <<'JSON'
{
  "model": "minimax-h3",
  "operation": "text_to_video",
  "prompt": "A rainy city street at night, slow forward camera move",
  "duration": {
    "mode": "fixed",
    "seconds": 5
  },
  "output": {
    "format": "mp4",
    "resolution": "768p",
    "aspect_ratio": "16:9"
  }
}
JSON

curl --fail-with-body "$BASE/videos/quote" \
  -H "Authorization: Bearer $BETTERTOKEN_API_KEY" \
  -H 'Content-Type: application/json' --data-binary @request.json || exit 1

TASK=$(curl --fail-with-body "$BASE/videos" \
  -H "Authorization: Bearer $BETTERTOKEN_API_KEY" \
  -H "Idempotency-Key: $IDEM" \
  -H 'Content-Type: application/json' --data-binary @request.json) || exit 1
ID=$(printf '%s' "$TASK" | jq -er '.id') || exit 1
# Poll up to 360 times, waiting 5 seconds between requests.
# Network delays can extend the total time.
for attempt in $(seq 1 360); do
  TASK=$(curl --fail-with-body "$BASE/videos/$ID" \
    -H "Authorization: Bearer $BETTERTOKEN_API_KEY") || exit 1
  STATUS=$(printf '%s' "$TASK" | jq -r '.status')
  case "$STATUS" in
    completed) break ;;
    failed|canceled) printf '%s\n' "$TASK"; exit 1 ;;
  esac
  sleep 5
done
[ "$STATUS" = completed ] || { echo "Resume polling task: $ID"; exit 1; }
curl --fail-with-body "$BASE/videos/$ID/content" \
  -H "Authorization: Bearer $BETTERTOKEN_API_KEY" -o video.mp4

MiniMax H3 API parameters

One video model, three creation modes. Use each mode’s own input and aspect-ratio rules.

ParameterValue & limits
model / operationminimax-h3 · text_to_video / image_to_video / reference_to_video
promptRequired, at most 7,000 characters. Describe camera moves, shots and sound in natural language.
duration / outputduration: {mode:"fixed",seconds:4…15}; output.resolution: 768p / 2k; output.format: mp4.
output.aspect_ratioText: 21:9 / 16:9 / 4:3 / 1:1 / 3:4 / 9:16. Image: adaptive only. Reference: adaptive or a fixed text ratio.
audioOmit audio or use {mode:"provider_default"}.
media · endpoint framesfirst_frame, last_frame or both; do not mix with reference_* inputs.
media · referencesEach item must have a unique id and include type, role and source. ≤9 images; ≤3 videos (contract limit; full combinations not yet verified) and ≤3 audio clips, each 2–15 s and ≤15 s total per type; ≤12 files overall.
reference_to_videoEdit a reference video with text instructions. This is reference-led generation.

FAQ

MiniMax H3 API questions

Output starts at $0.050/s at 768p; see 2K pricing above. Text, image and reference generation share the output rate. Video references add input-second fees at the same rate; images beyond five cost $0.020 each. The calculator excludes reference-input charges.

View API examples

BETTERTOKEN · MINIMAX H3 API

Build your first video with MiniMax H3

First top-up: pay $3.00, get $5.00 balance