Short answers
Amazon Bedrock limits Claude by tokens per minute per model and per Region, counting input and output tokens together; some models also have a requests-per-minute quota, and each account has a daily token cap.
Each Claude output token counts 5x, 10x or 15x against the quota depending on the model, and the request's max_tokens is reserved when the request starts, so throttling begins well before your billed tokens reach the quota.
A ThrottlingException is HTTP 429 and means your account exceeded a Bedrock quota; AWS recommends exponential backoff with jitter, a quota increase, and Reserved Tier or Provisioned Throughput for sustained load.
Larger quota increases go to AWS Support for review; AWS gives priority to accounts already consuming their quota and may deny the rest.
Claude on Standard Compute is served across several clouds, so one provider's quota or outage doesn't stop your work: a throttled or failed request goes to another provider of the same model automatically.
The quotas that apply to Claude
| Quota | Scope | What it counts |
|---|---|---|
| Cross-Region InvokeModel tokens per minute | Per model, per Region | Input and output tokens combined, for calls through a cross-Region inference profile |
| On-demand InvokeModel tokens per minute | Per model, per Region | Input and output tokens combined, for single-Region on-demand calls |
| InvokeModel requests per minute | Per model, per Region | Requests per minute, for the models that have one; Claude Opus 4.7 and 4.8 have no RPM quota |
| Cross-Model Max Tokens Per Day | Per account, per Region | Tokens per day across all supported models |
Despite the names, these quotas cover every inference API that calls the model on bedrock-runtime, including Converse, Responses and Chat Completions. The newer bedrock-mantle endpoint is counted separately, with separate input and output tokens-per-minute quotas and no RPM quota.
Published defaults for current Claude models
| Model | Cross-Region tokens per minute | Global cross-Region tokens per minute | Cross-Region requests per minute |
|---|---|---|---|
| Claude Opus 5.5 | 30,000,000 | 30,000,000 | Not published |
| Claude Opus 5 | 30,000,000 | 30,000,000 | Not published |
| Claude Opus 4.8 | 30,000,000 | 30,000,000 | No RPM quota |
| Claude Sonnet 5.5 | 6,000,000 | 6,000,000 | Not published |
| Claude Sonnet 5 | 6,000,000 | 6,000,000 | Not published |
| Claude Sonnet 4.6 | 6,000,000 | 6,000,000 | 10,000 |
| Claude Haiku 5.5 | 10,000,000 | 10,000,000 | Not published |
| Claude Haiku 4.5 | 5,000,000 | 5,000,000 | 10,000 |
Why the quota drains faster than the bill
Bedrock converts output tokens into quota usage at a burndown rate. AWS lists 10x for Claude Opus 5.5, Sonnet 5, Opus 5 and Fable 5.1, 15x for Claude version 4.8 models, and 5x for Claude models version 4.7 and below. The page names no separate rate for Sonnet 5.5 or Haiku 5.5. You are billed only for the tokens actually used.
The quota is also charged up front. When a request starts, Bedrock deducts the input tokens plus the full max_tokens value, and returns the unused part when the request ends. Cache reads don't count toward the quota. Applying AWS's formula to one Claude Opus 5.5 request:
input tokens 20,000
max_tokens 32,000
output generated 2,000
reserved at start 52,000
= input + max_tokens
charged at the end 40,000
= input + output x 10
billed tokens 22,000
= input + outputSetting max_tokens close to the real output size is the cheapest way to fit more concurrent requests under the same quota.
Cross-Region inference
Cross-Region inference sends a request through an inference profile, and Bedrock picks the Region that serves it. Calls through a profile use the cross-Region quota for the model, which is separate from the on-demand quota for single-Region calls.
| Profile | Where requests run | Price |
|---|---|---|
| Geographic (US, EU, APAC) | Regions within that geography listed in the profile | Standard pricing |
| Global | Any supported AWS commercial Region | About 10% lower, according to AWS |
ThrottlingException and the errors next to it
| Error | HTTP | What it means | What AWS recommends |
|---|---|---|---|
| ThrottlingException | 429 | The request exceeded your account's Bedrock quotas | Retry with exponential backoff and jitter, check your quotas, request an increase, or use Reserved Tier or Provisioned Throughput for sustained load |
| ModelNotReadyException | 429 | Some runtime operations also return 429 for this | Inspect the error type, not only the status code |
| ServiceUnavailable | 503 | Temporary capacity constraint, unrelated to your quota | Back off and retry; switch Region or use cross-Region inference if it persists |
| overloaded_error | 529 | The model lacks serving capacity at the moment | Honor Retry-After, avoid synchronized retries, use cross-Region inference |
AWS's example retry budget is six attempts in total, the first request plus five retries. In boto3:
import boto3
from botocore.config import Config
config = Config(retries={
"total_max_attempts": 6,
"mode": "standard",
})
client = boto3.client(
"bedrock-runtime", config=config
)How to request a quota increase
- Open Service Quotas, choose Amazon Bedrock and check the values applied to your account for the model and Region you call.
- Check the model's lifecycle status first. AWS does not grant increases for Legacy or Deprecated models.
- Request the increase on "Cross-Region InvokeModel tokens per minute" for the model. AWS Support then offers to raise the on-demand tokens per minute and tokens per day quotas in the same case.
- Show real usage. AWS says priority goes to customers whose traffic already consumes their existing quota, and requests from others may be denied. Smaller increases are often approved automatically; larger ones go to AWS Support for review.
- For the
bedrock-mantleendpoint, follow its separate increase process.
# Applied Claude quotas, current Region
aws service-quotas list-service-quotas \
--service-code bedrock \
--query "Quotas[?contains(QuotaName,
'Claude Sonnet 5.5')].[QuotaName,Value]" \
--output table
# Request an increase with the quota code
aws service-quotas \
request-service-quota-increase \
--service-code bedrock \
--quota-code L-XXXXXXXX \
--desired-value 12000000Provisioned Throughput and service tiers
| Option | What you get | Terms |
|---|---|---|
| Provisioned Throughput | Model units, each with a fixed rate of input and output tokens per minute, billed hourly | No commitment, 1 month or 6 months. Model-unit throughput and pricing come from your AWS account manager |
| Reserved tier | Reserved input and output tokens per minute, overflow to Standard, a 99.5% uptime target | 1 or 3 months; at least 100,000 input and 10,000 output tokens per minute; through your AWS account team |
| Priority tier | Requests served ahead of Standard and Flex, at a premium | No reservation; shares the on-demand quota |
| Flex tier | A discount for work that tolerates longer processing | No reservation; shares the on-demand quota |
Getting more from the quota you have
- Lower
max_tokensto the output you expect, since the full value is reserved at the start of each request. - Use prompt caching for repeated context.
- Limit by tokens and concurrency. AWS warns that a requests-per-minute limiter alone doesn't protect you when request sizes change.
- Ramp up in steps, and hold each level long enough to watch 429, 503 and 529 rates.
- Move offline work to batch inference, and latency-tolerant work to the Flex tier where the model supports it.
Routing past a single account's quota
AWS's own advice for meeting an availability target is to add bounded retries and multi-Region or multi-model fallback in your application. A gateway does that work for you, across several providers.
With Standard Compute, your Bedrock account becomes one of several paths for Claude traffic. Claude requests are spread across Anthropic and the major clouds, and the same API reaches GPT, Gemini and open models such as GLM, DeepSeek, MiniMax and Kimi. The router picks the cheapest model that can handle each step and the cheapest provider fast enough to serve it, by latency and tokens per second.
from openai import OpenAI
client = OpenAI(
base_url="https://api.stdcmpt.com/v1",
api_key=STANDARD_COMPUTE_KEY,
)
# "standardcompute" routes each step to the
# cheapest model that can do it. To pin Claude:
# model="anthropic/claude-sonnet-5.5"
client.chat.completions.create(
model="standardcompute",
messages=messages,
)For Claude Desktop and Claude Code seat limits, see Claude rate limits for teams. For a general fix list, see AI agent keeps getting rate limited.
Put your team on Standard Compute
See how a company workspace is set up, or tell us what your team runs today.
Frequently asked questions
What are the default Amazon Bedrock quotas for Claude?
AWS publishes per-Region defaults of 30,000,000 tokens per minute through cross-Region inference for Claude Opus 5.5, Opus 5 and Opus 4.8, 6,000,000 for Sonnet 5.5, Sonnet 5 and Sonnet 4.6, and 10,000,000 for Haiku 5.5. Your account's applied values can be lower; check Service Quotas.
What does ThrottlingException mean on Bedrock?
Your account went over a Bedrock quota for that model, such as tokens per minute. Check the applied values in Service Quotas, retry with backoff and jitter, and request an increase if the traffic is steady.
How do I increase Bedrock tokens per minute for Claude?
In Service Quotas, request an increase on "Cross-Region InvokeModel tokens per minute" for the model; AWS Support then offers to raise the on-demand and daily quotas too. AWS prioritizes accounts that already consume their quota and doesn't grant increases for Legacy or Deprecated models.
Why am I throttled when my token usage looks under the quota?
Because Claude output tokens count 5x, 10x or 15x against the quota depending on the model, and Bedrock reserves the full max_tokens value when each request starts. Lower max_tokens and use prompt caching, whose cache reads don't count.
Does cross-Region inference raise my Bedrock quota?
It uses the model's cross-Region quota, which is separate from the single-Region on-demand quota, and spreads requests across the Regions in the profile, which helps with regional capacity errors. Global profiles cost about 10% less than geographic ones.
Should we buy Provisioned Throughput for Claude on Bedrock?
Only for predictable, sustained load. It is billed hourly per model unit with no commitment, 1-month or 6-month terms, and it doesn't work with inference profiles. The Reserved tier is the alternative for reserved tokens per minute, from 100,000 input and 10,000 output tokens per minute, through your AWS account team.
How do we avoid Bedrock throttling without a quota increase?
Inside AWS: lower max_tokens, use prompt caching, cap concurrency by tokens, and use cross-Region or global profiles. Beyond one account: send traffic through a gateway such as Standard Compute, which serves Claude from several providers and moves a failed request to another provider of the same model.
Sources (checked 2026-11-07)
- Quotas for Amazon Bedrockdocs.aws.amazon.com
- Quotas for the bedrock-runtime endpointdocs.aws.amazon.com
- How tokens are counted in Amazon Bedrockdocs.aws.amazon.com
- Amazon Bedrock service quotas (AWS General Reference)docs.aws.amazon.com
- Cross-Region inferencedocs.aws.amazon.com
- Troubleshooting Amazon Bedrock API error codesdocs.aws.amazon.com
- Scaling and throughput best practicesdocs.aws.amazon.com
- Provisioned Throughputdocs.aws.amazon.com
- Service tiers for inferencedocs.aws.amazon.com
- Requesting a quota increase (Service Quotas)docs.aws.amazon.com
- Claude Code on Amazon Bedrockcode.claude.com