Rost CAMP

Amazon Bedrock Pricing Explained, with Examples

By Rostyslav Myronenko, holder of 14 active AWS certifications.
. 11 min read

Amazon Bedrock pricing starts with tokens. You pay per million input tokens and per million output tokens, at a rate set by the model and by the Region you call it from. What makes the bill hard to predict is everything around the model: which service tier serves the request, how much of the prompt comes from a cache, and the Knowledge Base, Guardrails and agent features, each with its own meter.

This guide goes through each of those and then adds them up in a worked monthly estimate. The rates come from the Amazon Bedrock pricing page and the Bedrock user guide, checked on 25 October 2026. Bedrock rates change more often than most AWS prices, so check them again before you rely on one.

How Bedrock token pricing works

On-demand inference bills each request for the tokens it sends and the tokens it gets back. Input tokens are everything you send: the system prompt, tool definitions, conversation history, retrieved documents and the user's message. Output tokens are what the model generates, and they cost several times more. For the Claude models below, output is five times the input rate.

Rates differ between models by more than an order of magnitude. Standard on-demand rates per million tokens, checked 25 October 2026:

ModelInput, geographicOutput, geographicInput, globalOutput, global
Claude Haiku 5.5$0.11$0.55$0.10$0.50
Claude Sonnet 5.5$2.20$11.00$2.00$10.00
Claude Opus 5.5$4.40$22.00$4.00$20.00

These rates are the same whether you call from US East (N. Virginia), EU (Frankfurt) or EU (Ireland). Other families vary by Region. Amazon Nova 2 Lite through its global profile is $0.30 per million input tokens from N. Virginia and $0.39 from Frankfurt, because AWS calculates the price from the Region where you call the inference profile (cross-Region inference). Look up the rate for your own Region.

Some models also have a separate long-context rate for very long prompts. Claude Haiku 5.5's long-context rate is five times its standard rate.

Geographic or global inference profiles

You call many models through an inference profile, which spreads requests over several Regions. A geographic profile, such as EU or US, keeps processing inside that geography. A global profile can send the request to any supported commercial Region. AWS puts the saving at about 10%, which matches the two halves of the table above, and charges nothing extra for the routing.

For EU teams this is a trade between price and data residency. If personal data in prompts has to stay in the EU, price the geographic profile.

Service tiers: Standard, Priority, Flex and Reserved

Bedrock has four service tiers, chosen per request with the service_tier parameter. Standard is the default when you leave the parameter out. Priority puts your requests ahead of Standard and Flex traffic, at a 75% premium over Standard pricing. Flex is half the Standard price, for work that can wait longer for a response, such as evaluations, summarization or background agent steps.

Priority, Standard and Flex share one on-demand quota. Not every model offers every tier: the pricing page lists Priority and Flex rates for some families, such as Amazon Nova, and not for others. The model card says which tiers a model supports.

The fourth tier, Reserved, is capacity you book in tokens per minute for one or three months. It's priced per 1,000 tokens per minute per hour and billed monthly, and traffic above the reservation overflows to Standard. The minimum is 100,000 input and 10,000 output tokens per minute. At the listed global one-month rates for Claude Sonnet 4.6 ($0.18 per hour for each 1,000 input tokens per minute, $0.90 for each 1,000 output), that minimum costs $27 an hour, about $19,700 a month at 730 hours. Billing continues until the reservation is deleted, which your AWS account manager has to do with you.

Batch inference

Batch inference reads a file of prompts from S3 and writes the responses back to S3. The pricing page puts it at 50% below on-demand for selected models from Anthropic, Meta, Mistral AI and Amazon. In N. Virginia, Llama 4 Maverick input is $0.24 per million tokens on demand and $0.12 in batch. The newest Claude models have no batch rate on the pricing page, so check your model before you design around it.

Batch suits work nobody is waiting on, such as classifying a backlog of tickets or summarizing documents overnight. Prompt caching isn't available in batch.

Provisioned Throughput

Provisioned Throughput buys model units. Each unit delivers a fixed number of input and output tokens per minute for one model, billed by the hour with no commitment, a one-month term or a six-month term, and longer terms lower the hourly rate. You can't delete a committed unit before its term ends, and billing continues until you do delete it. For Anthropic models, the pricing page asks you to contact your account team for rates.

Custom models are where you're most likely to need it. According to the pricing page, full-rank fine-tuned models run only on Provisioned Throughput, while models customized with parameter-efficient methods can use either Provisioned Throughput or on-demand pricing.

Prompt caching

Prompt caching stores a repeated prefix of your prompt, such as a long system prompt or a set of tool definitions, so later requests read it from the cache instead of paying for it as new input. Tokens read from the cache are much cheaper than input: Claude Sonnet 5.5 charges $0.11 per million against $2.20, since AWS halved its cache-read rate on 7 October 2026. Tokens written to the cache cost more than input. For Claude models, a write with a 5-minute TTL is 1.25 times the input rate and one with a 1-hour TTL is twice the input rate. Anything that misses the cache is billed as normal input.

The TTL resets every time the cache is hit, so a prefix in steady use stays cached at no extra cost. A prefix that's rarely reused costs more with caching than without, because you keep paying the write premium. The minimum cacheable prefix is between 512 and 4,096 tokens, depending on the model. A change early in the prompt invalidates everything cached after it, so put the stable content first.

Cache reads don't count toward your tokens-per-minute quota either, which helps with throttling.

The line items around the model

A production application rarely calls the model on its own, and each of these features is billed separately:

FeatureHow it's billed, from the pricing page
Managed Knowledge Base$5.00 per GB of raw data per month for the index; $1.00 per 1,000 Retrieve calls. Parsing, embeddings and reranking with the managed components cost nothing extra.
Agentic retrieval$4.00 per 1,000 Agentic Retrieve calls, plus $1.00 per 1,000 underlying Retrieve calls
Self-managed Knowledge BaseThe vector store bills through its own service. Structured data retrieval is $2 per 1,000 SQL generation requests.
GuardrailsPer 1,000 text units of up to 1,000 characters, per policy: $0.15 for content filters and for denied topics, $0.10 for sensitive information filters and contextual grounding. Word filters and regex filters are free.
Intelligent Prompt Routing$1 per 1,000 requests, on top of the model it routes to
AgentCoreEach component has its own meter: Runtime by vCPU-hour and GB-hour, Gateway per 1,000 invocations, Memory per event or GB and per record (AgentCore pricing)
Model evaluationThe model inference it runs, plus $0.21 per completed task for human evaluation
Custom Model ImportPer Custom Model Unit per minute, in 5-minute windows, plus $1.95 per unit per month for storage

Guardrails charge for every policy you enable, on every piece of text you send through them. Contextual grounding counts the characters of the source, the query and the response together, so on prompts with a lot of retrieved text it adds up faster than the other policies.

A worked monthly estimate

The workload here is an example, not a client's: a support assistant, run in the EU, that answers questions from a company's own documents. It handles 100,000 requests a month. Each request sends a 3,000-token static prefix (the system prompt and tool definitions) and 3,000 tokens of variable input (retrieved passages, recent conversation and the question), and gets back a 400-token answer. It uses Claude Sonnet 5.5 through the EU geographic profile and makes one Knowledge Base Retrieve call per request over 10 GB of source documents. Guardrails content filters and denied topics check the user's message, about 500 characters, and the answer, about 1,600 characters.

Rates used, from the pricing page on 25 October 2026:

ItemRate
Sonnet 5.5 input, geographic$2.20 per 1M tokens
Sonnet 5.5 output, geographic$11.00 per 1M tokens
Sonnet 5.5 cache write, 5-minute TTL$2.75 per 1M tokens
Sonnet 5.5 cache read$0.11 per 1M tokens
Knowledge Base storage$5.00 per GB per month
Knowledge Base Retrieve$1.00 per 1,000 calls
Guardrails, content filters and denied topics$0.15 each per 1,000 text units

Without caching, the model costs $1,760 a month:

  • Input: 100,000 × 6,000 = 600 million tokens × $2.20 = $1,320.
  • Output: 100,000 × 400 = 40 million tokens × $11.00 = $440.

Output is under 7% of the tokens and a quarter of the model cost.

With the 3,000-token prefix cached, and assuming 95% of requests hit the cache and 5% write it, the model costs $1,172.60, a third less:

  • Uncached input: 300 million tokens × $2.20 = $660.
  • Cache reads: 285 million tokens × $0.11 = $31.35.
  • Cache writes: 15 million tokens × $2.75 = $41.25.
  • Output: $440.

The Knowledge Base adds $150: 100 × $1.00 for Retrieve calls and 10 GB × $5.00 for storage. Guardrails see 3 text units per request (1 for the message, 2 for the answer), so 300,000 units at $0.30 per 1,000 add $90. With caching, the month comes to about $1,413.

Three variations on the same workload:

  • With the global profile instead of the EU one, the model total falls to $1,066, about $107 less a month, but requests can then be processed outside the EU.
  • With Claude Haiku 5.5 instead of Sonnet 5.5, still EU and cached, the model total is about $60, roughly twenty times less. The $240 for retrieval and Guardrails then becomes the larger part of the bill. Only an evaluation on your own data can tell you whether the smaller model answers well enough.
  • If Guardrails check the whole prompt, retrieved passages included, the text units per request grow with the length of those passages, and so does the Guardrails line.

In this example, the choice of model moves the bill most, then caching, then the profile and the tier.

Where Bedrock costs grow faster than expected

All of these follow from how AWS documents Bedrock billing.

Conversation history is input on every call. The Converse API is stateless, so each call sends the messages so far, and a ten-turn chat pays for the first turn's text ten times unless that part is cached. Agents multiply this: each step of an agent loop is a separate model call, and the tool results it reads come back as input on the next one.

With output at five times the input rate, a prompt that asks for long answers can cost more than one that sends long context.

Reserved tier and Provisioned Throughput charge by the hour whether you send traffic or not, until you delete them.

A cached prefix that changes on every request pays the write premium and never gets the read discount. According to the prompt caching guide, cross-Region routing can also add cache writes at times of high demand.

Model invocation logging writes full prompts and responses to CloudWatch Logs or S3, and those services bill for what they store.

None of the four Savings Plans types applies to Bedrock, so good coverage on the compute bill does nothing for the AI line. My AWS Savings Plans guide covers what they do apply to.

How to track Bedrock cost

Bedrock spend shows up in Cost Explorer as a total. To see it per application or per team, call the model through an application inference profile for each one, with tags. Once you activate those tags as cost allocation tags, Cost Explorer can split Bedrock spend by them.

For token counts, CloudWatch publishes InputTokenCount, OutputTokenCount, CacheReadInputTokenCount and CacheWriteInputTokenCount per model in the AWS/Bedrock namespace, along with ResolvedServiceTier, the tier that actually served each request. If cache reads drop after a deploy, check whether a prompt change moved the cached prefix.

The response itself reports the split. With caching on, the Converse API's inputTokens counts only the uncached tokens, and the total input is inputTokens + cacheReadInputTokens + cacheWriteInputTokens.

Bedrock is one line in a wider bill. The breakdown by service, account and team in step 1 of my AWS cost optimization guide applies to it as to any other service.

FAQ

Is there a free tier for Amazon Bedrock?

Not a Bedrock-specific one: you pay per token from the first call. New AWS accounts on the Free plan get $100 in credits at sign-up and can earn up to $100 more, and using Amazon Bedrock is one of the ways to earn them. The plan ends after six months or when the credits run out, whichever comes first.

Is Bedrock batch inference cheaper than on-demand?

Yes, by 50% for the models that support it, which include models from Anthropic, Meta, Mistral AI and Amazon. Not every model has a batch rate, so check the pricing table for yours. Batch jobs read their input from S3 and write results back to S3, and prompt caching doesn't work in batch.

Do Savings Plans cover Amazon Bedrock?

No. AWS sells four types of Savings Plans: Compute, Database, EC2 Instance and SageMaker AI. None of them applies to Bedrock usage. The commitments Bedrock offers itself are the Reserved tier and Provisioned Throughput.

Is global cross-Region inference cheaper?

Yes. AWS puts the saving at about 10% against a geographic profile, such as the EU or US one. A global profile can process your request in any supported commercial Region, though, so it doesn't suit data that has to stay in one geography.

Estimating your own Bedrock bill

Most of the uncertainty in a Bedrock estimate sits in the token profile: how many tokens go in and come out per request, how much of the prompt repeats, and how many model calls one user action really makes. Measure those on real traffic or a prototype before you commit to a model or a reservation.

If you'd like a second opinion before you scale, my Bedrock pricing and architecture review checks the design and the cost model against your expected volume, with a 12-month estimate.

More from the blog