Home › Guides › Use cases

What the MiniMax H3 video API is a good fit for

Updated 2026-10-02

"What can I build with this API" is easier to answer by working backwards from the input modes the family documents than from marketing categories. For MiniMax H3 on VideoRouter those are text-to-video, image-to-video, and on some hosts reference-to-video, across three model ids: minimax/h3, minimax/h3-max and minimax/h3-max-turbo. Below, each project type is mapped to the mode it needs and the tier pattern that keeps cost predictable. This page makes no claims about how the output looks relative to other models. Test on your own prompts.

The capabilities you can rely on

Project types and the mode they use

ProjectModeWhy it fits
Product or catalog animationImage-to-videoYou already own the hero image; the model adds camera and ambient motion. Fixed first frame keeps the brand asset recognisable.
Ad and social variant testingText-to-video or image-to-video, batchedMany prompt variations of one concept. Submitting jobs up front and polling later is cheap in wall-clock time.
Storyboard to animaticImage-to-videoEach panel becomes a start image; short clips are enough for timing review.
Character or asset-guided shotsReference-to-videoGuide generation with several reference images, plus optional video or audio references, on the hosts that support it.
Background loops, B-roll, placeholder footageText-to-videoLow-stakes clips where volume matters more than one perfect take.
In-product "animate this" featuresImage-to-video behind a user actionPredictable per-request cost because duration is fixed at submission.

Structuring drafts and finals across the three ids

The three model ids share one request shape, so a tiered pipeline is routing code in your application, not three integrations. The existing variant guide says where each is a reasonable starting point. A practical way to use them in a project:

  1. Explore on minimax/h3-max-turbo. Cheap, high-volume attempts to find prompts and compositions that work. Keep clips short.
  2. Develop on minimax/h3. Run the survivors at the resolution you will deliver, so surprises show up before the expensive stage.
  3. Finalize on minimax/h3-max for the shots that will actually ship, and re-render only on a visible defect.

Two constraints to design around. First, the tiers are not guaranteed to be interchangeable per prompt, so a prompt that works at one stage may need small edits at the next. Second, Max Turbo and Max have fewer hosts than the base model, which affects failover options and price spread. The live table shows the current picture for each id, and the reliability guide covers what narrower host sets mean for your retry design.

Where it is a weaker fit

Matching project risk to tier

A useful rule is to spend the most on the stage where a mistake is hardest to undo. Internal previews, A/B concept tests and placeholder footage can run on the cheapest id at a low resolution with generous retries, because nothing ships from them. Customer-facing output deserves a stage where a human or an automated check decides what is rendered on the higher tiers. Keep the project type, the tier and the acceptance rule in one place, so that a cost review can see why each job ran where it did.

A starter pattern: batch concepts, then promote

import time, requests

API = "https://videorouter.sh/api/v1"
H = {"Authorization": "Bearer llmr_sk_live_...", "Content-Type": "application/json"}

def submit(model, prompt, **kw):
    r = requests.post(f"{API}/videos", headers=H,
                      json={"model": model, "prompt": prompt, **kw})
    r.raise_for_status()
    return r.json()["id"]

def wait(job_id, every=5, timeout=900):
    end = time.time() + timeout
    while time.time() < end:
        j = requests.get(f"{API}/videos/{job_id}", headers=H).json()
        if j["status"] in ("completed", "failed"):
            return j
        time.sleep(every)
    raise TimeoutError(job_id)

prompts = ["...concept A...", "...concept B...", "...concept C..."]
drafts = [submit("minimax/h3-max-turbo", p, duration_secs=5) for p in prompts]
results = [wait(j) for j in drafts]
keepers = [p for p, r in zip(prompts, results) if r["status"] == "completed"]
# review keepers, then re-submit the approved ones on minimax/h3 or minimax/h3-max

In production, replace the loop with a worker that stores job ids and checks them on a schedule. Polling every few seconds is plenty because generation takes far longer than a poll interval.

Picking a first project

If you are evaluating, choose the project type where a wrong tier is cheapest: batch B-roll or variant testing on Max Turbo. Measure how many attempts it takes per accepted clip, then multiply that retry factor into your budget before moving to finals. The quickstart has the minimal call, and you can create a key at videorouter.sh/signup.

Frequently asked questions

What kinds of projects use the MiniMax H3 API?

Text-to-video for B-roll and variant testing, image-to-video for product and storyboard animation, and reference-to-video on hosts that support it for asset-guided shots.

Which MiniMax H3 model should I use for drafts?

A reasonable pattern is Max Turbo for exploration, base H3 for development at delivery resolution, and H3 Max for finals. Test each on your own prompts since results are prompt-dependent.

Does H3 support reference images, video and audio?

Per the docs, minimax/h3/fal and minimax/h3/atlas-cloud accept up to 9 images, 3 videos and 3 audio clips (12 combined) in one call.

Can I control the last frame of the clip?

Not currently. The docs state end_image_url is accepted by no model yet and is rejected with a 400.

Keep reading

Using MiniMax is one part of the job.

VideoRouter puts it next to dozens of other video and image models behind one API key, so you can compare providers, prices and fail over automatically. Compare providers on VideoRouter →