Amazon Rate Limits by Tier
What are Amazon's API rate limits?
Amazon's entry tier (AWS default quota) allows an unpublished number of requests/min and an unpublished number of tokens/min for documented default/model family. Limits scale up through Requested quota as cumulative spend and account age increase — see the full table below, verified 2026-08-14.
Limits by tier
| Tier | Qualification | Model class | RPM | TPM | RPD | Concurrent |
|---|---|---|---|---|---|---|
| AWS default quota | AWS account and region | documented default/model family | — | — | — | — |
| Requested quota | Approved Service Quotas increase | documented default/model family | — | — | — | — |
— means not documented by Amazon, never a guess.
What this means for your workload
Classification at volume: 116 calls/min and 60,320 tokens/min at the production profile.
This provider publishes no numeric cap for this workload; check the account console before launch.
Response headers
retry-after | Seconds to wait before retrying, when supplied with a 429 |
rate-limit response headers | Provider-specific remaining and reset counters when documented |
When you exceed the limit
Amazon returns HTTP 429.
Use Service Quotas for the selected Bedrock model and region.
FAQ
What happens when I exceed Amazon's rate limit?
Amazon returns HTTP 429. Use Service Quotas for the selected Bedrock model and region.
How do I request a rate limit increase on Amazon?
Request one from the account dashboard: https://console.aws.amazon.com/servicequotas
Batch 49 · amazon decision and evidence contributions. Surface verification: 2026-08-14. These are route-local, server-rendered fixtures; unavailable values are not inferred.
Bedrock quota-coordinate compiler
Frozen Batch 49 fixture board. Formula / decision rule: effective = account ∧ region ∧ endpoint ∧ model/profile ∧ invocation mode ∧ quota code Boundary: The same model name does not transfer a quota between endpoints or inference profiles.
| Frozen fixture / field ID | Joined inputs and observation | Calculated result | State |
|---|---|---|---|
batch49-amazon-m1-r1single-region on-demand Converse | account=aws-acct-41; region=us-east-1; endpoint=runtime; model=arn:model/a; mode=Converse; quota=RPM; applied=80; default=20 Applied quota is authoritative for this account, region, runtime, and model coordinate. | effective RPM = applied 80 (default 20 is retained as audit context) | PASS — applied scope joined. |
batch49-amazon-m1-r2cross-region inference profile | account=aws-acct-41; region=us-west-2; profile=us.anthropic.profile-7; mode=Invoke; quota=TPM; applied=Unavailable Profile identity joins, but no applied token ceiling is available for the selected region. | TPM = Unavailable; do not copy foundation-model quota | UNAVAILABLE — profile bucket absent. |
batch49-amazon-m1-r3provisioned throughput · guardrail-only call | account=aws-acct-41; region=eu-west-1; endpoint=provisioned; guardrail=gr-9; quota_code=G-guardrail; adjustable=No The guardrail quota is a distinct service coordinate from model runtime throughput. | bucket identity remains G-guardrail; runtime RPM is not applicable | PASS WITH BOUNDARY — separate quota family. |
Provenance: Batch 49 amazon module 1 first-party evidence and surface verification date 2026-08-14. AWS Bedrock quota documentation. Missing joins fail closed.
Bedrock token-debit reservation worksheet
Frozen Batch 49 fixture board. Formula / decision rule: reserve = input tokens + requested output reserve × documented multiplier; admit only if every bucket has headroom Boundary: Estimated debit cannot replace an observed debit after a partial stream.
| Frozen fixture / field ID | Joined inputs and observation | Calculated result | State |
|---|---|---|---|
batch49-amazon-m2-r1short Converse call | input=1200; max_output=800; multiplier=1; minute_headroom=5000; day_headroom=100000 The full requested output reserve is below both joined headroom values. | reserve=1200+800×1=2000; headroom after=3000/98000 → admit | ADMIT — all documented buckets pass. |
batch49-amazon-m2-r2120K prompt · maximum-output request | input=120000; max_output=16000; multiplier=1; minute_headroom=130000; day_headroom=Unavailable Minute capacity passes, but the daily ceiling is not joined for this profile. | reserve=136000; daily admission = Unavailable | UNAVAILABLE — daily bucket required. |
batch49-amazon-m2-r3streamed completion · retry after partial output | input=5000; requested=4000; observed_output=1200; debit=Unavailable; retry=partial; request=req-br-77 A partial stream exists but the settled debit is not visible, so a full replay could double-reserve tokens. | safe retry reserve = Unavailable until debit/checkpoint joins | FAIL CLOSED — no duplicate reservation. |
Provenance: Batch 49 amazon module 2 first-party evidence and surface verification date 2026-08-14. AWS Bedrock quota documentation. Missing joins fail closed.
Bedrock throttling root-cause ledger
Frozen Batch 49 fixture board. Formula / decision rule: root cause = exception + request ID + metric + quota evidence; otherwise Unresolved Boundary: Capacity, entitlement, validation, and quota failures are not interchangeable.
| Frozen fixture / field ID | Joined inputs and observation | Calculated result | State |
|---|---|---|---|
batch49-amazon-m3-r1RPM / TPM / daily-token failures | exception=ThrottlingException; request=req-br-81; metric=Invocations; quota=RPM; service-quota=applied; retry-after=2s Request ID, metric, and applied Service Quotas record agree on a request bucket. | retry eligible after 2s; increase request points to account/region quota | CLASSIFIED — RPM throttle. |
batch49-amazon-m3-r2cross-region · guardrail text-unit throttle | exception=ThrottlingException; request=req-br-82; metric=missing; quota=guardrail text units; CloudWatch=missing The error is throttling-shaped, but the metric join is absent. | root cause = Unresolved; support evidence required | UNRESOLVED — no bucket transfer. |
batch49-amazon-m3-r3account-applied-zero · invalid model access | exception=AccessDeniedException; request=req-br-83; model=arn:model/b; applied=0; access=denied; retry=No Authorization and applied quota state agree; this is not transient capacity. | retry=No; correct access or quota approval before replay | TERMINAL — entitlement/configuration action. |
Provenance: Batch 49 amazon module 3 first-party evidence and surface verification date 2026-08-14. AWS Bedrock quota documentation. Missing joins fail closed.
