用量与计费
看懂您的账单:每个响应中的用量、每个密钥的余额接口、实际费率、429 速率限制,以及余额用完后会发生什么。
每个响应都会附带逐请求的用量,可放心据此计费。余额快照可通过 GET /v1/dashboard/balance 获取。
全部模型、功能与价格 面向 AI 智能体的文档索引:https://oneprovider.dev/docs/llms.txt 逐请求用量
每个 /v1/messages 响应都包含一个带有 token 计数的 usage 对象:
{
"usage": {
"input_tokens": 48,
"output_tokens": 92,
"cache_creation_input_tokens": 0,
"cache_read_input_tokens": 0
}
} 对于 chat-completions ,相同的数字以 prompt_tokens、completion_tokens 和 total_tokens 的形式给出。
密钥余额:GET /v1/dashboard/balance
返回密钥当前的余额。响应即时,且使用与 API 相同的密钥。
仅支持 Authorization: Bearer 此端点只接受通过Authorization: Bearer sk-... 请求头传入的密钥(与同样接受 x-api-key 的 /v1/messages 不同)。 bash curl -H "Authorization: Bearer sk-YOUR_KEY_HERE" \
https://api.oneprovider.dev/v1/dashboard/balance 响应 200 OK:
{
"object": "balance",
"balance_usd": 54.77,
"expires_at": "2026-07-29T19:00:00Z",
"is_active": true,
"last_synced_at": "2026-06-29T19:52:00Z"
} balance_usd:密钥的可用余额,单位为 USD。expires_at:密钥到期时间(ISO 8601,UTC;没有到期时间则为null)。is_active:密钥被暂停或停用时为false。last_synced_at:余额最近一次更新的时间。
兼容 OpenAI 的余额端点
NextChat、LobeChat 等应用会从 OpenAI 风格的路径读取余额。以下路径可使用同一个密钥,放在 Authorization: Bearer 中:
| 端点 | 返回内容 |
|---|---|
GET /v1/dashboard/billing/subscription | hard_limit_usd:剩余余额 |
GET /v1/dashboard/billing/usage | total_usage:始终为 0(该字段以美分计) |
GET /v1/dashboard/billing/credit_grants | total_available:剩余余额 |
错误:缺少或无效的 Authorization: Bearer 请求头返回 401;超出速率限制时返回 429(余额端点按 IP 限速)。余额和逐请求花费也可以在个人中心查看(@oneprovider_robot 机器人和 app.oneprovider.dev 中的“用量”页面)。
实际费率
我们按每百万 token 固定价格计费,价格即 /pricing 上公布的费率。没有倍数,没有最低消费,也不做取整。计算公式如下:
textcost = (input_tokens / 1_000_000) * rate_in
+ (output_tokens / 1_000_000) * rate_out
+ (cache_read_input_tokens / 1_000_000) * (rate_in * 0.10)
+ (cache_creation_input_tokens / 1_000_000) * (rate_in * 1.25) - 大多数模型的缓存读取按输入价格的 10% 计费。
- 大多数模型的缓存创建(首次写入缓存断点)按输入价格的 125% 计费。
- 公式中的 0.10 和 1.25 只是典型倍数:各模型确切的缓存读取和缓存写入价格见模型表格 。
余额用完时
密钥的余额归零后,用它发起的请求会返回 429,其中 error.type 为 insufficient_balance,error.code 为 insufficient_quota,并带有请求头 x-should-retry: false:
HTTP/1.1 429 Too Many Requests
x-should-retry: false
Content-Type: application/json
{
"type": "error",
"error": {
"type": "insufficient_balance",
"code": "insufficient_quota",
"message": "Insufficient balance on this API key. Top up: dashboard.oneprovider.dev"
}
} 请不要重试:先查看个人中心余额和密钥的限额(“密钥”页面),必要时为个人中心充值,然后重新发送请求(怎么做 )。其他状态码请见错误码 。
密钥有效期由您设置;余额不会过期 您可以在个人中心设置密钥的有效期(最长 90 天,可延长)。余额不会按计时扣减:没有按月重置、承诺用量或订阅;资金在用完之前一直可用。Rate-limit (429)
短时间内请求过多会返回 429 rate_limit_error。响应中可能带有以秒为单位的 Retry-After 请求头:
HTTP/1.1 429 Too Many Requests
Retry-After: 2
Content-Type: application/json
{
"type": "error",
"error": {
"type": "rate_limit_error",
"message": "Rate limit exceeded; retry later"
}
} 如果有 Retry-After,请至少等待这么长时间;否则请以逐渐延长的间隔重试。如果持续出现 429,请降低客户端并发数。被限速的请求不会消耗余额。
逐请求用量的准确性
逐请求的 usage 对象之和与每个密钥的实际花费完全一致。2026-05-08 对 24 小时内 25 845 个请求的抽样验证显示:最大偏差小于 $0.001(小数点后第 6 位的舍入)。请放心依据逐请求的 usage 计费。