Pricing & billing · Sept 28, 2026

AI agent spend limits: which caps actually stop the meter

Every platform an agent runs on now ships a feature called a spend limit, and the phrase hides three different behaviours. Two of them fail your requests, one pauses the project, one only sends you an email, and the API platform most developers actually use has no per-user cap at all. We read all five sets of docs today. The short version: the switch you want exists, it's just rarely the default and sometimes not sold to you.

Data panel comparing what happens when each platform's spend limit is reached: OpenAI and Cloudflare block requests, AWS pauses the project, Google Cloud spend caps are in preview, Anthropic's per-member limits are Enterprise-only
Our summary of the five sets of docs, read on September 28, 2026. Built by the editor from the vendor pages linked below — not a vendor screenshot. OpenAI's own page puts the same distinction in one row: a spend alert "sends a notification; API traffic continues", while a hard spend limit makes "affected API requests return a 429 error" (developers.openai.com).

The short version

Same three words on five platforms

None of this is a scandal. It is a documentation problem with a money-shaped consequence: the feature is named the same everywhere, behaves differently everywhere, and the differences are only visible if you read past the feature page. Here is what each vendor's own docs say today.

PlatformWhat it's calledWhat happens at the numberWho can use it
OpenAI API Spend alert / hard spend limit, set per organization and per project Alert: notification only, traffic continues. Hard limit: 429 with organization_spend_limit_exceeded or project_spend_limit_exceeded, and only if "Enforce a hard limit" is switched on Anyone with permission to manage org or project settings
Anthropic Spend Limits API, per Claude Enterprise member Blocks a member's spend once the effective limit for that member is reached; admins approve or deny increase requests Claude Enterprise organizations only — not Claude Console (Claude Platform) organizations; usage credits must be turned on
Cursor Set User Spend Limit, in the Teams Admin API Per-member dollar cap on AI usage inside the team; integer dollars, null removes the cap Team admins; bulk route updates up to 100 members per request (Preview)
AWS Spend limit, per project Pauses the project, which stops its resources; notifications at 50%, 75% and 90%. Minimum limit is the greater of $20 or a conservative estimate of likely spend Paid-plan accounts, project owners; the docs say the new experience is being released "to a limited number of customers"
Google Cloud Budget alerts, or spend cap budget (Preview) Alert budget: does not cap spending. Spend cap budget: blocks new usage for the specified service in that project at 100%; in-flight requests finish, persistent resources keep billing, a human lifts the cap Project-level; spend caps are a Preview feature and apply to eligible services only
Cloudflare AI Gateway Spend limits (Beta), per gateway 429 blocks the request when cumulative spend in the window hits the limit. Scoped by provider, model or custom metadata — split by agent_id and each agent gets its own budget bucket Up to 20 rules per gateway; applies to BYOK and Unified Billing traffic alike

Two rows in that table are worth pausing on. Google's documentation says out loud what most vendors only imply: "Setting an alerts-only budget doesn't automatically cap Google Cloud or Google Maps Platform usage or spending." That is one sentence, and it is the difference between a budget and a limit. And Cloudflare's is the only one designed for the way agents actually spend — per agent, per team, per environment, rather than one number for the whole company.

OpenAI: the switch exists, most people never flip it

The OpenAI docs are unusually plain about the gap. A spend alert "sends a notification; API traffic continues". A hard spend limit makes "affected API requests return a 429 error". They are separate controls on the same page, and the hard limit needs the Enforce a hard limit step when you save. If you ever set a limit and then watched a larger invoice arrive, that checkbox is the likely explanation, and it matches the complaint that showed up on Hacker News this week under the title "FYI: OpenAI 'spend limits' aren't always limits". It was a two-point post, so it never got an audience, but one commenter confirmed the pattern from the same week: "Had the same thing happen yesterday. I wonder how many more!" (LeoJB, HN).

Screenshot of the Hacker News thread titled FYI: OpenAI spend limits aren't always limits
The post that started this page: two points, one comment, and a checkbox nobody had flipped. Screenshot of the thread, taken September 28, 2026.

Three details from the same page matter more than the toggle.

Anthropic: the per-seat cap is sold to Enterprise

Anthropic's Spend Limits API is the most complete version of the idea on this list — and the most restricted. It resolves an effective spend limit for every member from a hierarchy: a per-user override if one exists, otherwise the group limit, otherwise the seat tier, otherwise the organization default. It exposes period-to-date spend per member, and it ships a queue of increase requests that an admin can approve or deny. That last part is the tell that this was built for procurement, not for a developer with a card.

"The Spend Limits API is available to Claude Enterprise organizations only. It is not available to Claude Platform (Claude Console) organizations."

Anthropic, Spend Limits API, read Sept 28, 2026

So if you pay Anthropic directly and use the Console, the control you get is a credit balance and the usage dashboards, not a per-seat cap. Two practical consequences: a team lead on the API plan cannot cap a reckless teammate at the vendor level, and any story about "we just set a spend limit in Claude" is about a Claude Enterprise contract rather than a developer account.

AWS and Google: the cap is the project, not the request

Both cloud platforms shipped the same shape of control this year, and both made the same design decision: when the meter runs, they stop the workload rather than filter the request. AWS's spend limits pause a project and stop its resources, with early warnings at 50%, 75% and 90%, and a floor on how low the limit can be set — "the greater of $20 or a conservative estimate of your likely spend", because hitting the limit is meant to be a surprise you nearly avoided. Google's spend cap budgets block new usage for a named service in a project, let in-flight requests finish, keep charging for persistent resources such as compute and storage, and require a human to lift the cap.

The Hacker News thread on the AWS launch (22 points) contained the question this whole category turns on. orf asked what happens when you set $20 and then immediately fire $40 of requests: "will 50% of those requests be blocked or will I be charged $40? I doubt they've added a globally consistent billing/charge counter to the S3 read path, so either I get charged $40 or AWS eats the additional $20." The answer, from someone who read the page, was that it is "a hard stop at the project level, with optional gradual controls in front of it. Nothing per-request" (thasli-p). An AWS engineer replied in the same thread (BeepBoop-Fab) that it had been a long time coming. Nobody in the thread disputed the shape of it: at this scale, billing state is eventually consistent, so the cap protects the project, not the request.

That is the right trade for a sandbox and the wrong one for production. Pausing a project at 3am because an experiment hit its ceiling is a feature if the project was an experiment.

The one pattern built for agents

The gateway approach inverts the vendor caps: instead of one number per company, it gives you a rule per dimension and blocks the request. Cloudflare's AI Gateway docs describe spend limit rules scoped by provider, model, or custom metadata, in two modes — split by value (each distinct value gets its own budget bucket) or filter by value (the rule applies only to one value). Attach an agent_id to every request and split by it, and a runaway agent burns its own bucket instead of the shared one. Up to 20 rules per gateway, and the docs are honest about the same caveat as OpenAI: "Spend limits are eventually consistent. The current request's cost is recorded after completion, so a burst of concurrent requests can briefly exceed the limit before enforcement catches up."

This is not a Cloudflare advertisement. The point is architectural: the vendor cap protects the account, the gateway rule protects the process, and only the second one is granular enough to survive an agent that retries.

What to do this week, in order

  1. Give every agent its own key and project. Organization-level limits are the last line, not the first. A per-project cap is what makes one agent's bad night survivable.
  2. Open the limits screen and check for the enforce box. On OpenAI that means Edit spend limit → Enforce a hard limit. If the only thing configured is an alert, you have a notification, not a limit.
  3. Move agent traffic to prepaid credits. The balance is the only cap that cannot lose a race with a request.
  4. If you run agents across more than one provider, put a gateway in front and write one rule per agent. Spend by agent, not by month, is the number you can actually debug.
  5. Assume clients and finance will ask for a hard number. Tell them which of the three meanings you implemented, and where that vendor's "eventually consistent" sentence lives. Being the person who read the docs is the whole job.

Who should care, and who can skip it

The judgement call

How this was researched. Primary documentation only, all read on September 28, 2026: OpenAI's spend limits guide (including the alert-versus-limit table and the error-code list), Anthropic's Spend Limits API page (including the Enterprise-only note and the limit hierarchy), Cursor's Teams Admin API reference (per-user and bulk spend-limit endpoints), AWS Account Management's spend limit page (project pause, the $20 floor, 50/75/90% notifications, limited release), Google Cloud Billing's budgets and spend cap budget pages (the alerts-only quote and the Preview caveats), and Cloudflare's AI Gateway spend limits page (429 behaviour, dimensions, 20-rule cap, eventual consistency). User reaction comes from Hacker News with per-comment links. We did not compare prices, because this page is about controls, not rates; no vendor roadmap claim appears here that is not in the vendor's own documentation.

Sources