All posts

OpenAI vs Anthropic vs Google Cloud: what a spend limit actually stops

All three providers let you name a monthly number. Only some of them reject requests when you reach it. A comparison of granularity, the error you get back, the enforcement lag, and what each one does to an agent run in flight.

OpenAI logoAnthropic logoGoogle Cloud logo

OpenAI · Anthropic · Google Cloud

Comparison

All three large model providers let you type a monthly number into a form. What differs is the minute you cross it, and the answers are far enough apart that the same number produces a blocked service on one platform and an email on another.

It matters more than it used to because the thing spending the money changed. A chat interface spends at human speed. An agent with a tool loop spends at whatever speed its retry logic allows, and it does that at 03:00 on a Sunday.

Alert or hard stop

Every cost control on these three platforms is one of two kinds: a notification that leaves traffic running, or a gate that rejects new requests.

That reads as obvious, and procurement conversations still get it wrong, because both are called a budget in at least one of the three consoles. An alert tells you money left, after it left. A hard stop refuses work. Both are worth having, one to buy a person some time, the other for the hours when nobody is watching a dashboard.

OpenAI: organization and project hard limits

OpenAI separates the two kinds explicitly. A spend alert sends a notification while API traffic continues; a hard limit makes affected requests return a 429, per the spend limits guide.

There are two levels. An organization limit applies across all projects. A project limit applies to that project only, which is the useful one: it gives a single agent or integration a ceiling that cannot eat the rest of the account. The error code names the gate, organization_spend_limit_exceeded or project_spend_limit_exceeded. Hard limits reset with the next monthly cycle, and raising or removing one you have reached lets traffic resume once the update propagates.

The guide describes no per-key limit, so a per-agent ceiling means one project per agent. OpenAI announced hard spend limits for all API Platform accounts on 23 July 2026 and rolled them out that week, calling them one of the most frequently requested API features. If a colleague remembers the platform having no working cap, that memory is recent and out of date.

Anthropic: tier caps and your own workspace limits

Anthropic gives organizations on the Start, Build and Scale tiers a monthly spend cap they did not choose, then lets you set a lower one for the organization or for an individual workspace.

Built-in monthly spend caps on the Claude API: $500 on Start, $1,000 on Build, $200,000 on Scale. Organizations on the Custom tier have no monthly cap.

Claude API rate limits documentation, retrieved 23 September 2026

The two kinds fail differently, and that detail belongs in your code. Reaching the tier cap returns HTTP 429 with error type rate_limit_error and error.details.error_code set to enforced_spend_limit_reached, and usage pauses until 00:00 UTC on the first of the next month, unless a higher limit is granted sooner. Reaching a limit you set yourself returns HTTP 400 with type invalid_request_error and a message beginning “You have reached your specified API usage limits”, with a workspace variant of the same wording, per the rate limits documentation. Raising or removing your own limit restores access sooner.

Granularity runs through workspaces, up to 100 per organization by default, each with its own spend limit tab. A workspace limit can sit below the organization limit but not above it. Two constraints shape any design around this: limits cannot be set on the Default Workspace, and organization-wide limits always apply even when the workspace limits together exceed them. On the Claude API, per-user monthly spend limits exist in exactly one place, the Claude Code workspace, which the documentation names as the only workspace supporting them. A separate spend limits API sets monthly limits per member, and the documentation restricts it to Claude Enterprise organizations.

Google Cloud: alert-only budgets and spend caps

On Google Cloud the ordinary budget stops nothing, and the documentation says so plainly: an alerts-only budget “doesn’t automatically cap Google Cloud or Google Maps Platform usage or spending.”

That sentence has produced a lot of surprise invoices. An alerts-only budget triggers email or Pub/Sub notifications, and after you create one it may take several hours before the first notification arrives.

The control is a separate product. A spend cap budget, which the documentation still labels Preview, blocks all new usage for one service in one project once estimated costs pass the target, covering the Gemini API, the Gemini Enterprise Agent Platform, Cloud Run and Cloud Run functions. The scope is the tight part: one project and one service per cap, with no billing account, folder or multi-project version, so twelve projects mean twelve caps. The block is also the only one of the three that does not end by itself: usage stays paused until somebody edits the budget and lifts the cap. Underneath sits a tier cap, the same pattern as Anthropic. The Gemini API billing documentation puts the monthly maximum at $250 on Tier 1 and $2,000 on Tier 2, and between $20,000 and $100,000 on Tier 3; when the billing account total reaches its tier limit, service pauses for every project linked to that account until the first of the next month.

Quotas are the other Google lever and a different instrument. A quota is enforced at the API layer and returns a 429, but it counts requests or tokens per minute and per day rather than money per month. Quotas cap the rate of a runaway; spend caps cap its total.

The three consoles compared

OpenAI APIClaude APIGoogle Cloud
Alert that leaves traffic runningSpend alertsSpend alert thresholdsAlerts-only budgets
Gate that rejects requestsHard limitsTier cap and your own limitSpend cap budgets
Levels you can setOrganization, projectOrganization, workspaceOne project plus one service
Per-user limitNot documentedClaude Code workspace onlyNot documented
Response at the cap429, project_spend_limit_exceeded429 on the tier cap, 400 on your ownNew usage blocked for that service
ResetNext monthly cycle00:00 UTC on the 1stOnly a manual lift, tier cap on the 1st
Lifting the limitResumes after propagationRestores access soonerUp to one hour to resume
Documented overageRecorded spend can exceed the limit slightlyNot documentedOverages billed as normal
Requests already in flightNot documentedNot documentedComplete and accrue charges

Enforcement lag and the running agent

None of the three stops at the exact number you typed, because all three decide from measured spend that trails the requests producing it, and for an agent that gap is where the money goes.

OpenAI states this directly: enforcement is not instantaneous, and recorded spend can slightly exceed the configured amount while the limit state propagates. Google is more specific. Billing data processing in AI Studio can lag by around ten minutes, and the documentation says you may see overages beyond a project cap when billing data has not processed before further charges accrue, naming long-running work like batch completions and agent sessions as the case where that happens. The spend cap documentation adds that enforcement is not instant and that cost overages are billed as normal. Google also states what the other two leave unsaid: requests already running when the cap triggers finish normally and accrue their charges.

For a normal integration the lag is a rounding error. For an agent it is the whole risk: ten minutes of a tool loop with parallel calls costs real money. One more reason the agent or workflow question deserves a deliberate answer: a workflow with an LLM step has a bounded cost per run, an agent loop has a cost bounded only by whatever stops it.

A 429 says nothing about why it arrived. A retry wrapper treats a spend cap exactly like a busy minute, and retrying is the SDK default. Anthropic documents the field that distinguishes the two cases and notes that the spend-cap response carries no retry-after header, so automatic retries fail, with one documented exception, a Claude Code workspace limit can return a 429 that does carry the header; OpenAI documents a distinct error code. A client reading neither will loop against a closed gate.

Our four rules

We do the same four things on all three platforms. The mechanics differ, the job does not.

One project or workspace per agent, not per team. This is the only granularity all three vendors actually give you, so it is the unit your ceiling has to match. An agent sharing a project with your production API shares its ceiling, and then the ceiling protects nothing.

A hard limit on top of an alert, never instead of it. Set only the hard limit and your first signal is an outage.

The limit below the tier cap, with room for the lag. If the documented overage window is ten minutes of unmetered running, the number has to leave headroom for ten minutes of your peak traffic.

Spend-limit errors handled explicitly. That response should page someone and stop the loop, not feed the retry wrapper.

The cloud contract and the deployment path that keeps data where it has to be normally decide the platform before anyone talks about cost. That is the right order, and all three sets of controls work once you know which of the two kinds you hold. If you would rather set this up than find out the hard way, book a strategy call.

Frequently asked questions about API spend limits

Does a Google Cloud budget stop spending?

An alerts-only budget does not. The documentation states that it does not automatically cap usage or spending, and that budget alert emails do not prevent the use or billing of services. The feature that blocks is a spend cap budget, scoped to one project and one service.

What error does an OpenAI project hard limit return?

HTTP 429, with project_spend_limit_exceeded for a project limit or organization_spend_limit_exceeded for an organization limit. The limit resets with the next monthly cycle, and raising or removing it lets traffic resume once the change propagates.

Is there a spend limit per API key?

Not on these three platforms as documented. OpenAI’s levels are the organization and the project, Anthropic’s are the organization and the workspace, and a Google spend cap covers one service in one project. The practical substitute is one project or workspace per workload, with its own key inside it.

Why did my agent keep retrying after the spend limit hit?

Because the block arrives as a 429, the same status as an ordinary rate limit, and the official SDKs retry that status by default. Anthropic’s spend-cap response omits the retry-after header and carries a distinct error code for exactly this reason. Read the code rather than the status.

How far past the limit can spend go?

Further than zero on at least two of the three. OpenAI states that recorded spend can slightly exceed the configured amount. Google puts a figure on it for AI Studio billing data, around ten minutes of processing delay, with overages in that window billed as normal.


Sources, all retrieved 23 September 2026: OpenAI spend limits guide; Anthropic rate limits and workspaces; Google Cloud spend cap budgets, budgets and Gemini API billing. Tier figures change more often than the mechanics, which is what the retrieval dates above are for.

Related reading