Source: https://01router.com/zh/docs/models/minimax-h3-max-turbo/model-detail Base URL: https://01router.com/api/v1 # MiniMax H3 Max Turbo · 查询单个模型 模型对象包含 slug、name、type、vendor、params 和 providers。每个渠道提供 params、prices、billing,支持根据公开字段在前端本地报价。 `GET /api/v1/models/{slug}` 公开接口 · 无需 API Key ## 价格数据在哪里 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[] | 字段 | 类型 | 含义与用法 | | --- | --- | --- | | iconUrl | string \| null | 模型图标的完整 URL(SVG 或 WebP),没有图标时为 null。 | | iconMono | boolean | 为 true 时表示图标是单一深色,深色背景下需要反色显示。 | | fromMicros | number \| null | 所有渠道中最低的每单位单价,单位为微美元;模型没有价格时为 null。 | | maxMicros | number \| null | 所有渠道中最高的每单位单价,单位为微美元;模型没有价格时为 null。 | | fromUnit / maxUnit | string \| null | fromMicros / maxMicros 对应的计费单位(request / second / image / kchar / input_token / output_token)。展示价格时必须带上单位。 | | fromOriginalMicros / maxOriginalMicros | number \| null | 最低价 / 最高价那条规则有折扣时的原价,没有折扣时为 null,仅用于展示。 | ### 使用说明 项目目录(?project=)同样返回 iconUrl、iconMono、fromMicros、fromUnit、maxMicros、maxUnit,价格已乘项目倍率;不返回 fromOriginalMicros 和 maxOriginalMicros。 ## params:输入参数定义 模型 params 描述模型整体能力;渠道 params 描述该渠道实际支持的参数。billing.modelParams、billing.upstreamParams 使用相同的字段结构。以下表格描述数组中的一个参数对象,可选字段可能不出现在 JSON 中。 ### params[] | 字段 | 类型 | 含义与用法 | | --- | --- | --- | | name | string | 输入字段名,例如 prompt、duration、num_images。 | | type | string | text / string 为文本;integer 为整数;number 为数值;boolean 为布尔值;enum 为枚举;image 为一个 http(s) 图片 URL;images 为图片 URL 数组。 | | label / description | string | 显示名称和说明;缺省时可直接展示 name。 | | required | boolean | 是否必填,缺省为 false;补默认值后仍为空的必填项不能提交。 | | default | string \| number \| boolean | 输入缺省、null 或空字符串时使用的默认值;缺省不等于 0。 | | options | array | 允许的字符串、数字或布尔值列表。enum 必须从列表中选择,并保留选项值的类型。 | | min / max | number | 数值型参数的最小值与最大值,包含边界;integer 还必须为整数。 | | maxItems | number | images 参数最多允许的图片数。 | | maxLength | number | 文本最大长度,按 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[] | 字段 | 类型 | 含义与用法 | | --- | --- | --- | | unit | string | request / second / image / kchar / input_token / output_token;分别按次、秒、张、千字符、百万输入 Token、百万输出 Token 计价。 | | conditions | object | 条件名到字符串、数字或布尔值的映射。空对象表示无条件;普通规则全部匹配后优先选条件最多的一条。Token 的 min_input_tokens 为输入长度档位,缺省为 0。 | | priceMicros | number | 每个计费单位的微美元单价,1,000,000 微美元 = 1 美元。已经包含网关售价设置;项目目录还已包含项目倍率,不再乘折扣或加价倍率。 | | originalMicros | number \| null | 普通目录返回的对比原价单价;null 表示没有可展示的折扣原价。项目目录不返回此字段。 | | credits | number | 普通目录返回的规则展示积分,不能乘本次用量当作总积分。总积分必须从总美元金额与 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 | 字段 | 类型 | 含义与用法 | | --- | --- | --- | | version | number | 当前为 1。表示计算规则版本,不是锁价凭证;不支持的版本应停止报价并刷新目录。 | | priceScope | "gateway" \| "project" | gateway 为网关收费价;project 为项目转售展示价,已含项目倍率。 | | creditsPerUsd | number \| null | 每美元对应的网关积分数;项目目录为 null,不据此计算网关扣费积分。 | | modelParams | array | 模型层参数定义,结构同 params[],先用它校验输入。 | | upstreamParams | array | 最终计费所用参数定义,结构同 params[];存在时在渠道校验之后再用它校验并补默认值。 | | characterBilling | object | 按字符计费的附加规则。缺省时统计 prompt 的 JavaScript 字符串 length,至少 1 个字符,不自动按整千取整。 | | characterBilling.fields | string[] | 需要合计字符数的输入字段名;仅在 characterBilling 存在时返回。缺省输入按空字符串计算。 | | characterBilling.minimum | number | 最低计费字符数;仅在 characterBilling 存在时返回。 | | characterBilling.block | number | 字符数先向上取整到该块大小的倍数,再应用 minimum;省略或为 0 时不做块取整。 | | metering | object | 存在时按音频用量计费,生成前报价为 Token 预留金额;最终结算可能不同。 | | metering.outputTokenHold | number | 预留输出 Token 数;仅在 metering 存在时返回。 | | metering.providerCost | boolean | true 表示最终费用依赖上游报告,不能仅凭公开单价推算最终费用;省略或 false 时按实际 Token 用量结算。 | | unavailableReason | string | 当前配置不可报价的原因。非空时停止计算并提示用户,不显示为免费。 | ### 使用说明 音频预留:存在 billing.metering 时,先将 prompt 与 style_instructions 拼接,取 UTF-8 字节数 + 256 作为输入 Token 估值,输出 Token 取 outputTokenHold,再用上述 Token 公式计算预留金额。最终按真实用量结算;providerCost=true 时以所需的上游费用报告进行结算。 项目售价:billing.priceScope=project 的单价已包含项目售价倍率,不要重复加价;billing.creditsPerUsd=null,不能据此计算网关扣费积分。POST /quote 即使携带 project,返回的仍是网关收费价和积分,不包含项目转售加价。 一致性:同一价格配置、指定渠道与输入下,按上述规则计算可与后端保持一致。目录缓存 60 秒,更新价格后需重新获取;前端报价不锁价。自动路由还考虑渠道可用性、优先级和熔断,本地最低价不保证实际成交价。参数不合法、版本不支持或无匹配价格时应提示无法报价,不能显示为免费。 ## 输入参数 | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | slug | string · path | yes | 模型目录中的 slug;项目密钥也可使用项目自定义的模型 slug。 | options: [ "minimax-h3-max-turbo" ] | ## 输出字段 | Field | Type | Required | Description | Constraints | | --- | --- | --- | --- | --- | | 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 ```bash curl 'https://01router.com/api/v1/models/minimax-h3-max-turbo' ``` ## 200 · application/json ```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[] 中的一项) ```json { "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[] 中的一项) ```json { "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[] 中的一项) ```json { "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 } } } ```