RouteMux Docs

余额与花费查询

用 API key 在代码里查询钱包余额和已花金额。

下面四个只读端点回答两个问题:「我还剩多少?」和「我花了多少?」,不用打开控制台。 它们用你调模型时的同一把 API key 鉴权,不计费,由 RouteMux 自己应答。

你想知道调用
这把 key 还能花多少?GET /v1/user/balance
我的账户今天、本月花了多少?GET /v1/account/info
这一把 key 花了多少,额度还剩多少?GET /v1/key/info
我用的工具只认 OpenAI 的计费端点GET /v1/dashboard/billing/subscription

key 的传法与调模型完全相同,见 认证。所有金额单位都是 美元(USD)。

账户余额与花费

curl https://api.routemux.com/v1/account/info \
  -H "Authorization: Bearer $ROUTEMUX_API_KEY"
{
  "data": {
    "wallet": {
      "available_credit_usd": "42.180000",
      "total_credit_usd": "42.180000",
      "negative_credit_limit_usd": "0.000000",
      "month_spend_usd": "57.820000",
      "day_spend_usd": "3.410000"
    },
    "burn_rate": {
      "avg_daily_usd": "1.927333",
      "days_remaining": 21
    },
    "alerts": { "balance_low_threshold_usd": "5.000000" },
    "auto_topup": null,
    "campaign_credits": []
  },
  "requestId": "…"
}
字段含义
wallet.available_credit_usd现在能花的钱:余额减去正在进行中的请求预留的金额。
wallet.total_credit_usd包含上述预留在内的余额。
wallet.negative_credit_limit_usd余额最低能降到多少,低于它新请求会被拒绝 —— 为 0 或一个很小的负数。见 负余额。
wallet.day_spend_usd今天已扣金额,从 UTC 0 点起算。
wallet.month_spend_usd本自然月已扣金额,从本月 1 日 UTC 0 点起算。
burn_rate.avg_daily_usd最近 30 天总花费除以 30。
burn_rate.days_remaining按这个速度,可用余额还能撑几整天。最近 30 天没有花费时为 null。
alerts.balance_low_threshold_usd你在控制台设置的低余额提醒阈值,未设置时为 null。
auto_topup预留字段,目前恒为 null。
campaign_credits账户上限定模型的活动额度。每一项包含 campaignName、models、grantedUsd、remainingUsd、callsThisPeriod、nextRefreshAt 和 periodEndsAt。

花费统计的是账户下所有 key 的合计,按实际扣费金额计算,用赠送额度支付的部分也算在内; 失败的请求记为 0。一个请求在结算完成后才计入花费 —— 进行中时,它只通过预留金额让 available_credit_usd 变小。

单把 key 的花费与额度

curl https://api.routemux.com/v1/key/info \
  -H "Authorization: Bearer $ROUTEMUX_API_KEY"
{
  "data": {
    "key": {
      "id": "…",
      "name": "prod-backend",
      "tags": [],
      "status": "active",
      "expires_at": null
    },
    "wallet": {
      "available_credit_usd": "42.180000",
      "today_spend_usd": "3.410000",
      "month_spend_usd": "57.820000"
    },
    "limits": {
      "monthly_credit_limit_usd": "50.000000",
      "monthly_used_usd": "12.500000",
      "monthly_remaining_usd": "37.500000",
      "daily_credit_limit_usd": null,
      "daily_used_usd": "0.830000",
      "daily_remaining_usd": null,
      "allowed_models": [],
      "rate_windows": []
    }
  },
  "requestId": "…"
}

这把 key 自己的花费在 limits 里,不在 wallet 里

这里的 wallet.* 与 /v1/account/info 一样,是整个账户的数据。这把 key 自己花了多少, 看 limits.monthly_used_usd 和 limits.daily_used_usd。

字段含义
key.expires_atkey 的过期时间,永不过期时为 null。
limits.monthly_used_usd这把 key 从本月 1 日 UTC 0 点起的扣费;如果你之后重置过这把 key 的用量,则从重置时起算。
limits.daily_used_usd这把 key 从额度时区当天 0 点起的扣费(额度时区在控制台的 key 设置里,默认跟随账户时区);重置过则从重置时起算。
limits.monthly_credit_limit_usd、limits.daily_credit_limit_usd这把 key 设置的花费上限。null 表示不限。
limits.monthly_remaining_usd、limits.daily_remaining_usd上限减已用,最小为 0。不限时为 null。
limits.allowed_models这把 key 限定可调的模型。为空表示你有权限的所有模型都能调。
limits.rate_windows预留字段,目前恒为空。

简单余额

只想要一个数字的脚本和工具用这个:

curl https://api.routemux.com/v1/user/balance \
  -H "Authorization: Bearer $ROUTEMUX_API_KEY"
{ "balance": 37.5, "is_active": true, "currency": "USD" }

balance 是这把 key 还能花的钱,取三者中最小的:钱包可用余额、这把 key 的月度剩余额度、 每日剩余额度。所以设了小额上限的 key,这里显示的数会比钱包余额小。

和其他端点不同,它直接返回对象(没有 data 外层),balance 是数字而不是字符串。 base URL 只填到域名根的工具,也可以用不带 /v1 的 /user/balance。

OpenAI 格式的计费端点

有些工具通过 OpenAI 的计费端点读取余额。这两个端点都支持,带不带 /v1 前缀都可以:

curl https://api.routemux.com/v1/dashboard/billing/subscription \
  -H "Authorization: Bearer $ROUTEMUX_API_KEY"
{
  "object": "billing_subscription",
  "has_payment_method": true,
  "soft_limit_usd": 37.5,
  "hard_limit_usd": 37.5,
  "system_hard_limit_usd": 37.5,
  "access_until": 0
}

hard_limit_usd 与上面的 balance 是同一个数。GET /v1/dashboard/billing/usage 恒返回 total_usage: 0,所以按「上限减用量」计算的工具得到的正好是你的真实余额。它不反映你花了多少 —— 查花费请用 /v1/account/info。

单次请求花了多少

这些端点只返回汇总,不返回单次请求的扣费。每个请求的精确扣费在控制台的 日志 里, 见 可观测性与用量。

key 本身不可用时

这些端点做的 key 检查与调模型完全相同。一把此刻调不了模型的 key,在这里同样会拿到错误,而不是余额:

情况HTTP错误码
没有传 key401AUTH_API_KEY_REQUIRED
key 不存在或已吊销401AUTH_INVALID_API_KEY
key 在控制台被停用403AUTH_API_KEY_INACTIVE
key 已过期403AUTH_API_KEY_EXPIRED
key 的 30 天额度用完429LIMIT_API_KEY_QUOTA_EXHAUSTED
key 的每日额度用完429LIMIT_API_KEY_DAILY_QUOTA_EXHAUSTED
账号被暂停403AUTH_ACCOUNT_SUSPENDED

所以成功的响应描述的一定是一把可用的 key —— is_active 为 true,key.status 为 active。 如果想在某把 key 额度用完时仍能看到账户余额,请用一把不设上限的 key 来查。

频率限制

每把 key 每分钟最多调用这些端点 60 次,每个 IP 每分钟最多 300 次。超出会返回 HTTP 429 LIMIT_RATE_EXCEEDED,并带 Retry-After 头。 每分钟查一次就足够了。

错误的返回格式与调模型相同,见 错误。

On this page