768p
$0.050 / sAudio included
MINIMAX H3 · VIDEO API
Create 4–15 second videos at 768p or 2K. Start with text, frames or multimodal references, with synchronized video and sound.
PRICING
Compare per-second prices at 768p and 2K.
Audio included
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-09Choose model, resolution, duration and clips.
Native audio included
Output-only estimate; reference inputs may add fees
MiniMax H3 · 768p · Estimate at the selected settings
| Balance credit | You pay | Discount | Video seconds · estimate | Top up |
|---|---|---|---|---|
| $5.00First top-up | $3.00 | $2.00 | ≈ 100 s | Top up → |
| $50.00 | $48.00 | $2.00 | ≈ 1,000 s | Top up → |
| $100.00 | $95.00 | $5.00 | ≈ 2,000 s | Top up → |
| $200.00 | $185.00 | $15.00 | ≈ 4,000 s | Top up → |
| $500.00 | $450.00 | $50.00 | ≈ 10,000 s | Top up → |
First-top-up and tier offers are separate. Checkout confirms the applicable offer. Available methods are confirmed at checkout.
Open-weights model — use it through our hosted API without your own GPU.
Create 4–15 second videos at 768p or 2K.
Create from text, a first frame, a last frame, or both endpoints.
Guide characters, products, and visual style with up to nine reference images.
Combine image, video, and audio references in one request for reference-led generation.
Create synchronized video and sound in one request.
Describe shots, camera moves, and sound in natural language.
VIDEO MODELS
Seedance, Kling, MiniMax H3 and WAN, from one balance. Use the same key for text and image models too.
For clips up to 30 seconds and 30 reference images.
For six custom shots with their own prompts and durations.
For 2K reference-led video with native audio.
For reference-led clips up to 30 seconds.
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
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.
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.mp4One video model, three creation modes. Use each mode’s own input and aspect-ratio rules.
| Parameter | Value & limits |
|---|---|
model / operation | minimax-h3 · text_to_video / image_to_video / reference_to_video |
prompt | Required, at most 7,000 characters. Describe camera moves, shots and sound in natural language. |
duration / output | duration: {mode:"fixed",seconds:4…15}; output.resolution: 768p / 2k; output.format: mp4. |
output.aspect_ratio | Text: 21:9 / 16:9 / 4:3 / 1:1 / 3:4 / 9:16. Image: adaptive only. Reference: adaptive or a fixed text ratio. |
audio | Omit audio or use {mode:"provider_default"}. |
media · endpoint frames | first_frame, last_frame or both; do not mix with reference_* inputs. |
media · references | Each 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_video | Edit a reference video with text instructions. This is reference-led generation. |
FAQ
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 examplesSign up or sign in to BetterToken, prepare or reuse your API key in Workspace, add balance and call the API from your own application. This is a BetterToken relay key; access depends on permissions and funds.
View API examplesBetterToken is a third-party API provider and is not affiliated with MiniMax. This page offers the minimax-h3 video model through a BetterToken key.
View API examplesRequest 4–15 whole seconds at 768p or 2K. Text supports 21:9, 16:9, 4:3, 1:1, 3:4 and 9:16. Image-to-video requires adaptive; references allow adaptive or those fixed ratios.
View API examplesNo. Native audio is generated by default and cannot be turned off. Omit audio or use provider_default. No audio on/off setting is offered.
View API examplesUse a first frame, a last frame or both; do not mix endpoint frames with references. Use video and audio references alongside images. Reference mode accepts up to 9 images and 3 audio clips, 12 files total. Each video/audio clip is 2–15 s; each type totals at most 15 s. Edit a reference video with text instructions through reference_to_video.
View API examplesConfirmed failed generations are not charged. Confirmed failure or cancellation releases or refunds the original funding source through financial processing; task status alone does not prove a refund is committed. Uncertain acceptance must be reconciled. Delivery failure or an expired file after successful generation is a separate case.
View API examplesPay by card through Stripe or with USDT. Available methods are confirmed at checkout.
View API examplesBETTERTOKEN · MINIMAX H3 API
First top-up: pay $3.00, get $5.00 balance