MiniMax API: H3 video, Hailuo and M3 chat, with prices and code
MiniMax makes some of the best-value video models around, and two capable chat models, but calling them from outside China is awkward. Here is every MiniMax model you can call with one API key, what each costs, which to pick, and the code to make your first clip.
The MiniMax models you can call
MiniMax, the Shanghai lab behind Hailuo, makes video models and chat models. All of them run on the same Revana API key: the video models through POST /v1/generations, the chat models through an OpenAI-compatible /v1/chat/completions.
- MiniMax H3: the newest video model. 4 to 15 second clips with sound, from text, a start image, first and last frames or up to nine reference images, at 768p or 2K.
- MiniMax H3 Max: the same family tuned for quality, 480p to 1080p, without sound.
- Hailuo 2.3 and Hailuo 02: the earlier video models, known for dynamic action, dance and physical motion, and still the cheapest per second. The Hailuo API guide covers them in detail.
- MiniMax M3 and M2.5: chat and coding models, priced per million tokens.
MiniMax video API pricing (November 2026)
The video models are priced per second of output, by resolution. A clip is charged once, when it is delivered:
| Modell | Auflösung | Ton | Länge | Pro Sekunde | Ein Clip |
|---|---|---|---|---|---|
| MiniMax H3 | 768p | Ja | 4 bis 15 s | $0.05 | 10 s: $0.50 |
| MiniMax H3 | 2K | Ja | 4 bis 15 s | $0.08 | 10 s: $0.80 |
| MiniMax H3 Max | 480p | Nein | 5 bis 15 s | $0.05 | 10 s: $0.50 |
| MiniMax H3 Max | 768p | Nein | 5 bis 15 s | $0.08 | 10 s: $0.80 |
| MiniMax H3 Max | 1080p | Nein | 5 bis 15 s | $0.16 | 10 s: $1.60 |
| Hailuo 2.3 | 768p | Nein | 6 oder 10 s | $0.06 | 10 s: $0.60 |
| Hailuo 2.3 | 1080p | Nein | 6 s | $0.09 | 6 s: $0.54 |
| Hailuo 2.3 Fast | 768p | Nein | 6 oder 10 s | $0.04 | 10 s: $0.40 |
| Hailuo 02 | 512p | Nein | 5 oder 10 s | $0.02 | 10 s: $0.20 |
| Hailuo 02 | 768p | Nein | 5 oder 10 s | $0.04 | 10 s: $0.40 |
MiniMax H3 is the value pick: sound and 2K for $0.08 a second. Hailuo 02 at 512p, $0.02 a second, is the cheapest MiniMax video of all, good for drafts and storyboards.
Generate a MiniMax H3 video
Send POST /v1/generations with the model id minimax-h3, your prompt, a resolution, a duration and an aspect_ratio, then poll the generation until it has succeeded or failed. This 6 second 768p clip with sound costs $0.30.
export REVANA_API_KEY="sr_live_..."
# One Idempotency-Key per job, made once: resend with the same $KEY after a timeout, a 429 or a 5xx
KEY=$(uuidgen)
# 1. Submit the job (returns 202 with the generation id). max_cost_usd is your cap: the most it may cost.
curl https://api.revana.si/v1/generations \
-H "Authorization: Bearer $REVANA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $KEY" \
-d '{
"model": "minimax-h3",
"input": {
"prompt": "A golden retriever leaps into a lake to fetch a stick, slow motion splash, morning light. Water splashing, birds in the distance.",
"resolution": "768p",
"duration": 6,
"aspect_ratio": "16:9"
},
"max_cost_usd": 0.4
}'
# 2. Poll with the id from step 1 until status is "succeeded" or "failed".
# A failed job is free; make a new KEY before you submit it again.
curl https://api.revana.si/v1/generations/gen_01JC2V8K5T \
-H "Authorization: Bearer $REVANA_API_KEY"import os
import time
import uuid
import requests
API = "https://api.revana.si/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['REVANA_API_KEY']}"}
# One Idempotency-Key per job, made once. Resend after a timeout, a 429 or a 5xx with the
# same KEY: you get the same job back, never a second charge.
KEY = str(uuid.uuid4())
resp = requests.post(f"{API}/generations", headers={**HEADERS, "Idempotency-Key": KEY}, json={
"model": "minimax-h3",
"input": {
"prompt": "A golden retriever leaps into a lake to fetch a stick, slow motion splash, morning light. Water splashing, birds in the distance.",
"resolution": "768p",
"duration": 6,
"aspect_ratio": "16:9",
},
"max_cost_usd": 0.4, # your cap: the most this job may cost
})
resp.raise_for_status()
job = resp.json()
while job["status"] in ("queued", "running"):
time.sleep(3)
job = requests.get(f"{API}/generations/{job['id']}", headers=HEADERS).json()
if job["status"] == "succeeded":
print(job["output"]["urls"], job["cost_usd"])
else:
# A failed job is free. To try again, make a new KEY: this one answers with the failure.
print("Failed:", job["error"])// Node 18 or later. Save as generate.mjs and run: node generate.mjs
import { randomUUID } from "node:crypto";
const API = "https://api.revana.si/v1";
const headers = {
Authorization: `Bearer ${process.env.REVANA_API_KEY}`,
"Content-Type": "application/json",
};
// One Idempotency-Key per job, made once. Resend after a timeout, a 429 or a 5xx with the
// same key: you get the same job back, never a second charge.
const key = randomUUID();
const res = await fetch(`${API}/generations`, {
method: "POST",
headers: { ...headers, "Idempotency-Key": key },
body: JSON.stringify({
model: "minimax-h3",
input: {
prompt: "A golden retriever leaps into a lake to fetch a stick, slow motion splash, morning light. Water splashing, birds in the distance.",
resolution: "768p",
duration: 6,
aspect_ratio: "16:9",
},
max_cost_usd: 0.4, // your cap: the most this job may cost
}),
});
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
let job = await res.json();
while (job.status === "queued" || job.status === "running") {
await new Promise((r) => setTimeout(r, 3000));
job = await (await fetch(`${API}/generations/${job.id}`, { headers })).json();
}
if (job.status === "succeeded") console.log(job.output.urls, job.cost_usd);
else console.error("Failed:", job.error); // free; to try again, make a new key{
"id": "gen_01JC2V8K5T",
"model": "minimax-h3",
"status": "succeeded",
"output": {
"urls": [
"https://cdn.revana.si/g/gen_01JC2V8K5T/video.mp4"
]
},
"cost_usd": 0.3,
"attempts": 1,
"error": null,
"created_at": "2026-11-12T10:14:02Z",
"completed_at": "2026-11-12T10:15:08Z"
}Keep a character or product with reference images
Send up to nine pictures in image_urls and MiniMax H3 keeps the face, outfit or product they show. References cost nothing extra: this 10 second 2K clip is $0.80. If the files are on your computer, upload them first with POST /v1/uploads; each link is good for 14 days.
{
"model": "minimax-h3",
"input": {
"prompt": "The woman from the pictures walks through a night market holding the red handbag, neon signs, crowd chatter.",
"image_urls": ["https://example.com/woman.jpg", "https://example.com/handbag.jpg"],
"resolution": "2K",
"duration": 10,
"aspect_ratio": "9:16"
},
"max_cost_usd": 1
}A length or resolution the model does not take comes back straight away as 422 invalid_input, with the values it does take, and nothing is charged.
MiniMax chat models: M3 and M2.5
MiniMax M3 and M2.5 cost $0.30 per million input tokens and $1.20 per million output tokens. They take the OpenAI chat format, so any OpenAI SDK works once you point it at https://api.revana.si/v1 with your Revana key. See MiniMax M3 and MiniMax M2.5 for their live prices.
curl https://api.revana.si/v1/chat/completions \
-H "Authorization: Bearer $REVANA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "minimax-m3",
"messages": [{"role": "user", "content": "Write a 15 second video prompt for a coffee ad."}]
}'One key, no plan
- Prepaid credit. Top up from the pricing page; 100 credits are one dollar, for video, chat and every other model.
- Charged once, on delivery. The price is held when you submit and released if the job fails. A failed clip costs nothing.
- A cap on every job. Send
max_cost_usdand the request never costs more than that. - No account in China needed. Sign up with an email, pay by card, and call MiniMax next to Kling, Seedance and Veo.
Compare MiniMax with the rest on the Kling API pricing page and the cheapest AI video generation API guide. Every model is on the models page with its live price, the request reference is in the docs, or get an API key.
Häufig gestellte Fragen
How much does the MiniMax API cost?
In November 2026, MiniMax H3 video costs $0.05 a second at 768p and $0.08 at 2K, sound included. Hailuo starts at $0.02 a second, and the MiniMax M3 chat model is $0.30 per million input tokens.
What is the difference between MiniMax and Hailuo?
MiniMax is the company; Hailuo is the name of its earlier video models (Hailuo 02 and 2.3). MiniMax H3 and H3 Max are the newer video models.
Erzeugt MiniMax H3 Ton?
Yes. MiniMax H3 makes sound with the picture on every clip, at no extra cost. H3 Max and the Hailuo models make silent video.
How long can a MiniMax video be?
MiniMax H3 and H3 Max make clips from 4 or 5 up to 15 seconds. Hailuo makes 5, 6 or 10 second clips, depending on the version.
Do I need a MiniMax account to use the API?
No. You call every MiniMax model with a Revana API key and pay from prepaid credit. There is nothing to cancel and no monthly minimum.
Am I charged for a failed MiniMax video?
No. The price is held when you submit and released if the job fails, so a failed clip costs nothing.
Call MiniMax with one key
One API key for MiniMax H3, Hailuo, M3 and every other model. Prepaid credit from $10, charged only for what is delivered.