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_quota | rate_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 查看原因或联系支持提升额度。