公开价格接口
免认证、只读的 JSON 价格源。想要「程序里能自动拿到实付价」,读它。
地址
| 用途 | 地址 |
|---|---|
| 主地址 | https://status.fluxtoken.ai/pricing/provider-pricing.json |
| 备用地址 | https://fluxtoken.ai/fx/monitor/pricing/provider-pricing.json |
| 模型广场 | https://cn.fluxtoken.ai/api/v1/model-plaza |
| 公开设置 | https://cn.fluxtoken.ai/api/v1/settings/public |
主地址与备用地址返回同一份文件,内容一致。主站不可用时切备用。
curl -s https://status.fluxtoken.ai/pricing/provider-pricing.json这是实付价,广场是基准价
价格接口返回的 input_price / output_price 已经乘过分组倍率,是你要掏的钱。 模型广场展示的是基准价,不含倍率。
同一个模型在不同分组下是不同的价格 —— 这个接口按「模型 × 分组」逐条给出,正好对上。
顶层结构
{
"schema_version": "1.1",
"success": true,
"message": "",
"data": {
"currency": "CNY",
"price_unit": "per_1m_tokens",
"site_name": "FluxToken",
"site_domain": "fluxtoken.ai",
"updated_at": "2026-10-08T10:15:11Z",
"models": ["..."]
}
}| 字段 | 说明 |
|---|---|
schema_version | 结构版本号。你的解析逻辑应该先看它 |
success | 是否成功。为 false 时看 message |
data.currency | 见下节的坑:声明为 CNY,但数值实际是美元 |
data.price_unit | 计价单位基准,当前是 per_1m_tokens |
data.site_name / data.site_domain | 站点标识,用于确认抓到的不是别人的数据 |
data.updated_at | 上游生成的快照时间(UTC)。不是你的请求时间 |
data.models | 价格明细数组 |
⚠️ currency 字段的已知瑕疵
data.currency 声明为 "CNY",但里面所有数值的实际语义是美元。
这是上游价格接口的字段瑕疵:字段名与数值对不上。接入时按美元处理, 不要照 currency 字段去做人民币换算 —— 那样算出来的金额会差一个量级。
判断依据不是这个字段,而是模型广场与控制台里展示的价格口径 —— 它们都是美元。
文档站在所有页面里也统一按 USD / 每 100 万 tokens 表述。
明细字段
data.models 里每一条对应一个「模型 × 分组」。按计费模式分成两种形态。
按 token 计费的模型
{
"model_name": "claude-opus-4-6",
"group_name": "【Claude】Max · 稳享(主)",
"enabled": true,
"note": "",
"input_price": 5,
"output_price": 25,
"cache_input_price": 0.5,
"cache_create_price": 6.25,
"cache_create_price_1h": 10
}| 字段 | 含义 |
|---|---|
model_name | 模型名,与控制台、客户端里填的完全一致 |
group_name | 分组名,含全角 【】 与中点 ·,逐字对照 |
enabled | 该条是否启用 |
note | 备注,通常为空 |
input_price | 输入价(实付,USD / 1M tokens) |
output_price | 输出价(实付,USD / 1M tokens) |
cache_input_price | 缓存读价,通常最便宜 |
cache_create_price | 缓存写价 |
cache_create_price_1h | 1 小时缓存写的价格 |
缓存三兄弟怎么读
cache_input_price 是命中缓存后读的那个价,最低; cache_create_price 是你写入缓存时要付的钱; cache_create_price_1h 是长效(1 小时)缓存的写入价。
做成本估算时别把 cache_input_price 当成「缓存相关的一切」—— 写缓存是要单独付钱的。
按次计费的模型(生图)
生图模型没有 token 价,改用 per_call 形态:
{
"model_name": "gpt-image-2",
"group_name": "【GPT】生图模型 · 福利",
"price_unit": "per_call",
"unit_price": 0.03,
"enabled": true,
"note": ""
}| 字段 | 含义 |
|---|---|
price_unit | per_call,表示按次 |
unit_price | 每次调用的价格(实付,USD) |
这类没有 input_price / output_price 字段。解析代码要按 price_unit 分支, 别硬编码字段名。参见生图模型。
分档计价
部分模型按上下文长度分档,超出档位后单价上浮。这类模型的档位信息在 模型广场接口 的 intervals 里, 可通过 <ModelExplorer /> 直观查看。
估算长上下文任务时要留意
一次请求的上下文超过档位阈值,这一次的费用整体按高档位算。 用单一单价乘 token 数会低估。以控制台的扣费记录为准。
刷新与抓取建议
| 项 | 值 |
|---|---|
| 上游刷新周期 | 约 2 分钟一轮 |
| 建议抓取间隔 | 不低于 15 分钟 |
| 建议做法 | 用 updated_at 判断有没有变,变了再更新本地缓存 |
| 响应头 | 支持 ETag 与 Last-Modified,可以带 If-None-Match / If-Modified-Since 拿 304 |
价格是按天、按活动周期变的量,不是行情。十分钟抓一次和一天抓一次,结果几乎一样。
curl -sI https://status.fluxtoken.ai/pricing/provider-pricing.json \ -H "If-None-Match: \"<上次拿到的 ETag>\""⚠️ 浏览器里 fetch() 会被拦截
这个接口当前不返回 CORS 响应头。
- 服务端、脚本、后端定时任务抓取:正常,不受影响
- 浏览器前端(网页里的 JS)直接
fetch():会被浏览器拦截
不要在前端页面里直接拉这个接口
没有 Access-Control-Allow-Origin,浏览器会拦下响应,控制台报 CORS 错误。 正确做法是由你自己的后端抓取后再转发给前端。
OPTIONS 预检请求会返回 405,同样是这个原因。
同域的模型广场接口与公开设置接口不受此影响。
模型广场接口
GET https://cn.fluxtoken.ai/api/v1/model-plaza
| 项 | 值 |
|---|---|
| 鉴权 | 免认证(model_plaza_require_auth: false) |
| 内容 | 分组、分组说明、模型清单、基准价、分档 intervals |
返回结构大致是:
{
"code": 0,
"message": "success",
"data": {
"description": "",
"groups": ["..."]
}
}每个分组里带 name、description、platform、rate_multiplier(分组倍率)、 long_context_pricing_enabled 和 models[];每个模型里带 pricing 与 official_pricing。
- 要实付价 → 用
pricing接口 - 要分组倍率、分组说明、分档结构 → 用这个接口
两者配合就能自己算出任意「模型 × 分组」的价格:基准价 × 倍率。
公开设置接口
GET https://cn.fluxtoken.ai/api/v1/settings/public
免认证,返回站点的公开开关与配置,例如注册是否开放、站点版本、余额提醒阈值等。 适合做「上线前自检」或给自家脚本判断当前站点状态。
不要依赖它做业务判断
这是站点的公开配置,字段可能随版本增减。只读它明确需要的字段, 代码里对缺失字段要能容错。
服务状态
各分组的实时可用率在状态页:
注意区分两件事:价格接口给出的是「多少钱」,状态页给出的是「现在通不通」。 价格再低,渠道波动时也不可用。文档不承诺 SLA,可用性一律以状态页实时数据为准。