Router One

insufficient_quota:一个不是限流的 429

「You exceeded your current quota, please check your plan and billing details」带着 HTTP 429 出现,多数人第一反应是降低请求频率——然后毫无变化。因为 insufficient_quota 是账单状态而不是速度限制:账号背后已经没有可用额度了。国内开发者遇到它往往还多一层:想修就得绑一张官方收的卡,而这张卡根本办不下来。本页把两种 429 分开讲清,给出官方侧的修复步骤,以及卡在支付环节时的预充值钱包路线。

报错到底在说什么

官方 OpenAI API 返回 HTTP 429,type 和 code 都是 insufficient_quota。状态码虽然是 429,但等多久、退避多少次都不会恢复:

response.json
{
  "error": {
    "message": "You exceeded your current quota, please check your plan and billing details. ...",
    "type": "insufficient_quota",
    "code": "insufficient_quota"
  }
}

为什么会触发

  • 预付额度用尽或过期——按量付费账号最常见的原因。
  • 没有绑定支付方式,或充值/自动续费时卡被拒——国内发行的卡在官方渠道经常过不去。
  • 账号或项目的月度预算上限已触顶。
  • 免费或活动额度结束,没有新的额度接上。
  • 这把 Key 隶属的组织/项目额度耗尽——即使你另一个项目还有余额。

insufficient_quota 与 rate_limit_exceeded 的区别

官方 API 对两种情况都用 429,但两者需要完全相反的处理方式,动手前先分清你遇到的是哪一个:

insufficient_quotarate_limit_exceeded
含义账号背后没有可用额度或预算。每分钟请求数或 token 数超过了你所在档位。
重试有用吗没用——账单状态不变,错误就不变。有用——退避后下一个窗口通常成功。
修复方式充值、修复支付方式,或调高预算上限。降频、合并请求,或申请更高限额。

在官方 API 侧修复

  • 先打开平台账单页看额度余额——显示 $0.00 的话,报错的原因就是它。
  • 添加或更新支付方式,然后购买额度或重新开启自动续费。
  • 检查账号与项目两级的预算上限;一个保守的月度上限会在月中把这个错误悄悄带回来。
  • 账单变更后等几分钟——配额状态可能滞后于支付。

如果卡住你的是支付,不是用量

很多国内开发者面对的是一个死循环:修复它需要绑一张官方收的卡,而这张卡办不下来,账号永远停在 $0。Router One 用预充值钱包拆掉了这个依赖。支付宝或银行卡在同一个托管收银台完成充值,也支持 6 条链上的 USDT/USDC(Tron、BSC、以太坊、Polygon、Base、Arbitrum),无需美国信用卡。余额用尽返回明确的 402(而不是误导性的 429);每把 API Key 还可以单独设置 maxSpend 上限,一个项目失控不会掏空整个钱包。

把客户端指向网关

请求代码不用改——换 base URL 和 Key,从 /models 目录选一个模型 ID,同一个调用直接工作:

terminal.sh
curl https://api.router.one/v1/chat/completions \
  -H "Authorization: Bearer sk-your-router-one-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "<model-id-from-/models>",
    "messages": [{"role": "user", "content": "你好"}]
  }'

常见问题

账单问题为什么用 429 这个状态码?
官方平台把吞吐限制和额度耗尽都放在 429 下,只靠 error code 字段区分。Router One 把两件事分开:钱的问题返回 402,速度的问题返回 429——你的重试逻辑不会在一个付不了钱的请求上空转。
我几乎没发多少请求,怎么会「超配额」?
insufficient_quota 与请求量无关。余额 $0、卡片过期、或月度上限花完,都会让当天的第一个请求就命中它。
切到网关需要重写代码吗?
不需要。Router One 实现了 OpenAI Chat Completions 规范,改 base URL 和 API Key 即可,SDK 和请求代码保持不变。细节见 OpenAI 兼容 API 页。
怎么防止一个项目把整个余额花光?
为每个项目单独建一把 Router One Key,并在 Dashboard → API Keys 里给每把 Key 设置 maxSpend。某把 Key 触顶时只有它返回 402,其他 Key 照常工作——按 Key 预算正是钱包模型的意义所在。
在 Router One 上还会遇到 429 吗?
正常付费使用不设低额度固定上限;但平台仍保留滥用防护、账号级保护限制和上游约束。若遇到 429,可在 Dashboard -> Logs 查看原因或联系支持提升额度。