Hailuo 03 (MiniMax H3) icon
Video by MiniMax

Hailuo 03 (MiniMax H3) API

Generate native 2K video with synchronized audio using MiniMax H3, through one unified API. Bring your own images, clips, and voice samples as references, and pay per second of output with async jobs and webhooks.

Integrate Hailuo 03 (MiniMax H3) with a single API call — one key, one unified endpoint, and shared billing across every model on Apiframe.

model: "hailuo-03"

What's special about Hailuo 03 (MiniMax H3)

Native 2K with audio in one pass

Every clip renders at 2K with stereo audio generated alongside the picture, so dialogue, effects, and ambience are already in sync instead of dubbed on afterwards.

Omni reference input

Feed the model up to nine images, three video clips, and three audio samples in a single request. It carries subject identity, setting, motion, and voice into a brand new scene.

First and last frame control

Set the opening and closing frames and let the model generate coherent motion between them, or supply just a first frame to animate a still.

Clips from 4 to 15 seconds

Pick any whole number of seconds in the range rather than choosing between two fixed lengths, and pay only for the duration you actually asked for.

Per-second pricing

Billing tracks the length of the clip, so short iterations stay cheap while you dial in a prompt and only the final render costs full price. See pricing for the current rate.

One API, async jobs, webhooks

Submit a generation, poll the job, or receive a webhook when the clip is ready, behind the same endpoint and API key as the rest of the Apiframe catalog. No separate MiniMax account to manage.

Made with Hailuo 03 (MiniMax H3)

A few outputs generated through the Hailuo 03 (MiniMax H3) API on Apiframe.

Sample coming soon

Drone shot flying over a tropical coastline at sunrise, smooth cinematic motion

Sample coming soon

A vintage car driving through a rainy neon city at night, reflections on the asphalt

Sample coming soon

Time-lapse of clouds rolling over a mountain range in warm golden light

Overview

Endpoint
POST /v2/videos/generate
Model ID
hailuo-03
Params key
hailuoParams
Modality
Video
Provider
MiniMax
Avg. completion
~300s

Capabilities

Aspect ratios16:9, 21:9, 4:3, 1:1, 3:4, 9:16, auto
Resolutions2K
Durations4s, 5s, 6s, 7s, 8s, 9s, 10s, 11s, 12s, 13s, 14s, 15s
Image inputSupported
AudioSupported
Avg. time~300s

Quick start

Send a single POST /v2/videos/generate request with your API key to generate with Hailuo 03 (MiniMax H3). The call returns a jobId you can poll or receive via webhook.

curl -X POST https://api.apiframe.ai/v2/videos/generate \
  -H "X-API-Key: afk_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
        "prompt": "a cinematic sunrise over a futuristic cityscape, smooth camera push-in",
        "model": "hailuo-03",
        "hailuoParams": {
            "image": "https://example.com/input.jpg",
            "end_image": "https://example.com/input.jpg",
            "reference_images": [
                "https://example.com/input.jpg"
            ],
            "reference_videos": [
                "https://example.com/input.jpg"
            ]
        }
    }'
import requests

response = requests.post(
    "https://api.apiframe.ai/v2/videos/generate",
    headers={
        "X-API-Key": "afk_your_api_key_here",
        "Content-Type": "application/json",
    },
    json={
        "prompt": "a cinematic sunrise over a futuristic cityscape, smooth camera push-in",
        "model": "hailuo-03",
        "hailuoParams": {
            "image": "https://example.com/input.jpg",
            "end_image": "https://example.com/input.jpg",
            "reference_images": [
                "https://example.com/input.jpg"
            ],
            "reference_videos": [
                "https://example.com/input.jpg"
            ]
        }
    },
)
print(response.json())  # { "jobId": "...", "status": "QUEUED" }
const response = await fetch("https://api.apiframe.ai/v2/videos/generate", {
  method: "POST",
  headers: {
    "X-API-Key": "afk_your_api_key_here",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "prompt": "a cinematic sunrise over a futuristic cityscape, smooth camera push-in",
    "model": "hailuo-03",
    "hailuoParams": {
      "image": "https://example.com/input.jpg",
      "end_image": "https://example.com/input.jpg",
      "reference_images": [
        "https://example.com/input.jpg"
      ],
      "reference_videos": [
        "https://example.com/input.jpg"
      ]
    }
  }),
});
const { jobId } = await response.json();
console.log(jobId);

Response & job lifecycle

Generation is asynchronous. A successful submission returns 202 Accepted with a jobId. Poll GET /v2/jobs/{id} (or supply a webhook_url) until the status is COMPLETED; the result field then holds the output URL(s).

1. Submission response (202)

{
  "jobId": "b2c3d4e5-f6a7-8901-bcde-f23456789012",
  "status": "QUEUED"
}

2. Poll for the result

curl https://api.apiframe.ai/v2/jobs/JOB_ID \
  -H "X-API-Key: afk_your_api_key_here"
import requests, time

while True:
    job = requests.get(
        "https://api.apiframe.ai/v2/jobs/JOB_ID",
        headers={"X-API-Key": "afk_your_api_key_here"},
    ).json()
    if job["status"] in ("COMPLETED", "FAILED"):
        break
    time.sleep(2)
print(job["result"])
let job;
do {
  await new Promise((r) => setTimeout(r, 2000));
  job = await fetch("https://api.apiframe.ai/v2/jobs/JOB_ID", {
    headers: { "X-API-Key": "afk_your_api_key_here" },
  }).then((r) => r.json());
} while (job.status !== "COMPLETED" && job.status !== "FAILED");
console.log(job.result);

Input schema

Request parameters accepted by the Hailuo 03 (MiniMax H3) endpoint. Model-specific options are nested under the params object shown below.

Parameter Type Required Default Allowed / range Description
prompt string required Text description of what to generate.
model string required "hailuo-03" "hailuo-03" The model identifier for this endpoint.
hailuoParams.image string (URL) optional Use a still as the first frame.
hailuoParams.end_image string (URL) optional Optional last frame to control the ending.
hailuoParams.reference_images string[] (URLs) optional First 5 are included; extra images are billed per image.
hailuoParams.reference_videos string[] (URLs) optional 15s total across all clips. Billed per second, like the output.
hailuoParams.reference_audios string[] (URLs) optional Voice timbre reference. Needs at least one reference image or video.

Frequently Asked Questions

Common questions about the Hailuo 03 (MiniMax H3) API.

What is Hailuo 03?

Hailuo 03 is Apiframe's model id for MiniMax H3, a multimodal video model that generates native 2K clips with synchronized audio from text, frames, or reference media.

What inputs does it accept?

Three modes, one per request. A text prompt on its own; a first and optional last frame; or a set of reference images, videos, and audio clips. Frame inputs and reference inputs cannot be combined in the same call.

Does it really generate audio?

Yes. Audio is produced in the same pass as the video and muxed into the returned mp4, covering dialogue, sound effects, and ambience. You can also supply an audio reference to steer the voice.

What resolutions and durations are supported?

Native 2K output at any whole-second duration from 4 to 15 seconds. MiniMax has announced a 768p tier that is not live yet; we will expose it here as soon as it is.

How is it billed?

Per second of output. Reference videos are billed at the same per-second rate on top, and reference images past the first five add a small flat charge each. You only pay for successful generations.

Is the model open weight?

MiniMax has committed to releasing H3 weights, but they are not published yet. Nothing about the API changes when they land, and the hosted model here stays the fastest way to run it.

How do I use it through the API?

POST to /v2/videos/generate with model "hailuo-03", then poll the job or receive a webhook when the video is ready.

Still have questions?

Start building with the Hailuo 03 (MiniMax H3) API

Get your API key and integrate Hailuo 03 (MiniMax H3) in minutes — Pay-as-you-go.

Free credits to start
One API for every model
Webhooks, SDKs & idempotency
No provider account required

Questions? Join our Discord or contact sales.