PL Log inCreate account
Launching in October 2026. Accounts, model catalog, calculator and docs are live. Studio is available in preview; generation is awaiting activation.

Hailuo API - MiniMax H3 and H3 Max pricing and examples

MiniMax H3 (Hailuo 03) API guide: per-second price at 768P and 2K, H3 vs H3 Max, first/last frame and reference inputs, with curl and Python code.

If you are looking for a Hailuo API today, the model you want is MiniMax H3: the successor to Hailuo 2.3, released July 31, 2026, and also published as Hailuo 03. It generates 4 to 15 second clips at 768P or 2K with a stereo soundtrack you describe in the prompt. On Jantaris it costs from $0.161 per second (that is the 768P rate; 2K costs more), and the lighter MiniMax H3 Max is from $0.104 per second. Below: what each model accepts, what a clip actually costs, when H3 Max makes sense, and request examples.

Hailuo, MiniMax H3, Hailuo 03

Hailuo AI is MiniMax's consumer app for video and images. MiniMax names its latest video model H3; you will also see "Hailuo 03" and, in community threads, "Hailuo 3". Same model.

Jantaris has two models from this family:

  • MiniMax H3 - the full model: 768P or 2K, stereo audio, first/last frame, and references for identity, motion and voice.
  • MiniMax H3 Max - a variant at 480P or 768P, text or first/last frame only, no references, no 2K.

The "Max" name is misleading. In the catalog, H3 Max is the narrower model, not the stronger one.

Vendor sample: MiniMax (minimax.io). 2K performance showcase for MiniMax H3.

MiniMax H3 API parameters

From the model schemas on Jantaris:

Fieldminimax-h3minimax-h3-max
duration4-15 s, default 65-15 s, default 6
resolution768P (1344x768), 2K (2560x1440, default)480P, 768P (default)
aspect_ratio21:9, 16:9, 4:3, 1:1, 3:4, 9:16, adaptivesame
image_url / end_image_urlyesyes
image_urlsup to 9 reference imagesno
video_urlsup to 3 clips, each 2-15 s, 15 s totalno
audio_urlsup to 3, needs an image or video referenceno
promptup to 7,000 charactersrequired

Three rules that trip people up:

  • Case matters. Resolution values are 768P and 2K, uppercase. 768p returns 422.
  • Aspect ratio depends on the mode. Text-to-video needs an explicit ratio (adaptive is rejected). With a start frame, sending aspect_ratio is an error because the image sets it. In reference mode it defaults to adaptive.
  • Audio references are not standalone. audio_urls only work alongside image_urls or video_urls.

MiniMax highlights prompt adherence, legible text and logos in frame, and motion transfer from a reference clip as H3's strengths.

Vendor sample: MiniMax (platform.minimax.io). Reference-based generation with MiniMax H3, from the API docs.

Hailuo AI price on Jantaris

H3 bills per second of output, with the rate set by resolution:

Model and resolutionRate6 s clip15 s clip
H3, 768Pfrom $0.161 per second6 x rate15 x rate
H3, 2Kabout 1.6x the 768P rate6 x 2K rate15 x 2K rate
H3 Max, 480Pfrom $0.104 per second6 x rate15 x rate
H3 Max, 768Pabout 1.6x the 480P rate6 x 768P rate15 x 768P rate

Exact per-tier rates are on the MiniMax H3 and MiniMax H3 Max model pages, and every request returns estimated_cost before it runs.

References change the bill, so plan for them:

  • Reference clips add their length to the billable seconds. A 6 s output with a 5 s reference clip bills as 11 seconds.
  • Reference images - the first five are included; images six to nine are charged on top.
  • Reference audio is free.

Failed generations cost nothing; the held amount returns to your balance. Billing is prepaid in USD from $10, no subscription, and the balance does not expire. To see how H3 compares per second with other models, read AI video cost per second.

MiniMax H3 vs H3 Max

The pricing table settles most of this. At 768P, H3 Max is not cheaper than full H3; at the time of writing it is slightly more expensive. It only saves money at 480P. So:

  • H3 at 2K for finished footage with stereo audio, for YouTube or an ad edit.
  • H3 at 768P for social clips that the platform will downscale anyway.
  • H3 with references when one character has to look and sound the same across shots, or when you want to copy motion from footage.
  • H3 Max at 480P for cheap drafts of motion and first-to-last-frame transitions before you render the final in H3.

If I am rendering at 768P anyway, I pick full H3: same price, plus references and audio.

Vendor sample: MiniMax (design.minimax.io). MiniMax H3 Max, vertical anime PV clip.

My test: a Grok Imagine still animated at 2K

In August, before Jantaris launched, I ran H3 once through an API: a still from my earlier Grok Imagine test (a fox leaping into snow) as the first frame, and a prompt asking the fox to finish the dive. One attempt, no rerolls.

My MiniMax H3 test from August 2026: image-to-video at 2K, first frame generated with Grok Imagine, single attempt. Downscaled to 720p, audio removed.

The snow breaks up plausibly and the fur keeps the texture of the source image. Making the frame in an image model and the motion in a video model is the workflow I use most; the image-to-video guide goes through it step by step.

How to use MiniMax H3 in Studio

  1. Sign up and add funds from $10.
  2. In Studio, open Video and choose MiniMax H3.
  3. Write the prompt and end it with what should be heard.
  4. Pick ratio, resolution (768P or 2K) and duration.
  5. To start from an image, expand Start frame; for an A-to-B transition add an End frame too.
  6. Check Cost and press Generate.
Studio video form with a start frame uploaded
Jantaris Studio video form with a start frame filled in. Kling 3.0 is selected here; the frame fields look the same for MiniMax H3.

MiniMax H3 API examples

bash
export JANTARIS_API_KEY="sk-jt-..."

Text to video at 2K with audio

bash
curl https://jantaris.com/v1/generate \
  -H "Authorization: Bearer $JANTARIS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "minimax-h3",
    "input": {
      "prompt": "A street food vendor flips noodles in a flaming wok at night, slow push-in, steam and neon reflections. Audio: sizzling oil, clanging wok, distant traffic.",
      "duration": 8,
      "resolution": "2K",
      "aspect_ratio": "16:9"
    }
  }'

First and last frame (no aspect ratio)

json
{
  "model": "minimax-h3-max",
  "input": {
    "prompt": "The camera glides forward as the empty shop fills with customers, lights switch on one by one",
    "image_url": "https://example.com/frames/shop-empty.jpg",
    "end_image_url": "https://example.com/frames/shop-busy.jpg",
    "duration": 6,
    "resolution": "480P"
  }
}

Character and voice from references

json
{
  "model": "minimax-h3",
  "input": {
    "prompt": "The woman from the reference photo sits at a cafe table and says: \"I finally finished the project.\" Quiet cafe chatter in the background.",
    "image_urls": ["https://example.com/refs/character.jpg"],
    "audio_urls": ["https://example.com/refs/voice.mp3"],
    "duration": 6,
    "resolution": "768P"
  }
}

Python: submit and wait

python
import os
import time
import requests

API = "https://jantaris.com/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['JANTARIS_API_KEY']}"}


def run(payload: dict) -> dict:
    r = requests.post(f"{API}/generate", headers=HEADERS, json=payload, timeout=30)
    if r.status_code != 202:
        raise RuntimeError(f"{r.status_code}: {r.json()['error']['message']}")
    task = r.json()
    print("estimated:", task["estimated_cost"])
    delay = 5
    while task["status"] not in ("succeeded", "failed"):
        time.sleep(delay)
        delay = min(delay * 1.5, 20)
        task = requests.get(f"{API}/tasks/{task['id']}", headers=HEADERS, timeout=30).json()
    return task


task = run({
    "model": "minimax-h3",
    "input": {
        "prompt": "Waves crash against black basalt cliffs at dusk, static tripod shot. Audio: deep surf, wind, gulls.",
        "duration": 6,
        "resolution": "768P",
        "aspect_ratio": "9:16",
    },
})

if task["status"] == "succeeded":
    with open(f"{task['id']}.mp4", "wb") as f:
        f.write(requests.get(task["output"][0]["url"], timeout=180).content)
    print("saved, cost:", task["cost"])
else:
    print("failed, cost 0:", task["error"])

Output links expire, so download immediately. For many jobs, set webhook_url and skip polling; see async AI video with webhooks and the generate reference.

Where H3 fits

I use H3 when I need 2K with audio and control through references. For single takes up to 30 seconds I look at Seedance 2.5 (see Seedance 2.0 vs 2.5), and for multi-shot scenes Kling 3.0 (see Kling 3.0 API pricing). The full list with prices is in the AI video API comparison.

FAQ

How much does the Hailuo API cost?

On Jantaris, MiniMax H3 is from $0.161 per second at 768P and about 1.6x that at 2K. H3 Max is from $0.104 per second at 480P. You pay per second of finished video, with no subscription.

Is there a free Hailuo API?

Not on Jantaris: no free tier or signup credit, and the minimum top-up is $10. Failed generations are free. The Hailuo app itself gives new accounts some free credits, but under its terms those clips are watermarked, lower resolution and not for commercial use.

What is the difference between MiniMax H3 and H3 Max?

H3 offers 768P and 2K, stereo audio and image, video and audio references. H3 Max offers 480P and 768P with text or first/last frame input and no references. H3 Max only saves money at 480P.

Does MiniMax H3 generate audio?

Yes. Every H3 clip has a stereo track whose content you describe in the prompt. MiniMax does not publish a list of supported speech languages.

Can I run MiniMax H3 locally?

MiniMax released H3-Base weights on August 2, 2026 under a community license that excludes several regions, including the EU, UK and US. 2K output stays in the hosted service, so most users run H3 through the app or an API.

How long can a MiniMax H3 clip be?

4 to 15 seconds per job (5 to 15 for H3 Max). Longer edits are built from several shots, ideally with the same character references.