MiniMax H3 MAX


MiniMax H3 MAX is an economical, fast video generation model from MiniMax (the team behind the Hailuo video engine). It supports text-to-video, first-frame-to-video, and first-and-last-frame-to-video generation with direct 768P output. Dual first/last frame control precisely locks the starting and ending visuals, with 4–15 second clips across aspect ratios from 21:9 to 9:16. Billing is fully transparent — from $0.05/second at 480P and $0.08/second at 768P, charged only for the output seconds actually generated, with input text and frame images completely free — making it a cost-effective choice for e-commerce showcases, social media videos, and bulk creative production.

MiniMax H3 Max Video

The MiniMax H3 Max video generation model creates high-quality videos from text and images, with native 768P output and first/last frame control.

Base URL

https://api.icreat.ai

Authentication

All API requests require API key authentication.

export ICREAT_API_KEY="your-api-key-here"

HTTP Request Headers

import os

API_KEY = os.environ.get("ICREAT_API_KEY")
headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer " + API_KEY,
}

Keep Your API Key Secure

Never expose your API key in client-side code or public repositories. Use environment variables or a backend proxy.

Code Examples

Video generation uses a two-step asynchronous workflow: first submit a task to obtain a task_id, then poll the task result endpoint for progress. The following examples use the same task_id across both steps.

1. Submit a Task

POST/v1/task/submit/minimax/h3-max

2. Query Task Results (Polling)

Use the task_id returned by the submission step to query the task progress until the status changes to SUCCEEDED or FAILED.

POST/v1/task/result

Input Parameters

Submit Task - Input Parameters

The following parameters are accepted in the task submission request body.

Total: 7; Required: 5; Optional: 2.

modelstringrequired

The model name. When using this model endpoint, set it to minimax/h3-max.

Default"minimax/h3-max"
minimax/h3-max
contentarray[object]required

The input content array. It must contain exactly one non-empty text item and may also include first-frame or last-frame images.

resolutionstringrequired

The video resolution.

768P480P
durationintegerrequired

The duration of the generated video in seconds.

Min: 4 Max: 15

ratiostringrequired

The aspect ratio of the generated video. Text-to-video requests must specify a concrete aspect ratio and cannot use adaptive.

adaptive21:916:94:31:13:49:16
callback_urlstring

Reserved for protocol compatibility. The current task workflow still relies on actively querying the task status.

aigc_watermarkboolean

Whether to add an AIGC identification watermark. The exact appearance depends on the provider route used.

Default"false"

Content Validation Rules

  • content must contain exactly one non-empty text item.
  • Each image item must provide a non-empty image_url.url and a corresponding role.
  • No more than one first_frame and one last_frame may be provided.
  • A first_frame must also be provided when using last_frame.
  • Text-to-video requests cannot use adaptive.
  • All image URLs must be non-empty and accessible by the server.

Query Task Results - Input Parameters

Total: 1; Required: 1; Optional: 0.

task_idstringrequired

The task ID returned by the task submission endpoint.

Output Parameters

Submit Task - Output Parameters

Total: 1.

task_idstring

The unique identifier of the asynchronous task. Use this ID to query the task status.

Query Task Results - Output Parameters

statusstring

The current task status.

SUBMITTEDIN_PROGRESSSUCCEEDEDFAILED
resultarray[object]

The list of generated video resources. This field is [] while the task is processing or if it fails.

costUSDstring

The task cost in USD. This field is returned only when the task succeeds.

error_codestring

The error code returned when the task fails.

error_messagestring

The English error message returned when the task fails.

Usage Examples

Text to Video

Text-to-video requests must specify a concrete aspect ratio.

{
  "model": "minimax/h3-max",
  "content": [
    {
      "type": "text",
      "text": "A golden retriever running on a beach in slow motion at sunset, cinematic style"
    }
  ],
  "resolution": "480P",
  "duration": 5,
  "ratio": "16:9"
}

First Frame to Video

{
  "model": "minimax/h3-max",
  "content": [
    {
      "type": "text",
      "text": "Have the person in the scene walk naturally into the distance"
    },
    {
      "type": "image_url",
      "image_url": {
        "url": "https://example.com/first-frame.jpg"
      },
      "role": "first_frame"
    }
  ],
  "resolution": "768P",
  "duration": 5,
  "ratio": "adaptive"
}

First and Last Frames to Video

last_frame must be used together with first_frame.

{
  "model": "minimax/h3-max",
  "content": [
    {
      "type": "text",
      "text": "Have the person in the scene walk naturally into the distance"
    },
    {
      "type": "image_url",
      "image_url": {
        "url": "https://example.com/first-frame.jpg"
      },
      "role": "first_frame"
    },
    {
      "type": "image_url",
      "image_url": {
        "url": "https://example.com/last-frame.jpg"
      },
      "role": "last_frame"
    }
  ],
  "resolution": "768P",
  "duration": 5,
  "ratio": "adaptive"
}

LLM-Friendly Prompt

# minimax/h3-max

> The MiniMax H3 Max video generation model supports text-to-video, first-frame-to-video, and first-and-last-frame-to-video generation, with output resolutions of 768P or 480P.

## API Information

- **Base URL**: `https://api.icreat.ai`
- **Submit endpoint**: `POST /v1/task/submit/minimax/h3-max`
- **Query endpoint**: `POST /v1/task/result`
- **Model ID**: `minimax/h3-max`
- **model parameter**: `minimax/h3-max`
- **Authentication**: `Authorization: Bearer ${ICREAT_API_KEY}`

## Workflow

1. Submit a task and save the `task_id` from the response.
2. Call `/v1/task/result` using the same `task_id`.
3. Continue polling while the status is `SUBMITTED` or `IN_PROGRESS`.
4. When the status is `SUCCEEDED`, read the video URL from `result`.
5. When the status is `FAILED`, read `error_code` and `error_message`.

## Input Notes

- `model`: Must be `minimax/h3-max`.
- `content`: Must contain exactly one non-empty text item and may include first-frame or last-frame images.
- `resolution`: `768P` or `480P`.
- `duration`: 4 to 15 seconds.
- `ratio`: `adaptive`, `21:9`, `16:9`, `4:3`, `1:1`, `3:4`, or `9:16`.
- Text-to-video requests cannot use `adaptive`.
- Supported image roles are `first_frame` and `last_frame`.
- No more than one `first_frame` and one `last_frame` may be provided.
- A `first_frame` must also be provided when using `last_frame`.
- `aigc_watermark` defaults to `false`.

## Output Notes

Successful submission:

`{ "task_id": "task-xxx" }`

Processing:

`{ "status": "IN_PROGRESS", "result": [] }`

Successful:

`{ "status": "SUCCEEDED", "result": [{ "type": "video", "url": "..." }], "costUSD": "0.1234" }`

Failed:

`{ "status": "FAILED", "error_code": "...", "error_message": "...", "result": [] }`