HTTP 429 却没有 retry-after
error_code 是 enforced_spend_limit_reached
2026-08-30 核对的 Anthropic 文档:Start / Build / Scale 档月消费上限分别是 $500 / $1,000 / $200,000。撞到后请求仍返回 HTTP 429、type 仍是 rate_limit_error,但没有 retry-after,重试会一直失败直到下月 1 日 00:00 UTC。
四个可单独引用的判别点
看起来像普通限流
HTTP 状态仍是 429,error.type 仍是 rate_limit_error,所以很多 SDK 会按速率限制自动重试。
和真·速率 429 的分水岭
档位月消费上限触发的 429 不带 retry-after;SDK 默认重试会反复失败,直到下月 1 日 00:00 UTC 或你申请到更高档位。
Start / Build / Scale 月封顶
这三个数字是 Anthropic 文档写明的档位月消费上限。Custom 档没有公开封顶,由客户成功团队约定。
Messages API 的 error_code
看 error.details.error_code。是这串就不要重试。自己设的更低 spend limit 撞到时,返回的是 HTTP 400 invalid_request_error,不是这条。
这条 429 其实不是「你发太快了」
Anthropic 把限制分成两类:spend limits(一个自然月内组织最多能花多少钱)和 rate limits(每分钟请求数 / 输入 token / 输出 token)。两类超限都可能返回 HTTP 429,而且 error.type 都叫 rate_limit_error。差别在 details:档位月消费上限触发时,Messages API 会带 error.details.error_code = enforced_spend_limit_reached,响应没有 retry-after。官方示例文案是 “You have reached your API usage limits: your organization has crossed its monthly API usage threshold… You will regain access on 2026-09-01 at 00:00 UTC.” 恢复时间固定为下个月 1 日 00:00 UTC,除非你先申请到更高档位。自己在 Billing 页设的更低 spend limit 是另一条路:撞到后返回 HTTP 400、type 为 invalid_request_error,文案以 “You have reached your specified API usage limits” 开头。Claude Code workspace 的限额又单独检查,超限时可以是带 retry-after 的 429。
为什么现在更容易和 weekly limit、速率 429 搞混
2026-06-26 Anthropic 官方 changelog 把用量档位收成 Start / Build / Scale 三档,并公开了 $500 / $1,000 / $200,000 的月封顶。Agent 工作流把 token 消耗拉高之后,Start/Build 档的组织会在速率还远没打满的时候先撞上月封顶。表面仍是 429,于是和「You've hit your weekly limit」、以及带 retry-after 的真·速率 429 叠在一起。站内已有 529 vs 429 vs weekly 的判别页,但那一页把 429 主要当成可退避的速率限制;本页补的是第三种 429:月账单封顶,退避无效。
时间线
Anthropic 官方 changelog:用量档位合并为 Start / Build / Scale 三档,Sonnet 与 Haiku 的速率限额在每一档与 Opus 对齐;多数组织升档、没有组织被降档。月消费上限按档位生效。
platform.claude.com/docs/en/api/rate-limits 写明:撞到档位月封顶后用量暂停到下月 1 日 00:00 UTC;429 无 retry-after;error_code 为 enforced_spend_limit_reached。
若未申请到更高档位,访问在这一时刻恢复。官方示例把恢复日写成 2026-09-01 00:00 UTC,那是文档里的样例日期,以你收到的错误文案为准。
已确认 vs 常见误解
已确认
Anthropic 官方文档(2026-08-30 抓取)确认:档位月封顶 429 的 type 仍是 rate_limit_error,但没有 retry-after;Messages API 用 error.details.error_code = enforced_spend_limit_reached 区分它和速率 429。Start/Build/Scale 月封顶为 $500 / $1,000 / $200,000。自己设的更低 spend limit 走 HTTP 400。
常见误解
「所有 429 等几十秒再试就好」——对带 retry-after 的速率 429 成立,对 enforced_spend_limit_reached 不成立。另一条误解是「这和 Claude Code 的 weekly limit 是同一件事」:weekly limit 是订阅套餐周期配额,月封顶是 Console 组织的 API 美元上限,重置时钟一个跟订阅周期走、一个跟日历月 UTC 走。
该怎么应对:能自己解决 vs 必须改账单
速率 429:看 retry-after,退避即可
错误体是 rate_limit_error、响应带 retry-after 或 anthropic-ratelimit-* 头,这是 RPM / ITPM / OTPM 或加速限制。降并发、尊重 retry-after、用 prompt cache 降低未缓存输入,即可在分钟级恢复。不要把它和月封顶混为一谈。
enforced_spend_limit_reached:退避没有用
去 Console 的 Rate limits 页申请更高档位,或等到下月 1 日 00:00 UTC。自己设的 400 spend limit 可以在 Billing 页调高或取消后立刻恢复。本月封顶已经打满、又不能等的任务,需要换一条不走这个 Console 组织余额的计费路径。
三步判别法(官方机制,不换平台也能用)
第一步看 HTTP 状态:429 还是 400。第二步看错误体:有没有 error.details.error_code = enforced_spend_limit_reached,有没有 retry-after。第三步看恢复时间文案:写着某月 1 日 00:00 UTC,基本就是档位月封顶;写着指定 spend limit、且是 400,就是你自己设的上限;Claude Code 订阅配额则通常是 “You've hit your weekly limit” 这类产品文案,不一定带标准 API 错误体。能在本组织解决的,优先申请提档或改 Billing 上限,本页不描述绕过 Anthropic 鉴权或消费控制的做法。
这条报错和 QCode 账单不是同一件事
enforced_spend_limit_reached 绑定的是 Anthropic Console 组织的月消费档位,不是某一家转售平台的余额。QCode 按官方价 × 服务费率从预付余额扣费,走的是另一条计费路径;本页不声称 QCode 永远不会限流。如果你被自己的 Anthropic 组织月封顶卡住、任务又不能等到下月 1 日,用另一把已开通的 API 密钥把请求切到其它在售模型,是官方文档之外的工程过渡办法。
常见问题
enforced_spend_limit_reached 和普通 429 怎么一眼分清?
看两件事:有没有 retry-after,以及 error.details.error_code 是不是 enforced_spend_limit_reached。前者缺、后者在,就按月封顶处理,不要按速率限制重试。
Start / Build / Scale 的月封顶分别是多少?
Anthropic 文档(2026-08-30 抓取)写的是 Start $500、Build $1,000、Scale $200,000,按自然月、美元计。Custom 档没有公开封顶。以 Console Billing / Rate limits 页上你组织的数字为准。
我自己设的 spend limit 也是这个 error_code 吗?
不是。自己设的组织或 workspace spend limit 撞到时,文档说返回 HTTP 400、type 为 invalid_request_error,文案以 “You have reached your specified API usage limits” 开头。Claude Code workspace 超限则可能是带 retry-after 的 429。不要用同一套重试逻辑处理这三种。
能不能靠换模型躲开月封顶?
不能。月封顶按组织、按自然月的美元累计,不按单个模型。换 Claude 家族里的另一个型号仍走同一笔组织账单。要继续跑,只能提档、等下月 1 日,或把流量切到这个 Console 组织之外的计费账户。
SDK 自动重试会怎样?
官方 SDK 默认会重试带 retry-after 的限流。月封顶 429 没有 retry-after,自动重试会失败到恢复时刻。看到 enforced_spend_limit_reached 应立刻停掉重试,去看 Billing / Rate limits。
这和 Claude Code 的 weekly limit 是一回事吗?
不是。weekly limit 是订阅套餐在滚动周里的用量配额;enforced_spend_limit_reached 是 API 组织的月美元封顶。一个常见于 Claude Code / claude.ai,一个常见于 Console API key。重置时钟也不同。
信息来源
月封顶数字、429 无 retry-after、error_code enforced_spend_limit_reached、自设 spend limit 返回 400,均来自 Anthropic 官方文档 platform.claude.com/docs/en/api/rate-limits,抓取日期 2026-08-30。错误原文 “You have reached your API usage limits: your organization has crossed its monthly API usage threshold” 来自同一页的示例 JSON。Start / Build / Scale 三档合并日期来自 platform.claude.com/docs/en/release-notes/overview 的 2026-06-26 条(2026-08-30 抓取)。本页不引用任何非公开内部配置。
相关阅读
529 vs 429 vs Weekly Limit
另外两种常被当成「额度用完」的报错:上游过载、速率限制、订阅周配额。
Claude usage limit reached
订阅产品里的 5 小时窗与周配额,和本页的 API 月美元封顶不是同一套规则。
Claude weekly limit 2026
周配额与 +50% 临时加成的时间线,避免和月封顶的日历重置搞混。
本页是对 Anthropic 公开文档的技术说明,不代表 Anthropic 官方立场;具体档位、封顶金额与恢复时刻以你组织在 Claude Console 看到的数字和错误原文为准。QCode 不绕过 Anthropic 的鉴权、风控或支出上限。