API 文档接口参考

MiniMax H3 Max Turbo · 查询单个模型

模型对象包含 slug、name、type、vendor、params 和 providers。每个渠道提供 params、prices、billing,支持根据公开字段在前端本地报价。

GET/api/v1/models/{slug}公开接口 · 无需 API Key
minimax-h3-max-turbo视频 · MiniMax模型详情与价格

此模型使用的接口

选择供应商可查看其实际参数限制。自动路由会选择支持所传参数的供应商。示例包含默认值和必填输入,请将示例媒体地址替换为可访问的文件。

价格数据在哪里

GET /api/v1/models 返回 object=list 和 data 数组。普通目录的每个模型包含 slug、params 和 providers;从 data[].providers[] 选择渠道后,读取该渠道的 prices、params、billing。GET /api/v1/models/模型slug 直接返回模型对象,不包裹 data。

带 project 查询参数时,data[] 中每项已指定 provider,prices、params、billing 直接位于模型对象上,没有 providers 数组。项目 prices[] 仅含 unit、conditions、priceMicros,billing.priceScope=project、creditsPerUsd=null。项目自定义模型名应从此列表读取,模型详情接口不解析 project。

接口无需 API Key。浏览器跨域读取请使用 /api/v1/models;普通目录允许公开跨域,项目目录遵守配置的域名限制。目录缓存 60 秒。下面价格为演示值,接入时读取实时响应,不要写死;报价不锁价。完整的五类计费规则见 /docs/quote。

模型级字段:图标与价格区间

每个模型对象还带有用于列表展示的图标和价格区间。价格区间是所有渠道、所有价格规则里每单位单价的最低值和最高值,已包含网关售价设置;它不是本次请求总价,两端的计费单位也可能不同。具体报价请读取所选渠道的 prices。

data[]

字段类型含义与用法
iconUrlstring | null模型图标的完整 URL(SVG 或 WebP),没有图标时为 null。
iconMonoboolean为 true 时表示图标是单一深色,深色背景下需要反色显示。
fromMicrosnumber | null所有渠道中最低的每单位单价,单位为微美元;模型没有价格时为 null。
maxMicrosnumber | null所有渠道中最高的每单位单价,单位为微美元;模型没有价格时为 null。
fromUnit / maxUnitstring | nullfromMicros / maxMicros 对应的计费单位(request / second / image / kchar / input_token / output_token)。展示价格时必须带上单位。
fromOriginalMicros / maxOriginalMicrosnumber | null最低价 / 最高价那条规则有折扣时的原价,没有折扣时为 null,仅用于展示。

使用说明

项目目录(?project=)同样返回 iconUrl、iconMono、fromMicros、fromUnit、maxMicros、maxUnit,价格已乘项目倍率;不返回 fromOriginalMicros 和 maxOriginalMicros。

params:输入参数定义

模型 params 描述模型整体能力;渠道 params 描述该渠道实际支持的参数。billing.modelParams、billing.upstreamParams 使用相同的字段结构。以下表格描述数组中的一个参数对象,可选字段可能不出现在 JSON 中。

params[]

字段类型含义与用法
namestring输入字段名,例如 prompt、duration、num_images。
typestringtext / string 为文本;integer 为整数;number 为数值;boolean 为布尔值;enum 为枚举;image 为一个 http(s) 图片 URL;images 为图片 URL 数组。
label / descriptionstring显示名称和说明;缺省时可直接展示 name。
requiredboolean是否必填,缺省为 false;补默认值后仍为空的必填项不能提交。
defaultstring | number | boolean输入缺省、null 或空字符串时使用的默认值;缺省不等于 0。
optionsarray允许的字符串、数字或布尔值列表。enum 必须从列表中选择,并保留选项值的类型。
min / maxnumber数值型参数的最小值与最大值,包含边界;integer 还必须为整数。
maxItemsnumberimages 参数最多允许的图片数。
maxLengthnumber文本最大长度,按 JavaScript 字符串 length 统计;文本仍受 10,000 长度上限约束,未设置时默认 10,000。

使用说明

准备参数:billing.version=1 为当前计算契约;billing.unavailableReason 非空时不可报价。先按 billing.modelParams 校验模型输入,再按渠道 params 的类型、required、default、options、min/max 等约束校验并补默认值;存在 billing.upstreamParams 时,以其校验结果和默认值作为最终输入。渠道或上游不支持的字段,只有其值等于模型默认值时才忽略,否则报错。mode 根据最终参数定义中的 image/images 字段是否有值推导为 image 或 text,不直接使用用户指定的 mode。

prices:价格规则

prices 是价格规则数组,不是本次请求的总价。先补齐并校验参数,再选规则;普通计费按 unit 得到数量后计算 round(priceMicros × 数量)。次数为 1,秒数取 duration,图片数取 num_images,字符数按 characterBilling 处理后除以 1,000;秒数、图片数均最低为 1。

prices[]

字段类型含义与用法
unitstringrequest / second / image / kchar / input_token / output_token;分别按次、秒、张、千字符、百万输入 Token、百万输出 Token 计价。
conditionsobject条件名到字符串、数字或布尔值的映射。空对象表示无条件;普通规则全部匹配后优先选条件最多的一条。Token 的 min_input_tokens 为输入长度档位,缺省为 0。
priceMicrosnumber每个计费单位的微美元单价,1,000,000 微美元 = 1 美元。已经包含网关售价设置;项目目录还已包含项目倍率,不再乘折扣或加价倍率。
originalMicrosnumber | null普通目录返回的对比原价单价;null 表示没有可展示的折扣原价。项目目录不返回此字段。
creditsnumber普通目录返回的规则展示积分,不能乘本次用量当作总积分。总积分必须从总美元金额与 billing.creditsPerUsd 换算。项目目录不返回此字段。

使用说明

按次、秒、图片和字符计费时,用最终输入匹配 prices[].conditions:条件全部满足才可选,比较时将值转为字符串;匹配规则中条件最多的一条优先,同等条件数量保留接口返回顺序。Token 按下文的输入长度档位选价。

输入、输出分别计价,单价均对应 1,000,000 Token。使用输入 Token 数,分别从两类规则中选择 min_input_tokens 不超过该数量且阈值最高的一条;未设置阈值视为 0,同档位保留返回顺序。输出价格的档位也由输入 Token 数决定。

总微美元 = ceil(输入单价 × 输入 Token 数 / 1,000,000 + 输出单价 × 输出 Token 数 / 1,000,000)。先合计再向上取整,不要分别取整。例:输入单价 1,000,000、输出单价 2,000,000 微美元,输入 1,000 Token、输出 500 Token,总价为 0.002 美元。Token 数不是字符数;未知输出量只能预估。

上面的 round 表示四舍五入到整数微美元(Math.round),ceil 表示向上取整(Math.ceil)。美元金额 = 总微美元 / 1,000,000。billing.creditsPerUsd 非空时,积分 = max(1, ceil(美元金额 × creditsPerUsd - 1e-9));最低 1 积分,减去 1e-9 用于避免浮点误差造成多扣。例:0.40 美元、每美元 250 积分,对应 100 积分。

下面普通目录示例的默认时长为 5 秒,每秒 200,000 微美元:总价 1 美元,每美元 250 积分,所以本次为 250 积分,不能直接拿单价展示积分 50 当总积分。项目目录示例每秒 240,000 微美元,5 秒为 1.20 美元;这是转售价,不返回网关积分。

billing:计算与结算规则

billing 为每个价格来源提供计算规则,不包含密钥或上游成本。下面的嵌套字段以 billing 为起点;缺少可选对象表示该规则不适用,不要自行补出字符块或音频预留量。

billing

字段类型含义与用法
versionnumber当前为 1。表示计算规则版本,不是锁价凭证;不支持的版本应停止报价并刷新目录。
priceScope"gateway" | "project"gateway 为网关收费价;project 为项目转售展示价,已含项目倍率。
creditsPerUsdnumber | null每美元对应的网关积分数;项目目录为 null,不据此计算网关扣费积分。
modelParamsarray模型层参数定义,结构同 params[],先用它校验输入。
upstreamParamsarray最终计费所用参数定义,结构同 params[];存在时在渠道校验之后再用它校验并补默认值。
characterBillingobject按字符计费的附加规则。缺省时统计 prompt 的 JavaScript 字符串 length,至少 1 个字符,不自动按整千取整。
characterBilling.fieldsstring[]需要合计字符数的输入字段名;仅在 characterBilling 存在时返回。缺省输入按空字符串计算。
characterBilling.minimumnumber最低计费字符数;仅在 characterBilling 存在时返回。
characterBilling.blocknumber字符数先向上取整到该块大小的倍数,再应用 minimum;省略或为 0 时不做块取整。
meteringobject存在时按音频用量计费,生成前报价为 Token 预留金额;最终结算可能不同。
metering.outputTokenHoldnumber预留输出 Token 数;仅在 metering 存在时返回。
metering.providerCostbooleantrue 表示最终费用依赖上游报告,不能仅凭公开单价推算最终费用;省略或 false 时按实际 Token 用量结算。
unavailableReasonstring当前配置不可报价的原因。非空时停止计算并提示用户,不显示为免费。

使用说明

音频预留:存在 billing.metering 时,先将 prompt 与 style_instructions 拼接,取 UTF-8 字节数 + 256 作为输入 Token 估值,输出 Token 取 outputTokenHold,再用上述 Token 公式计算预留金额。最终按真实用量结算;providerCost=true 时以所需的上游费用报告进行结算。

项目售价:billing.priceScope=project 的单价已包含项目售价倍率,不要重复加价;billing.creditsPerUsd=null,不能据此计算网关扣费积分。POST /quote 即使携带 project,返回的仍是网关收费价和积分,不包含项目转售加价。

一致性:同一价格配置、指定渠道与输入下,按上述规则计算可与后端保持一致。目录缓存 60 秒,更新价格后需重新获取;前端报价不锁价。自动路由还考虑渠道可用性、优先级和熔断,本地最低价不保证实际成交价。参数不合法、版本不支持或无匹配价格时应提示无法报价,不能显示为免费。

输入参数

查询 / 路径参数
slug
string · path必填

模型目录中的 slug;项目密钥也可使用项目自定义的模型 slug。

可选值:"minimax-h3-max-turbo"

输出字段

slug
string

模型目录中的 slug;项目密钥也可使用项目自定义的模型 slug。

params
array

参数定义:name、type、required、default、options,以及已配置的 min、max、maxItems、maxLength。

providers
array

可用供应商、各自的参数约束及公开价格档位。

iconUrl
string | null

模型图标的完整 URL(SVG 或 WebP),没有图标时为 null。

iconMono
boolean

为 true 时表示图标是单一深色,深色背景下需要反色显示。

请求

cURL
curl 'https://01router.com/api/v1/models/minimax-h3-max-turbo'

响应示例

200 · application/json
{
  "slug": "minimax-h3-max-turbo",
  "name": "MiniMax H3 Max Turbo",
  "type": "video",
  "vendor": "MiniMax",
  "description": "Half-price, faster MiniMax H3 Max: 5–15 s clips with first/last frame and a driving soundtrack.",
  "tags": [
    "text-to-video",
    "image-to-video",
    "fast"
  ],
  "coverUrl": "",
  "iconUrl": "https://01router.com/models/minimax-color.svg",
  "iconMono": false,
  "params": [
    {
      "name": "prompt",
      "type": "text",
      "label": "Prompt",
      "required": true
    },
    {
      "name": "image_url",
      "type": "image",
      "label": "First frame",
      "description": "Optional start image (image-to-video)"
    },
    {
      "name": "end_image_url",
      "type": "image",
      "label": "Last frame"
    },
    {
      "name": "audio_url",
      "type": "audio",
      "label": "Soundtrack",
      "description": "Audio the video follows (2–15 s)"
    },
    {
      "name": "duration",
      "type": "integer",
      "label": "Duration (s)",
      "min": 5,
      "max": 15,
      "default": 5
    },
    {
      "name": "resolution",
      "type": "enum",
      "label": "Resolution",
      "options": [
        "480p",
        "768p",
        "1080p"
      ],
      "default": "768p"
    },
    {
      "name": "aspect_ratio",
      "type": "enum",
      "label": "Aspect ratio",
      "options": [
        "16:9",
        "9:16",
        "1:1",
        "4:3",
        "3:4",
        "21:9"
      ],
      "default": "16:9"
    }
  ],
  "providers": [
    {
      "provider": "fal",
      "providerName": "fal.ai",
      "discount": 90,
      "preferred": false,
      "params": [
        {
          "name": "prompt",
          "type": "text",
          "label": "Prompt",
          "required": true
        },
        {
          "name": "image_url",
          "type": "image",
          "label": "First frame",
          "description": "Optional start image (image-to-video)"
        },
        {
          "name": "end_image_url",
          "type": "image",
          "label": "Last frame"
        },
        {
          "name": "audio_url",
          "type": "audio",
          "label": "Soundtrack",
          "description": "Audio the video follows (2–15 s)"
        },
        {
          "name": "duration",
          "type": "integer",
          "label": "Duration (s)",
          "min": 5,
          "max": 15,
          "default": 5
        },
        {
          "name": "resolution",
          "type": "enum",
          "label": "Resolution",
          "options": [
            "480p",
            "768p",
            "1080p"
          ],
          "default": "768p"
        },
        {
          "name": "aspect_ratio",
          "type": "enum",
          "label": "Aspect ratio",
          "options": [
            "16:9",
            "9:16",
            "1:1",
            "4:3",
            "3:4",
            "21:9"
          ],
          "default": "16:9"
        }
      ],
      "billing": {
        "version": 1,
        "priceScope": "gateway",
        "creditsPerUsd": 100,
        "modelParams": [
          {
            "name": "prompt",
            "type": "text",
            "label": "Prompt",
            "required": true
          },
          {
            "name": "image_url",
            "type": "image",
            "label": "First frame",
            "description": "Optional start image (image-to-video)"
          },
          {
            "name": "end_image_url",
            "type": "image",
            "label": "Last frame"
          },
          {
            "name": "audio_url",
            "type": "audio",
            "label": "Soundtrack",
            "description": "Audio the video follows (2–15 s)"
          },
          {
            "name": "duration",
            "type": "integer",
            "label": "Duration (s)",
            "min": 5,
            "max": 15,
            "default": 5
          },
          {
            "name": "resolution",
            "type": "enum",
            "label": "Resolution",
            "options": [
              "480p",
              "768p",
              "1080p"
            ],
            "default": "768p"
          },
          {
            "name": "aspect_ratio",
            "type": "enum",
            "label": "Aspect ratio",
            "options": [
              "16:9",
              "9:16",
              "1:1",
              "4:3",
              "3:4",
              "21:9"
            ],
            "default": "16:9"
          }
        ]
      },
      "prices": [
        {
          "unit": "second",
          "conditions": {
            "resolution": "480p"
          },
          "priceMicros": 14625,
          "originalMicros": 16250,
          "credits": 2
        },
        {
          "unit": "second",
          "conditions": {
            "resolution": "768p"
          },
          "priceMicros": 23400,
          "originalMicros": 26000,
          "credits": 3
        },
        {
          "unit": "second",
          "conditions": {
            "resolution": "1080p"
          },
          "priceMicros": 46800,
          "originalMicros": 52000,
          "credits": 5
        }
      ]
    },
    {
      "provider": "atlascloud",
      "providerName": "AtlasCloud",
      "discount": 90,
      "preferred": false,
      "params": [
        {
          "name": "prompt",
          "type": "text",
          "label": "Prompt",
          "required": true
        },
        {
          "name": "image_url",
          "type": "image",
          "label": "First frame",
          "description": "Optional start image (image-to-video)"
        },
        {
          "name": "end_image_url",
          "type": "image",
          "label": "Last frame"
        },
        {
          "name": "duration",
          "type": "integer",
          "label": "Duration (s)",
          "min": 5,
          "max": 15,
          "default": 5
        },
        {
          "name": "resolution",
          "type": "enum",
          "label": "Resolution",
          "options": [
            "768p",
            "480p"
          ],
          "default": "768p"
        },
        {
          "name": "aspect_ratio",
          "type": "enum",
          "label": "Aspect ratio",
          "options": [
            "16:9",
            "9:16",
            "1:1",
            "4:3",
            "3:4",
            "21:9"
          ],
          "default": "16:9"
        }
      ],
      "billing": {
        "version": 1,
        "priceScope": "gateway",
        "creditsPerUsd": 100,
        "modelParams": [
          {
            "name": "prompt",
            "type": "text",
            "label": "Prompt",
            "required": true
          },
          {
            "name": "image_url",
            "type": "image",
            "label": "First frame",
            "description": "Optional start image (image-to-video)"
          },
          {
            "name": "end_image_url",
            "type": "image",
            "label": "Last frame"
          },
          {
            "name": "audio_url",
            "type": "audio",
            "label": "Soundtrack",
            "description": "Audio the video follows (2–15 s)"
          },
          {
            "name": "duration",
            "type": "integer",
            "label": "Duration (s)",
            "min": 5,
            "max": 15,
            "default": 5
          },
          {
            "name": "resolution",
            "type": "enum",
            "label": "Resolution",
            "options": [
              "480p",
              "768p",
              "1080p"
            ],
            "default": "768p"
          },
          {
            "name": "aspect_ratio",
            "type": "enum",
            "label": "Aspect ratio",
            "options": [
              "16:9",
              "9:16",
              "1:1",
              "4:3",
              "3:4",
              "21:9"
            ],
            "default": "16:9"
          }
        ]
      },
      "prices": [
        {
          "unit": "second",
          "conditions": {
            "resolution": "480p"
          },
          "priceMicros": 21420,
          "originalMicros": 23800,
          "credits": 3
        },
        {
          "unit": "second",
          "conditions": {
            "resolution": "768p"
          },
          "priceMicros": 34200,
          "originalMicros": 38000,
          "credits": 4
        }
      ]
    }
  ],
  "fromMicros": 14625,
  "fromOriginalMicros": 16250,
  "fromUnit": "second",
  "maxMicros": 46800,
  "maxOriginalMicros": 52000,
  "maxUnit": "second"
}
Token 渠道片段(普通目录 providers[] 中的一项)
{
  "provider": "example-chat",
  "providerName": "Example chat",
  "discount": null,
  "preferred": false,
  "params": [],
  "prices": [
    {
      "unit": "input_token",
      "conditions": {
        "min_input_tokens": 0
      },
      "priceMicros": 1000000,
      "originalMicros": null,
      "credits": 250
    },
    {
      "unit": "output_token",
      "conditions": {
        "min_input_tokens": 0
      },
      "priceMicros": 2000000,
      "originalMicros": null,
      "credits": 500
    },
    {
      "unit": "input_token",
      "conditions": {
        "min_input_tokens": 100000
      },
      "priceMicros": 2000000,
      "originalMicros": null,
      "credits": 500
    },
    {
      "unit": "output_token",
      "conditions": {
        "min_input_tokens": 100000
      },
      "priceMicros": 4000000,
      "originalMicros": null,
      "credits": 1000
    }
  ],
  "billing": {
    "version": 1,
    "priceScope": "gateway",
    "creditsPerUsd": 250,
    "modelParams": []
  }
}
字符计费渠道片段(普通目录 providers[] 中的一项)
{
  "provider": "example-speech",
  "providerName": "Example speech",
  "discount": null,
  "preferred": false,
  "params": [
    {
      "name": "prompt",
      "type": "text",
      "required": true,
      "maxLength": 10000
    },
    {
      "name": "style_instructions",
      "type": "string",
      "default": "",
      "maxLength": 1000
    }
  ],
  "prices": [
    {
      "unit": "kchar",
      "conditions": {},
      "priceMicros": 100000,
      "originalMicros": null,
      "credits": 1
    }
  ],
  "billing": {
    "version": 1,
    "priceScope": "gateway",
    "creditsPerUsd": 250,
    "modelParams": [
      {
        "name": "prompt",
        "type": "text",
        "required": true,
        "maxLength": 10000
      },
      {
        "name": "style_instructions",
        "type": "string",
        "default": "",
        "maxLength": 1000
      }
    ],
    "characterBilling": {
      "fields": [
        "prompt",
        "style_instructions"
      ],
      "minimum": 1000,
      "block": 1000
    }
  }
}
音频预留渠道片段(普通目录 providers[] 中的一项)
{
  "provider": "example-audio",
  "providerName": "Example audio",
  "discount": null,
  "preferred": false,
  "params": [
    {
      "name": "prompt",
      "type": "text",
      "required": true,
      "maxLength": 10000
    },
    {
      "name": "style_instructions",
      "type": "string",
      "default": "",
      "maxLength": 1000
    }
  ],
  "prices": [
    {
      "unit": "input_token",
      "conditions": {
        "min_input_tokens": 0
      },
      "priceMicros": 1000000,
      "originalMicros": null,
      "credits": 250
    },
    {
      "unit": "output_token",
      "conditions": {
        "min_input_tokens": 0
      },
      "priceMicros": 2000000,
      "originalMicros": null,
      "credits": 500
    }
  ],
  "billing": {
    "version": 1,
    "priceScope": "gateway",
    "creditsPerUsd": 250,
    "modelParams": [
      {
        "name": "prompt",
        "type": "text",
        "required": true,
        "maxLength": 10000
      },
      {
        "name": "style_instructions",
        "type": "string",
        "default": "",
        "maxLength": 1000
      }
    ],
    "upstreamParams": [
      {
        "name": "prompt",
        "type": "text",
        "required": true,
        "maxLength": 10000
      },
      {
        "name": "style_instructions",
        "type": "string",
        "default": "",
        "maxLength": 1000
      }
    ],
    "metering": {
      "outputTokenHold": 1000,
      "providerCost": false
    }
  }
}

响应仅用于说明结构;ID、用量、价格和结果以实际请求为准。

给 AI 使用

把文档索引或完整接口文档交给 AI 编程助手,包含实时模型参数。