Provider Pricing API
文档目的
本文档定义一个统一的第三方价格接口,供 API 中转站对外实现,供 hvoyai.com 抓取价格数据。
更新时间: 2026-10-13 version: 1.1
修订记录:
- 2026-10-13:1.1 新增
per_second(按秒计费,只用于视频生成模型,非视频模型请不要使用per_second)。按秒使用unit_price(CNY / 秒),billing_basis必填,参考档 480p。版本号仍为1.1。
接口定义
推荐路径:
GET /api/provider/pricing
返回 Content-Type:
application/json; charset=utf-8
协议原则
- 接口返回的是最终价格,不是内部计费参数。
1.0只支持 Token 计费;1.1新增模型级计费单位,允许同一个响应里同时返回 Token 计费、按次计费和按秒计费。- 同一个模型在不同 group 下可以返回多条记录。
- 抓取方使用
model_name + group_name作为匹配键,不会跨 group 自动兜底匹配。 - 不支持的价格项可以返回
null,不要返回字符串。 cache_input_price表示缓存读价;cache_create_price和cache_create_price_1h表示缓存写价。1.1支持按秒计费,只用于视频生成模型;非视频模型请不要使用per_second,也不要为了通过校验填写分辨率。
版本兼容
1.0
1.0 只支持 Token 计费:
schema_version固定为"1.0"data.price_unit固定为"per_1m_tokens"- 每条
models[]必须返回input_price - cache 字段可选,不支持时传
null
1.1
1.1 兼容 1.0 的 Token 计费,并新增按次计费与按秒计费:
schema_version可以返回"1.1"data.price_unit是默认计费单位,支持:"per_1m_tokens":按 Token 计费,单位为CNY / 1M tokens"per_call":按次计费,单位为CNY / 次"per_second":按秒计费,单位为CNY / 秒
- 每条
models[]可以返回自己的price_unit覆盖data.price_unit - 如果某条
models[]没有返回price_unit,抓取方使用data.price_unit - 当某条模型的最终
price_unit = "per_call"时,使用unit_price表示单次调用价格;per_second时,unit_price表示每秒价格 - 当某条模型的最终
price_unit为"per_call"或"per_second"时,不需要返回input_price、output_price、cache_input_price、cache_create_price、cache_create_price_1h - 当某条模型的最终
price_unit = "per_second"时,billing_basis必填 - 因此同一个响应里可以同时包含按 Token 计费、按次计费和按秒计费的模型
按秒计费
协议 1.1 支持按秒计费,只用于视频生成模型。非视频模型请不要使用 per_second,也不要为了通过校验填写分辨率。data.price_unit 是默认单位,可以是 per_1m_tokens、per_call 或 per_second;某一条模型需要另一种计法时,写这条自己的 price_unit。三种单位可以出现在同一份价格里。per_call 的 unit_price 是元/次,per_second 的 unit_price 是元/秒。"1.0" 不能使用按次或按秒。
按秒计费时 billing_basis 必填。billing_basis.resolution 写这个秒价对应的分辨率,例如 480p,榜单和模型价格页会把它显示在价格旁边。unit_price 是这一档的最终秒价,不含参考视频加价。不要把秒价放进 per_call,也不要靠 note 说明单位,note 不参与价格计算。
参考档是 480p。你提供 480p 时,必须用 480p 报 unit_price,并把 billing_basis.resolution 设为 480p;用其它档报价的模型会被忽略。没有 480p 时,用你最便宜的一档报价;传了 variants 时,unit_price 必须等于其中最低的秒价,否则该模型被忽略。
其它清晰度放在 variants,最多 8 档,分辨率不能重复。每一档的 unit_price 是元/秒;ref_video_price 是每条参考视频的加价(元/条),没有就省略。variants 里必须有一档与 billing_basis.resolution 相同,且价格等于模型上的 unit_price,否则该模型被忽略。variants 本身格式有误时只忽略 variants,模型价格保留。只有一档但有参考视频加价时,传一项 variants。其它清晰度会显示在首页和榜单价格旁的浮层里。
分辨率请写成 480p、720p、1080p 这种形式;只能使用字母、数字、.、_、-,最长 40 个字符,不区分大小写。模型名保持稳定 ID,例如 doubao-seedance-2.5,分辨率不要写进 model_name。
一条记录只有一种主单位。同一模型既有按次价又有按秒价时,提交按秒的那一条。按 token 计费的视频模型继续使用 per_1m_tokens。
默认单位建议保持 per_1m_tokens,只在按秒的模型上覆盖 price_unit;整站都是按秒时,可以把 data.price_unit 设为 per_second。
可选安全签名
很多站点可以直接公开 GET /api/provider/pricing。
如果站点担心价格接口被外部长期抓取,可以开启 hvoy 的可选签名校验。这个能力是可选的:
- 没开启时,接口继续按公开
GET提供 - 开启后,只接受带签名的 hvoy 抓取请求
- 如果价格可以公开, 就不需要这个字段
请求头
X-Hvoy-Ts: 1747886400
X-Hvoy-Sign: <hex signature>
签名算法
站点与 hvoy 线下协商一个 auth_secret。 上线前, 请联系我们同学分配一个
签名规则:
sign = hex(HMAC-SHA256(auth_secret, ts))
其中:
ts是 Unix 时间戳(秒)- 有效期为 1 分钟
服务端验签逻辑
站点收到请求后:
- 读取
X-Hvoy-Ts - 读取
X-Hvoy-Sign - 校验
ts与当前服务器时间差不超过 60 秒 - 用本地保存的
auth_secret重新计算hex(HMAC-SHA256(auth_secret, ts)) - 比较结果是否一致,一致才放行
测试抓取默认 secret
hvoy 文档页的“抓取测试”功能会自动带签名头,并使用固定测试 secret:
hvoy_provider_pricing_test_secret_v1_20260522
建议站点在联调阶段先临时接受这个测试 secret,等正式接入后,再切换成自己独立的生产 auth_secret。
Claude 兼容性说明
参考 Claude 官方定价文档:
按下面映射:
| hvoy 字段 | Claude 对应语义 | GPT 语义 |
|---|---|---|
input_price |
Base input tokens | Input tokens |
output_price |
Output tokens | Output tokens |
cache_input_price |
Cache hits and refreshes | Cached input |
cache_create_price |
5-minute cache writes | \ |
cache_create_price_1h |
1-hour cache writes | \ |
cache_input_price等于 Claude 的cache hits and refreshes。cache_create_price作为通用“缓存写入价”字段,在 Claude 场景下固定映射为5-minute cache writes。cache_create_price_1h用来补充 Claude 的1-hour cache writes。
对非 Claude 或只有单档缓存写价的站点:
- 如果只有一个 cache write price,就填
cache_create_price cache_create_price_1h填null- 如果根本不支持缓存,3 个缓存字段都填
null
标准返回结构
混合计费返回示例
{
"schema_version": "1.1",
"success": true,
"message": "",
"data": {
"currency": "CNY",
"price_unit": "per_1m_tokens",
"site_name": "hvoy",
"site_domain": "hvoyai.com",
"updated_at": "2026-04-22T12:00:00Z",
"models": [
{
"model_name": "claude-sonnet-4-6",
"group_name": "cc",
"input_price": 7.5,
"output_price": 37.5,
"cache_input_price": 0.75,
"cache_create_price": 9.375,
"cache_create_price_1h": 15,
"enabled": true,
"note": ""
},
{
"model_name": "gpt-image-2",
"group_name": "sora",
"price_unit": "per_call",
"unit_price": 0.2,
"enabled": true,
"note": ""
},
{
"model_name": "doubao-seedance-2.5",
"group_name": "video",
"price_unit": "per_second",
"unit_price": 0.55,
"billing_basis": { "resolution": "480p" },
"variants": [
{ "resolution": "480p", "unit_price": 0.55, "ref_video_price": 8.25 },
{ "resolution": "720p", "unit_price": 1.15, "ref_video_price": 17.25 }
],
"enabled": true,
"note": ""
}
]
}
}
说明:
data.price_unit是默认值,上例默认per_1m_tokens- 第一条模型没有自己的
price_unit,所以按per_1m_tokens解析 - 第二条模型设置了
price_unit: "per_call",所以按次解析,读取unit_price - 第三条模型设置了
price_unit: "per_second",所以按秒解析,读取unit_price(480p 的秒价)、billing_basis和variants
全部按次计费返回示例
适用于图片、视频、语音等按调用次数计费的模型。例如每次调用 0.2 元:
{
"schema_version": "1.1",
"success": true,
"message": "",
"data": {
"currency": "CNY",
"price_unit": "per_call",
"site_name": "hvoy",
"site_domain": "hvoyai.com",
"updated_at": "2026-06-19T12:00:00Z",
"models": [
{
"model_name": "gpt-image-2",
"group_name": "sora",
"unit_price": 0.2,
"enabled": true,
"note": ""
}
]
}
}
字段说明
顶层字段
| 字段 | 类型 | 必需 | 说明 | 示例 |
|---|---|---|---|---|
schema_version |
string | 是 | 协议版本号。Token 计费可继续使用 1.0;按次 / 按秒计费请使用 1.1。 |
"1.1" |
success |
boolean | 是 | 接口是否成功。 | true |
message |
string | 否 | 错误信息或补充说明。成功时建议为空字符串。 | "" |
data |
object | 当 success=true 时必需 |
价格主体。 | {...} |
data 字段
| 字段 | 类型 | 必需 | 说明 | 示例 |
|---|---|---|---|---|
currency |
string | 是 | 币种。当前规范固定为 CNY。 |
"CNY" |
price_unit |
string | 是 | 默认价格单位。per_1m_tokens 表示 CNY / 1M tokens;per_call 表示 CNY / 次;per_second 表示 CNY / 秒。models[] 可用自己的 price_unit 覆盖。 |
"per_1m_tokens" |
site_name |
string | 否 | 站点名称。用于后台排查和展示。 | "hvoy" |
site_domain |
string | 否 | 站点域名。用于来源追踪。 | "hvoyai.com" |
updated_at |
string | 是 | 数据更新时间,ISO 8601 格式,用于判断价格新鲜度。 | "2026-04-22T12:00:00Z" |
models |
array | 是 | 价格列表。每一项代表一个 model + group 组合。 |
[{...}] |
data.models[] 字段
| 字段 | 类型 | 必需 | 说明 | 示例 |
|---|---|---|---|---|
model_name |
string | 是 | 模型稳定标识。它是机器匹配用 ID,不是展示名。需要与抓取方配置的 model_id 匹配。 |
"claude-sonnet-4-6" |
group_name |
string | 是 | 分组稳定标识。它是机器匹配用 ID,不是展示名。需要与抓取方配置的 upstream_channel_name 匹配。 |
"cc" |
price_unit |
string | 否 | 当前模型/分组的价格单位,可选 per_1m_tokens、per_call、per_second。不传时继承 data.price_unit。 |
"per_call" |
input_price |
number | Token 计费必需 | 输入价格,单位为 CNY / 1M tokens。当最终 price_unit 为 per_call 或 per_second 时不需要传。 |
7.5 |
output_price |
number | null | 否 | 输出价格,单位为 CNY / 1M tokens。当最终 price_unit 为 per_call 或 per_second 时不需要传。 |
37.5 |
cache_input_price |
number | null | 否 | 缓存读价格,单位为 CNY / 1M tokens。当最终 price_unit 为 per_call 或 per_second 时不需要传。 |
0.75 |
cache_create_price |
number | null | 否 | 缓存写入价格,单位为 CNY / 1M tokens。当最终 price_unit 为 per_call 或 per_second 时不需要传。 |
9.375 |
cache_create_price_1h |
number | null | 否 | 1 小时缓存写入价格,单位为 CNY / 1M tokens。当最终 price_unit 为 per_call 或 per_second 时不需要传。 |
15 |
unit_price |
number | 按次或按秒计费必需 | 最终 price_unit=per_call 时为单次调用价格,单位为 CNY / 次;最终 price_unit=per_second 时为 billing_basis.resolution 那一档的最终秒价,单位为 CNY / 秒,不含参考视频加价。必须大于 0。 |
0.2 |
billing_basis |
object | 按秒计费必需 | resolution 为该秒价对应的分辨率,请写成 480p、720p、1080p 这种形式;只能用字母、数字、.、_、-,最长 40 个字符,不区分大小写。参考档为 480p:提供 480p 时必须用 480p 报价,否则模型被忽略;没有 480p 时用最便宜的一档,传了 variants 时 unit_price 必须等于其中最低的秒价,否则模型被忽略。 |
{ "resolution": "480p" } |
variants |
array | 否 | 仅按秒计费使用,最多 8 档,分辨率不能重复(不区分大小写)。每档 resolution(写法同 billing_basis.resolution)、unit_price(CNY / 秒,大于 0)、ref_video_price(每条参考视频加价,CNY / 条,大于等于 0,没有就省略)。必须有一档与 billing_basis.resolution 相同且价格等于模型 unit_price,否则模型被忽略;variants 本身格式有误时只忽略 variants,模型价格保留。其它清晰度会显示在首页和榜单价格旁的浮层里。 |
[{ "resolution": "480p", "unit_price": 0.55 }] |
enabled |
boolean | 否 | 该 model + group 当前是否可售。缺失时默认视为 true。 |
true |
note |
string | 否 | 附加说明,不参与价格计算。 | "活动价" |
字段含义与示例
schema_version
表示当前返回遵循的协议版本。
要求:
- 必须返回
- 旧版 Token 计费接口可以继续返回
"1.0" - 新增按次 / 按秒计费或模型级
price_unit时返回"1.1"
示例:
"1.0""1.1"
success
表示接口本次是否成功返回价格数据。
示例:
truefalse
message
用于返回错误原因或补充说明。
示例:
"""service temporarily unavailable"
data.currency
表示价格币种。当前协议建议固定为人民币。
示例:
"CNY"
data.price_unit
表示默认价格单位。每条 models[] 可以用自己的 price_unit 覆盖。
示例:
"per_1m_tokens""per_call""per_second"
data.site_name
站点名称,主要用于展示和排查。
示例:
"hvoy"
data.site_domain
站点域名,主要用于标识数据来源。
示例:
"www.hvoyai.com"
data.updated_at
本批价格数据的更新时间,使用 ISO 8601 且必须带时区,例如 "2026-04-19T12:00:00Z"。
要求:
- 必须返回
- 表示当前这批价格数据的生成时间或最后更新时间
- 抓取方可据此判断价格是否过旧
示例:
"2026-04-22T12:00:00Z"
data.models[].model_name
模型稳定标识,是抓取匹配的核心字段之一。
要求:
- 必须是稳定 ID,不是展示标题
- 不应返回中文展示名、营销名、带空格修饰的标题
- 一旦对外发布,不应频繁改名
示例:
"claude-sonnet-4-6""gpt-5.4"
data.models[].group_name
分组稳定标识,是抓取匹配的核心字段之一。
要求:
- 必须是稳定 ID,不是展示标题
- 建议使用站内真正的渠道 key
- 一旦对外发布,不应频繁改名. 改名后, 原来的group会下架, 需要重新抓取,预计要6个小时后进入排行榜.
示例:
"cc""codex""default"
data.models[].input_price
输入价格,必须是最终价格,不应再要求抓取方换算。
兼容约束:
- 当最终
price_unit = "per_1m_tokens"时必需 - 当最终
price_unit为"per_call"或"per_second"时不需要传
示例:
7.51.25
data.models[].price_unit
当前模型/分组的价格单位。不传时继承 data.price_unit。
示例:
"per_1m_tokens""per_call""per_second"
data.models[].unit_price
按次或按秒价格,必须是最终价格,不应再要求抓取方换算。
兼容约束:
- 当最终
price_unit为"per_call"或"per_second"时必需,且必须大于 0 - 当最终
price_unit = "per_1m_tokens"时不需要传 per_call时单位为CNY / 次per_second时单位为CNY / 秒,表示billing_basis.resolution那一档的最终秒价,不含参考视频加价
示例:
0.21
data.models[].billing_basis
按秒计费时 unit_price 对应的档位,目前只有 resolution 一个字段。
兼容约束:
- 当最终
price_unit = "per_second"时必需,缺失或格式不对时该模型被忽略 resolution请写成480p、720p、1080p这种形式;只能使用字母、数字、.、_、-,最长 40 个字符,不区分大小写- 参考档为
480p:提供 480p 时必须用 480p 报价;没有 480p 时用最便宜的一档报价 - 按秒计费只用于视频生成模型,非视频模型请不要使用
per_second,也不要为了通过校验填写分辨率
示例:
{ "resolution": "480p" }
data.models[].variants
按秒计费的其它清晰度,可选。其它清晰度会显示在首页和榜单价格旁的浮层里。
兼容约束:
- 仅当最终
price_unit = "per_second"时使用 - 1 到 8 档,分辨率不能重复(不区分大小写)
- 每档包含
resolution(必需,写法同billing_basis.resolution)、unit_price(必需,CNY / 秒,大于 0)、ref_video_price(可选,每条参考视频的加价,CNY / 条,大于等于 0) - 必须有一档与
billing_basis.resolution相同,且价格等于模型的unit_price,否则该模型被忽略 - 有 480p 时
billing_basis.resolution必须是480p;没有 480p 时模型的unit_price必须等于其中最低的秒价,否则该模型被忽略 variants本身格式有误时只忽略variants,模型价格保留- 只有一档但有参考视频加价时,传一项
variants
示例:
[
{ "resolution": "480p", "unit_price": 0.55, "ref_video_price": 8.25 },
{ "resolution": "720p", "unit_price": 1.15, "ref_video_price": 17.25 }
]
data.models[].output_price
输出价格。如果不区分输入输出价格,可以传与 input_price 相同的值;如果不提供,可传 null。
当最终 price_unit 为 "per_call" 或 "per_second" 时,不需要传该字段。
示例:
37.57.5null
data.models[].cache_input_price
缓存读价格,不是缓存写价格。
兼容约束:
- 当最终
price_unit为"per_call"或"per_second"时,不需要传该字段 - 如果站点支持 cache read / cache hit 计价,这里填读价
- Claude 场景下,这里应填
cache hits and refreshes - 如果不支持缓存读,传
null
示例:
0.75null
data.models[].cache_create_price
缓存写入价格。
兼容约束:
- 当最终
price_unit为"per_call"或"per_second"时,不需要传该字段 - 如果站点只有一个 cache write price,就填这里
- Claude 场景下,这里应填
5-minute cache writes - 如果没有写缓存价格,传
null
示例:
9.375null
data.models[].cache_create_price_1h
1 小时缓存写入价格。
兼容约束:
- 当最终
price_unit为"per_call"或"per_second"时,不需要传该字段 - 仅当服务商存在单独的 1h cache write 定价时填写
- Claude 场景下,这里应填
1-hour cache writes - 大多数非 Claude 服务商可直接传
null
示例:
15null
data.models[].enabled
表示该 model + group 当前是否可售。
语义约束:
true表示该组合当前可售false表示该组合当前明确不可售或临时下线- 如果字段缺失,抓取方默认按
true处理 - 如果某个
model + group组合根本没有出现在返回列表中,表示本接口未提供该组合价格,抓取方应视为未匹配,不应自动推断为下线
建议:
- 如果一个组合已知存在但当前下线,优先保留该记录并返回
enabled: false - 不要通过直接删除该条记录来表达临时下线
示例:
truefalse
data.models[].note
补充说明字段,不参与抓取逻辑。
示例:
"活动价""暂停售卖"
完整返回示例
{
"schema_version": "1.1",
"success": true,
"message": "",
"data": {
"currency": "CNY",
"price_unit": "per_1m_tokens",
"site_name": "hvoy",
"site_domain": "hvoyai.com",
"updated_at": "2026-04-22T12:00:00Z",
"models": [
{
"model_name": "claude-sonnet-4-6",
"group_name": "cc",
"input_price": 7.5,
"output_price": 37.5,
"cache_input_price": 0.75,
"cache_create_price": 9.375,
"cache_create_price_1h": 15,
"enabled": true,
"note": ""
},
{
"model_name": "gpt-5.4",
"group_name": "codex",
"input_price": 1.25,
"output_price": 7.5,
"cache_input_price": 0.125,
"cache_create_price": 0.5,
"cache_create_price_1h": null,
"enabled": true,
"note": ""
},
{
"model_name": "gpt-image-2",
"group_name": "sora",
"price_unit": "per_call",
"unit_price": 0.2,
"enabled": true,
"note": ""
},
{
"model_name": "doubao-seedance-2.5",
"group_name": "video",
"price_unit": "per_second",
"unit_price": 0.55,
"billing_basis": { "resolution": "480p" },
"variants": [
{ "resolution": "480p", "unit_price": 0.55, "ref_video_price": 8.25 },
{ "resolution": "720p", "unit_price": 1.15, "ref_video_price": 17.25 }
],
"enabled": true,
"note": ""
}
]
}
}
失败返回示例
{
"schema_version": "1.1",
"success": false,
"message": "service temporarily unavailable"
}
说明:
- 当
success=false时,data可以省略。 - 如果站点希望继续返回
data作为调试信息,也可以保留,但抓取方不应依赖该行为。
抓取匹配规则
hvoyai.com 抓取时按以下方式匹配:
- 读取
data.models列表 - 使用
model_name + group_name匹配本地监控配置 - 计算该条记录的最终计费单位:
- 如果
models[].price_unit有值,使用models[].price_unit - 否则使用
data.price_unit
- 如果
- 按最终计费单位读取价格字段:
per_1m_tokens:读取input_price、output_price、cache_input_price、cache_create_price、cache_create_price_1hper_call:读取unit_priceper_second:读取unit_price,另读billing_basis与variants
- 读取该条记录的:
enabled
因此第三方实现时应保证:
model_name是稳定 ID,不是展示名group_name是稳定 ID,不是展示名- 不同
model + group组合不要重复。如果重复,抓取方只会取其中一条
未匹配语义:
- 如果接口中没有某个
model + group,抓取方应记为未匹配 - 未匹配不等于明确下线
数值约束
建议遵循以下约束:
- 所有价格字段应为 JSON number
- 不要返回字符串数字,例如
"7.5" - 价格不得为负数
- 缺失值使用
null,不要使用空字符串 - 建议保留 2 到 6 位小数
per_call与per_second模式下unit_price不得为 0;临时免费或下线请使用enabled: false或不返回该组合variants每一档的unit_price必须大于 0;ref_video_price必须大于等于 0,没有加价时省略variants最多 8 档
最小可用实现
如果第三方只想先实现一个最小版本,最少可返回:
{
"schema_version": "1.1",
"success": true,
"data": {
"currency": "CNY",
"price_unit": "per_1m_tokens",
"updated_at": "2026-04-22T12:00:00Z",
"models": [
{
"model_name": "claude-sonnet-4-6",
"group_name": "cc",
"input_price": 7.5,
"output_price": 7.5
}
]
}
}
按次计费的最小版本:
{
"schema_version": "1.1",
"success": true,
"data": {
"currency": "CNY",
"price_unit": "per_1m_tokens",
"updated_at": "2026-06-19T12:00:00Z",
"models": [
{
"model_name": "gpt-image-2",
"group_name": "sora",
"price_unit": "per_call",
"unit_price": 0.2
}
]
}
}
有按秒模型时,最少提供 price_unit、unit_price、billing_basis.resolution:
{
"schema_version": "1.1",
"success": true,
"data": {
"currency": "CNY",
"price_unit": "per_1m_tokens",
"updated_at": "2026-10-13T12:00:00Z",
"models": [
{
"model_name": "doubao-seedance-2.5",
"group_name": "video",
"price_unit": "per_second",
"unit_price": 0.55,
"billing_basis": { "resolution": "480p" }
}
]
}
}
建议后续补充:
cache_input_pricecache_create_pricecache_create_price_1henablednote
抓取 warning 原因码
抓取价格接口时,被跳过或被部分忽略的模型会产生一条 warning,格式为:
models[<i>] <原因码>:<模型>/<分组>
<i> 是该条在 data.models 里的下标。variants_dropped 末尾多一段原因,例如 models[<i>] variants_dropped:<模型>/<分组>/too_many。
可以用抓取测试页自查接口,结果里会显示这些 warning 和说明。
| 原因码 | 说明 |
|---|---|
invalid_object |
这一项不是对象,已忽略。 |
missing_model_or_group |
缺少 model_name 或 group_name,已忽略。 |
model_price_unit_requires_1.1 |
schema_version 为 "1.0" 时不能写模型级 price_unit,这条已忽略;需要按次或按秒请改用 "1.1"。 |
unsupported_price_unit |
不支持的 price_unit,这条已忽略。支持 per_1m_tokens、per_call、per_second。 |
duplicate_model_group |
同一 model_name + group_name 出现多次,只会使用其中一条,请去掉重复项。 |
invalid_input_price |
input_price 缺失、不是数字或小于 0,这条已忽略。 |
zero_input_price_skipped |
input_price 为 0,这条已忽略。 |
invalid_unit_price |
unit_price 缺失、不是数字或小于 0,这条已忽略。 |
zero_unit_price_skipped |
unit_price 为 0,这条已忽略。 |
invalid_billing_basis |
按秒计费必须提供 billing_basis.resolution,只能用字母、数字、.、_、-,最长 40 个字符;这条已忽略。按秒计费只用于视频生成模型,非视频模型请不要使用 per_second。 |
billing_basis_mismatch |
variants 里找不到 billing_basis.resolution 这一档,或这一档的价格与 unit_price 不同;这条已忽略。 |
billing_basis_not_reference |
variants 里有 480p,但没有用 480p 报价。请把 unit_price 改成 480p 的秒价,billing_basis.resolution 设为 480p;这条已忽略。 |
billing_basis_not_lowest |
没有 480p 时必须用最便宜的一档报价,unit_price 不是 variants 里最低的秒价;这条已忽略。 |
variants_dropped |
variants 格式有误,只忽略了 variants,模型价格保留。原因见下表。 |
variants_dropped 的原因:
| 原因 | 说明 |
|---|---|
not_array |
不是数组 |
empty |
是空数组 |
too_many |
超过 8 档 |
invalid_item |
某一档不是对象 |
invalid_resolution |
某一档的 resolution 不合规 |
invalid_unit_price |
某一档的 unit_price 无效或不大于 0 |
invalid_ref_video_price |
某一档的 ref_video_price 无效或小于 0 |
duplicate_resolution |
分辨率重复(不区分大小写) |
旧站文档归档;API 规范可能已更新。