Hailuo 2.3 icon
Video by MiniMax

Hailuo 2.3 API

Generate cinematic AI video with MiniMax's Hailuo 2.3 through one unified API. A single REST endpoint, async jobs, and webhooks, with no separate MiniMax account to manage.

Integrate Hailuo 2.3 with a single API call — one key, one unified endpoint, and shared billing across every model on Apiframe.

model: "hailuo-2.3"

What's special about Hailuo 2.3

Best-in-class human motion

It renders complex body movement and dance with greater fluidity and cleaner limb continuity, avoiding the phantom-limb and joint-snapping artifacts that affect many models on fast motion.

Expressive micro-expressions

It captures subtle facial performance, including small smiles, blinks, and emotional shifts, which suits close-up storytelling and character-driven scenes.

Strong physics and cinematic realism

It handles lighting direction, shadow transitions, and color naturally, keeping scene geometry stable even under complex lighting and dynamic camera moves.

Wide stylization range

Beyond realism, it supports anime, illustration, ink-wash painting, game CG, and other distinct art styles with stable, vivid output.

Camera control and consistency

It produces tracking shots and dynamic camera moves with consistent parallax, keeping subjects and backgrounds stable across the whole clip.

Identity preservation and value

It keeps faces, brand objects, and on-screen logos sharp through motion, comes in standard and Fast variants, and holds the same low pricing as Hailuo 02.

Made with Hailuo 2.3

A few outputs generated through the Hailuo 2.3 API on Apiframe.

A dancer performing a fast hip-hop routine, clean limb motion, studio lighting.

A close-up of an actor's face shifting from worry to a relieved smile, soft cinematic light.

A snowboarder carving down a powder slope, the camera tracking alongside, spraying snow.

An ink-wash style clip of a crane taking flight over a misty lake.

An image-to-video clip animating this portrait with subtle blinks and a gentle head turn.

A whiskey bar at night with warm pendant lighting, a slow camera push-in, moody reflections.

Overview

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

Capabilities

Resolutions768p, 1080p
Durations6s, 10s
Image inputSupported
Avg. time~180s

Quick start

Send a single POST /v2/videos/generate request with your API key to generate with Hailuo 2.3. 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-2.3",
        "hailuoParams": {
            "image": "https://example.com/input.jpg",
            "resolution": "768p",
            "prompt_optimizer": true
        }
    }'
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-2.3",
        "hailuoParams": {
            "image": "https://example.com/input.jpg",
            "resolution": "768p",
            "prompt_optimizer": True
        }
    },
)
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-2.3",
    "hailuoParams": {
      "image": "https://example.com/input.jpg",
      "resolution": "768p",
      "prompt_optimizer": true
    }
  }),
});
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 2.3 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-2.3" "hailuo-2.3" The model identifier for this endpoint.
hailuoParams.image string (URL) optional Use a still as the first frame.
hailuoParams.resolution string optional "768p" "768p", "1080p" Resolution
hailuoParams.prompt_optimizer boolean optional true Let Hailuo rewrite your prompt for better results.

Frequently Asked Questions

Common questions about the Hailuo 2.3 API.

What is Hailuo 2.3?

MiniMax's video generation model, released in October 2025 as the successor to Hailuo 02, supporting text-to-video and image-to-video.

What is it best at?

Complex human motion and dance, expressive micro-expressions, physical realism, and stylized art like anime and ink-wash.

How long are the clips and what resolution?

Either 6 or 10 seconds, at 768p or 1080p, with 1080p capped at 6 seconds.

What is Hailuo 2.3 Fast?

An image-to-video variant that is roughly 2.5 times faster and about half the cost, made for quick iteration and batch production.

How much does it cost?

On Apiframe it is credit-based and priced per clip: the Fast tier starts at 33 credits ($0.33) for a 6-second 768p clip, and standard Hailuo 2.3 starts at 48 credits ($0.48), so you only pay for what you generate.

Where can you access it?

Through Apiframe, as well as the Hailuo app, the MiniMax API, and major hosting partners.

Still have questions?

Start building with the Hailuo 2.3 API

Get your API key and integrate Hailuo 2.3 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.