MiniMax H3 API 指南:创建、轮询与下载视频

MiniMax H3
|
发布于 2026/08/02

快速回答

MiniMax H3 官方 API 使用 V2 异步调用流程。向 https://api.minimax.io/v2/video_generation 发送 POST 请求,模型 ID 填 MiniMax-H3,并传入必填的 content[]resolution: "2K"、4 到 15 秒整数时长,以及与生成模式匹配的画幅。接口会返回 task_id。随后大约每 10 秒轮询一次 GET https://api.minimax.io/v2/query/video_generation/{task_id},直到状态变为 succeeded,或进入终止失败状态。任务成功后,视频地址直接位于 task.content.url。H3 V2 不需要旧接口中的 file_id 换取步骤。

API Key 必须留在服务端,并通过 Authorization: Bearer <API_KEY> 发送。H3 当前 2K 按量付费标价为每个输出秒 $0.13。下方示例已按 2026 年 8 月 2 日官方 schema 核对,但没有发起付费生成请求。minimaxh3.tv 是独立网站,不是 MiniMax 官方 API 服务。

MiniMax H3 V2 API 创建、轮询与获取结果流程

V2 创建任务后返回 task_id。轮询任务直到成功或进入终止失败状态,只有成功状态才会提供 content.url。示意图依据官方 V2 指南制作,核验日期为 2026 年 8 月 2 日。

准备账号与 API Key

登录 MiniMax API Platform,在 Account Management > API Keys 中创建按量付费 Key,再把它放入服务端环境变量。MiniMax 将标准按量付费 Key 与 Token Plan 或 Credits Key 分开管理。发送付费视频请求前,应先确认当前 Key 使用哪一种余额。

export MINIMAX_API_KEY="replace-with-your-server-side-key"

创建任务和查询任务都使用同一个请求头:

Authorization: Bearer <API_KEY>

不要把 Key 写进浏览器 JavaScript、移动端安装包、公开仓库、截图或客户端可见日志。浏览器请求应先进入你自己的鉴权后端,由后端限制用户额度和并发。

H3 模型 ID 与生成模式

官方 V2 模型 ID 是 MiniMax-H3。三种模式共用一个创建接口,具体模式由 content[] 中的对象和 role 决定。

模式 content[] 必填项 画幅规则
文生视频 一个非空 text 必填,可选 21:916:94:31:13:49:16
首帧或尾帧生成 text 加 1 到 2 个 image_url,角色为 first_frame 和/或 last_frame 由输入图片决定,接口按 adaptive 处理
参考生成 textreference_imagereference_videoreference_audio 可选,默认 adaptive

每个请求都必须有非空文本。参考音频不能单独使用,至少还要有一张参考图片或一个参考视频。首尾帧角色与参考角色不能出现在同一个请求中。

MiniMax H3 content 数组的文本、首尾帧与参考生成模式

H3 V2 的三类有效 content[] 组合。文本始终必填;首尾帧角色不能与参考角色混用;参考音频需要同时提供图片或视频。依据 2026 年 8 月 2 日官方创建任务 schema 核验。

创建视频任务

下面的最小 cURL 请求会创建一个 5 秒、2K、16:9 的文生视频任务:

curl --request POST \
  --url https://api.minimax.io/v2/video_generation \
  --header "Authorization: Bearer ${MINIMAX_API_KEY}" \
  --header "Content-Type: application/json" \
  --data '{
    "model": "MiniMax-H3",
    "content": [
      {
        "type": "text",
        "text": "A paper boat crosses a rain-filled street while the camera tracks beside it."
      }
    ],
    "resolution": "2K",
    "duration": 5,
    "ratio": "16:9"
  }'

创建成功后会得到任务 ID:

{
  "task_id": "424010985738629"
}

后端应先保存这个 ID,再向客户端返回结果。任务记录还应保留用户、请求指纹、提交时间和当前状态,避免应用重启后丢失任务。

轮询任务状态

使用创建接口返回的 ID 查询 V2 任务:

curl --request GET \
  --url "https://api.minimax.io/v2/query/video_generation/${TASK_ID}" \
  --header "Authorization: Bearer ${MINIMAX_API_KEY}"

MiniMax 指南建议每 10 秒查询一次。应用需要明确处理以下状态:

状态 应用处理方式
queued 等待后再次查询
running 等待后再次查询
succeeded 读取 task.content.url 并保存结果
failed 停止查询并记录 task.error
cancelled 停止查询
expired 停止查询,任务已没有可用结果

应用应设置最长等待时间,不要无限轮询。本地超时不能证明上游任务失败,因此需要保留 task_id,稍后继续核对状态。

下载结果

H3 V2 会在成功的查询响应中直接给出结果地址:

{
  "task": {
    "id": "424010985738629",
    "model": "MiniMax-H3",
    "status": "succeeded",
    "content": {
      "url": "https://example-cdn.invalid/generated-video.mp4"
    },
    "resolution": "2K",
    "duration": 5,
    "ratio": "16:9"
  }
}

该结果地址有时效限制。后端应尽快读取,并把视频保存到你控制的存储中。不要把 H3 V2 接入建立在旧版 /v1/files/retrieve 接口上,因为当前 V2 查询响应已经包含 content.url

Python 示例

import os
import time
from pathlib import Path

import requests

BASE_URL = "https://api.minimax.io"
API_KEY = os.environ["MINIMAX_API_KEY"]
HEADERS = {
    "Authorization": f"Bearer {API_KEY}",
    "Content-Type": "application/json",
}


def create_task() -> str:
    payload = {
        "model": "MiniMax-H3",
        "content": [
            {
                "type": "text",
                "text": "A paper boat crosses a rain-filled street while the camera tracks beside it.",
            }
        ],
        "resolution": "2K",
        "duration": 5,
        "ratio": "16:9",
    }
    response = requests.post(
        f"{BASE_URL}/v2/video_generation",
        headers=HEADERS,
        json=payload,
        timeout=30,
    )
    response.raise_for_status()
    return response.json()["task_id"]


def wait_for_result(task_id: str, timeout_seconds: int = 1800) -> str:
    deadline = time.monotonic() + timeout_seconds
    while time.monotonic() < deadline:
        time.sleep(10)
        response = requests.get(
            f"{BASE_URL}/v2/query/video_generation/{task_id}",
            headers={"Authorization": f"Bearer {API_KEY}"},
            timeout=30,
        )
        response.raise_for_status()
        task = response.json()["task"]
        if task["status"] == "succeeded":
            return task["content"]["url"]
        if task["status"] in {"failed", "cancelled", "expired"}:
            raise RuntimeError(f"Task ended with {task['status']}: {task.get('error')}")
    raise TimeoutError(f"Task {task_id} did not finish before the local timeout")


def save_video(url: str, destination: str = "output.mp4") -> None:
    with requests.get(url, stream=True, timeout=120) as response:
        response.raise_for_status()
        with Path(destination).open("wb") as output:
            for chunk in response.iter_content(chunk_size=1024 * 1024):
                output.write(chunk)


task_id = create_task()
save_video(wait_for_result(task_id))

JavaScript 示例

下面的写法使用当前 Node.js 自带的 fetch

import { writeFile } from "node:fs/promises";

const baseUrl = "https://api.minimax.io";
const apiKey = process.env.MINIMAX_API_KEY;

if (!apiKey) throw new Error("MINIMAX_API_KEY is missing");

async function requestJson(url, options = {}) {
  const response = await fetch(url, options);
  if (!response.ok) {
    throw new Error(`${response.status}: ${await response.text()}`);
  }
  return response.json();
}

async function createTask() {
  const data = await requestJson(`${baseUrl}/v2/video_generation`, {
    method: "POST",
    headers: {
      Authorization: `Bearer ${apiKey}`,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      model: "MiniMax-H3",
      content: [
        {
          type: "text",
          text: "A paper boat crosses a rain-filled street while the camera tracks beside it.",
        },
      ],
      resolution: "2K",
      duration: 5,
      ratio: "16:9",
    }),
  });
  return data.task_id;
}

async function waitForResult(taskId) {
  for (let attempt = 0; attempt < 180; attempt += 1) {
    await new Promise((resolve) => setTimeout(resolve, 10_000));
    const data = await requestJson(
      `${baseUrl}/v2/query/video_generation/${taskId}`,
      { headers: { Authorization: `Bearer ${apiKey}` } },
    );
    const { status, content, error } = data.task;
    if (status === "succeeded") return content.url;
    if (["failed", "cancelled", "expired"].includes(status)) {
      throw new Error(`Task ended with ${status}: ${JSON.stringify(error)}`);
    }
  }
  throw new Error(`Task ${taskId} exceeded the local wait limit`);
}

const taskId = await createTask();
const videoUrl = await waitForResult(taskId);
const videoResponse = await fetch(videoUrl);
if (!videoResponse.ok) throw new Error(`Download failed: ${videoResponse.status}`);
await writeFile("output.mp4", Buffer.from(await videoResponse.arrayBuffer()));

文本、首尾帧与参考负载的区别

content[] 取代了按生成模式区分 H3 模型 ID 的做法。所有模式都使用同一个 MiniMax-H3,只改变其中的角色。

首尾帧生成

{
  "model": "MiniMax-H3",
  "content": [
    { "type": "text", "text": "The paper sketch becomes a finished product render." },
    {
      "type": "image_url",
      "image_url": { "url": "https://example.com/start.png" },
      "role": "first_frame"
    },
    {
      "type": "image_url",
      "image_url": { "url": "https://example.com/end.png" },
      "role": "last_frame"
    }
  ],
  "resolution": "2K",
  "duration": 5
}

多模态参考生成

{
  "model": "MiniMax-H3",
  "content": [
    { "type": "text", "text": "Keep the subject's clothing and follow the reference motion." },
    {
      "type": "image_url",
      "image_url": { "url": "https://example.com/subject.png" },
      "role": "reference_image"
    },
    {
      "type": "video_url",
      "video_url": { "url": "https://example.com/motion.mp4" },
      "role": "reference_video"
    }
  ],
  "resolution": "2K",
  "duration": 8,
  "ratio": "16:9"
}

接口最多接收 9 张参考图片、3 个参考视频和 3 个参考音频,但一个混合输入请求最多包含 12 个文件。单个视频或音频时长可以是 2 到 15 秒,同类素材累计不超过 15 秒。请求体上限为 64 MB,大文件更适合使用公开 URL。你也可以查看本站独立网页生成器提供的 MiniMax H3 模型工作流

错误、重试与幂等

创建接口记录了以下常见响应:

HTTP 文档中的原因 处理方式
400 参数错误,包括提示词为空(2013 修正负载,不要原样重试
401 Bearer Key 缺失或无效(1004 修正服务端鉴权
402 余额不足(1008 充值或使用正确的 Key
422 内容触发安全检查(1026 修改请求,不要规避安全规则
429 触发限流(1002 使用带抖动的退避,并控制并发
500 服务内部错误(1000 延迟后谨慎重试

当前限流页面给出的 H3 V2 最大并发为:免费层 2 个任务,付费层 15 个任务。它们是账号默认限制,不是吞吐量保证。

V2 创建接口没有记录幂等 Key 请求头。幂等需要在你的后端实现:调用上游前创建任务记录,为同一请求生成稳定指纹;同一客户端请求再次到达时,复用已保存的 task_id。如果创建请求超时,而上游可能已经接收任务,不要直接再发一个付费任务。先核对本地记录和官方最近 7 天任务列表。

API 价格与限制

MiniMax 按量付费页面在 2026 年 8 月 2 日列出的 H3 价格如下:

项目 当前标价或限制
2K 输出 每个输出秒 $0.13
768P 输出 每个输出秒 $0.09;封闭测试中,需要联系销售
参考音频 输入素材免费
参考图片 前 5 张免费,之后每张 $0.04
参考视频 按输入视频秒数和所选输出分辨率单价计费
输出时长 4 到 15 秒整数
当前公开创建 schema 可用分辨率为 2K

一个 5 秒 2K 输出的标价为 $0.65,另计可能收费的参考素材。产品显示报价或发送任务前,应重新核对官方价格。本站的 价格页 介绍 minimaxh3.tv 自己的积分套餐,不是 MiniMax API 账单。

安全检查清单

  • MiniMax Key 只放在服务端密钥存储中。
  • 用户通过你自己的鉴权后,才能创建付费任务。
  • 提交前检查媒体 URL、文件类型、尺寸、时长和大小。
  • 按账号限制并发,并设置消费上限。
  • 日志中隐藏鉴权请求头;输入 URL 含私人数据时也要隐藏。
  • 保存 task_id 和终止状态,不额外保留产品不需要的用户素材。
  • 成功结果应保存到受控存储,并遵守你的保留期限。
  • Key 一旦出现在客户端包、仓库、截图或日志中,立即轮换。

常见问题

MiniMax H3 API 的模型 ID 是什么?

V2 视频生成接口使用 MiniMax-H3

哪个接口用于创建 H3 视频?

POST https://api.minimax.io/v2/video_generation 发送有效 Bearer Key 和 JSON 请求体。

H3 任务应该多久轮询一次?

官方指南建议每 10 秒查询一次。轮询 GET /v2/query/video_generation/{task_id},在 succeededfailedcancelledexpired 时停止。

下载 H3 V2 结果需要 file ID 吗?

不需要。V2 查询成功后,视频地址直接位于 task.content.url。旧版 V1 文件获取流程不属于当前 H3 V2 调用链。

H3 能否通过一个 API 接收文本、首尾帧、视频和音频?

可以。所有模式都使用 MiniMax-H3content[]。文本必填;首尾帧角色不能与参考角色混用;参考音频必须同时提供至少一张图片或一个视频。

MiniMax H3 API 怎么计费?

2026 年 8 月 2 日,2K 按量付费标价是每个输出秒 $0.13。参考视频秒数和超出免费数量的参考图片可能增加费用。每次更新产品价格前,都应重新检查官方价格页。

minimaxh3.tv 是 MiniMax 官方 API 控制台吗?

不是。minimaxh3.tv 是独立服务,与 MiniMax 没有隶属、背书或运营关系。API Key 和直接 API 账单请使用 MiniMax 官方平台;如果要使用本站网页生成器,可以打开独立的 MiniMax H3 模型页

来源与方法

本文的 schema、接口、生成模式、状态、示例、价格和限制均按 MiniMax 官方文档核验,日期为 2026 年 8 月 2 日。代码示例遵循文档中的请求与响应结构,没有使用付费生成作为证据。

最后核验:2026 年 8 月 2 日。

#MiniMax H3#API#视频生成#开发者指南
相关文章
查看全部文章
MiniMax H3 开源状态:Hugging Face、GitHub、权重与许可证

MiniMax H3 开源状态:Hugging Face、GitHub、权重与许可证

核验 MiniMax H3 在 Hugging Face、GitHub 和 ModelScope 的权重、下载、许可证及本地运行状态。

MiniMax H3 发布时间:首发能力与可用入口

MiniMax H3 发布时间:首发能力与可用入口

了解 MiniMax H3 的发布时间、首发能力、官方 API 规格,以及 Hailuo H3 当前可用入口。