跳到主要内容
注册

insufficient_quota:一个不是限流的 429

OpenAI 的账单类 429,人们最熟悉的是「You exceeded your current quota, please check your plan and billing details」这句报错和 insufficient_quota 这个错误类型。遇到它时,多数人的第一反应是降低请求频率,结果毫无变化。因为它是账单状态,而不是速度限制:按 OpenAI 错误码指南(2026-10-09 核对),error.code 会写明原因——预付额度用完、你设的预算上限触顶,或 OpenAI 分配的用量上限触顶。国内开发者遇到它往往还多一层:想修就得绑一张官方收的卡,而这张卡根本办不下来。本页把账单类 429 和限流 429 分开讲清,逐个错误码给出官方侧的修复步骤,以及卡在支付环节时的预充值钱包路线。

报错到底在说什么

在官方 OpenAI API 上,账单类 429 会在 error.code 里写明原因:credit_balance_exhausted(预付额度已用完)、organization_spend_limit_exceeded 或 project_spend_limit_exceeded(你设置的每月硬性预算上限已触顶),或 organization_usage_limit_exceeded(OpenAI 给组织分配的每月用量上限已触顶)。按 OpenAI 错误码指南(2026-10-09 核对),更宽泛的 error.type 仍可能是 insufficient_quota。不管是哪个 code,等多久、退避多少次都不会恢复。下面是预付额度耗尽时的一种示例错误体:

response.json
{
  "error": {
    "message": "...",
    "type": "insufficient_quota",
    "code": "credit_balance_exhausted"
  }
}

为什么会触发

  • 预付额度已用完——error.code 为 credit_balance_exhausted,按量付费账号最常见的原因。
  • 没有绑定支付方式,或购买额度时卡被拒,新的额度没有进来——国内发行的卡在官方渠道经常过不去。
  • 组织或项目的每月硬性预算上限已触顶——organization_spend_limit_exceeded 或 project_spend_limit_exceeded;只设预算提醒不会拦截请求。
  • 组织达到了 OpenAI 给它分配的每月用量上限——organization_usage_limit_exceeded,与你自己设的上限是两回事。
  • 这把 Key 所属项目自己的预算上限已用完——按 OpenAI 的说明,其他项目只要自己的上限和组织上限都没触顶,就仍可继续调用。

账单类 429 与限流 429 的区别

官方 API 对两种情况都用 429,但两者需要完全相反的处理方式,动手前先看 error.code:

账单类 429 与限流 429 的区别
账单类 429限流 429
error.code 写的是什么credit_balance_exhausted、organization_spend_limit_exceeded、project_spend_limit_exceeded 或 organization_usage_limit_exceeded(error.type 仍可能是 insufficient_quota)按所在档位报「Rate limit reached for requests」或 token 限流消息;流量爬升过快时报 slow_down
含义没有可用额度,或预算、用量上限已触顶。每分钟请求数或 token 数超限,或流量爬升太快。
重试有用吗没用——OpenAI 指南写明,重试账单、预算或配额类错误不会恢复访问。有用——有 Retry-After 时按它等待,否则带抖动退避。
修复方式充值、修复支付方式、调高或取消硬性预算上限,或申请更高的用量上限。降频、合并请求、逐步爬升,或申请更高限额。

在官方 API 侧修复

  • 先看 error.code,它会写明是四种账单原因里的哪一种。
  • credit_balance_exhausted:打开账单设置看预付额度余额;已耗尽就充值,购买失败的话先修复支付方式。
  • organization_spend_limit_exceeded 或 project_spend_limit_exceeded:在组织限额或项目设置里调高或取消硬性上限,或者等到下个月重置;一个保守的月度上限会在月中把这个错误悄悄带回来。
  • organization_usage_limit_exceeded:申请更高的核准用量上限,或联系 OpenAI 支持。
  • 重试清不掉这些 code:调高或取消上限后,要等更新生效才会恢复(按 OpenAI 预算上限指南,2026-10-09 核对)。

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

很多国内开发者面对的是一个死循环:修复它需要绑一张官方收的卡,而这张卡办不下来,账号永远停在 $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 写明账单原因(credit_balance_exhausted、organization_spend_limit_exceeded、project_spend_limit_exceeded、organization_usage_limit_exceeded),限流则有自己的消息或 slow_down code。Router One 把两件事分开:钱的问题返回 402,速度的问题返回 429——你的重试逻辑不会在一个付不了钱的请求上空转。

我几乎没发多少请求,怎么会「超配额」?

账单类 429 与请求量无关。预付余额已用完、你设置的月度预算上限已花完,或 OpenAI 的月度用量上限已触顶,下一个请求就会返回 429,哪怕你只发了几个请求。

切到网关需要重写代码吗?

不需要。Router One 实现了 OpenAI Chat Completions 规范,改 base URL 和 API Key 即可,SDK 和请求代码保持不变。细节见 OpenAI 兼容 API 页。

怎么防止一个项目把整个余额花光?

为每个项目单独建一把 Router One Key,并在控制台 → API 密钥里给每把 Key 设置 maxSpend。某把 Key 触顶时只有它返回 402,其他 Key 照常工作——按 Key 预算正是钱包模型的意义所在。

在 Router One 上还会遇到 429 吗?

正常付费使用不设低额度固定上限;每把 Key 和每个账户按默认的每分钟请求数与每分钟 token 数限流,上游约束也可能生效。遇到 429 时请退避重试(有 Retry-After 时按它等待);需要更高限额时发邮件到 support@router.one 申请调高 Key 或账户限额。