November 1, 2026 · 13 min read

AWS Bedrock Pricing: Claude Costs and Budgets

Graphic title card for the article “AWS Bedrock Pricing: Claude Costs and Budgets” with a stylised motif: a key, a plug between two blocks and a usage counter above.
Graphic: HumanITy

AWS Bedrock pricing for Claude is per token, with no subscription and no per-seat licence. Through the global profile you pay $4 per million input tokens and $20 per million output tokens for Opus 5.5, and $2 and $10 for Sonnet 5.5. The EU profile, which keeps requests in the EU, costs 10 percent more, so $4.40 and $22 for Opus 5.5. Prompt caching cuts the cost of repeated input sharply, while there is currently no batch discount for the 5.5 models on Bedrock. The bill comes from AWS through AWS Marketplace. A budget alert in AWS Budgets warns you but stops nothing, and you split costs by department with application inference profiles and cost allocation tags.

I use Bedrock in production myself in some cases and have set it up for clients, wherever processing in the EU is required. The prices in this article come from the AWS pricing page as of November 1, 2026. Everything about Claude is collected on my Claude page. Which regions, profiles and data paths exist is covered in Claude on AWS Bedrock: EU, GDPR and Cost; this one is about money.

AWS Bedrock pricing for Claude: prices per model

The AWS pricing page has two tables for Claude: one for the global profile and one for "Geo and In-region", meaning the EU profile and single regions. Per million tokens in dollars, retrieved on November 1, 2026, region Frankfurt:

Model Global input / output EU profile input / output Cache read global / EU
Opus 5.5 4 / 20 4.40 / 22 0.20 / 0.22
Sonnet 5.5 2 / 10 2.20 / 11 0.10 / 0.11
Haiku 5.5 0.10 / 0.50 0.11 / 0.55 0.01 / 0.011
Opus 5 5 / 25 5.50 / 27.50 0.50 / 0.55
Sonnet 5 2 / 10 2.20 / 11 0.20 / 0.22
Opus 4.8 5 / 25 5.50 / 27.50 0.50 / 0.55
Fable 5.1 10 / 50 global only 0.25 / global only

Haiku 5.5 is tiered: the row above applies to prompts up to 100,000 tokens. For long prompts AWS lists a separate "Long Context" row at $0.50 / $2.50 globally and $0.55 / $2.75 in the EU profile, in line with Anthropic's list price.

The global profile costs exactly Anthropic's list price, the EU profile 10 percent more. Opus 5.5 is cheaper than Opus 5 and Opus 4.8, on cache reads by more than half. Fable 5.1 is the most expensive and only runs globally in Europe. How the models differ otherwise is covered in Claude Models: Opus, Sonnet, Haiku, Fable. Whether a plan beats usage billing for Claude Code is worked through in Claude Code Pricing: Plan or API?.

On-demand, batch and prompt caching

On-demand is the normal case: you pay per token for every request, with no minimum. All prices above are on-demand prices.

Batch: AWS advertises batch inference at 50 percent below the on-demand price, but only for selected models. For Claude, the pricing page shows batch prices for Opus 5 ($2.50 and $12.50 global) and Haiku 4.5. For Opus 5.5, Sonnet 5.5, Sonnet 5, Opus 4.8 and the Fable models, the batch column says "N/A". Anthropic's own Message Batches API is not available on Bedrock anyway, and according to AWS, prompt caching does not work together with batch.

Prompt caching is the bigger lever on Bedrock. You mark recurring parts of a request, such as the system prompt, the tool list or a long document. The first cache write costs a 25 percent premium with a 5-minute lifetime, or twice the input price with one hour. Every read after that costs 5 percent of the input price on Opus 5.5 and Sonnet 5.5, 10 percent on Opus 5, Sonnet 5 and Opus 4.8. For Opus 5.5, Sonnet 5.5, Haiku 5.5 and Opus 5, the minimum is 512 tokens per cache checkpoint, with up to four per request.

Claude Code uses caching on Bedrock by default. With ENABLE_PROMPT_CACHING_1H=1 it requests one hour instead of 5 minutes; writes cost more, which pays off when more than 5 minutes often pass between requests. According to its documentation, caching is not available in every Bedrock region. If the cache token counts stay at zero, check AWS's list of supported models and regions.

Worked example: one department, one month

A worked example, not a measurement: assume a department sends 50 million input tokens and 5 million output tokens a month through the EU profile. With caching, 5 million of those are cache writes (5 minutes), 35 million cache reads and 10 million regular input.

Assumption Sonnet 5.5, EU profile Opus 5.5, EU profile
without caching $165.00 $330.00
with caching $94.60 $189.20

For Sonnet 5.5: without caching 50 × 2.20 plus 5 × 11, so $110 plus $55. With caching 5 × 2.75 for the writes, 35 × 0.11 for the reads, 10 × 2.20 for the remaining input and 5 × 11 for the output, $94.60 in total. Through the global profile it would be $150 instead of $165 without caching.

With caching, output is the largest part of the bill, $55 of $94.60. And Opus 5.5 costs twice as much as Sonnet 5.5; the Claude Code documentation warns that without a pinned primary model you are billed at the Opus rate.

Setting up a budget alert in AWS Budgets

A budget alert takes a few minutes:

  1. In the Billing and Cost Management console, under "Budgets", create a cost budget: monthly, fixed amount.
  2. Set the scope: the whole account or filtered. According to the model card, Claude appears in Cost Explorer under the model provider, not under "Amazon Bedrock". So check in Cost Explorer which entry your Claude costs show up under before you filter by service.
  3. Set thresholds, for example 50 and 80 percent of actual costs and 100 percent of the forecast, with email or an SNS topic as the target.

Two limits matter. AWS Budgets updates up to three times a day, typically 8 to 12 hours after the previous update, so alerts arrive late. And an alert stops nothing. A hard limit needs automation: AWS Budgets can trigger an action at a threshold, such as applying an IAM policy. An expert article on AWS re:Post describes the pattern for Claude Code: at 100 percent, the budget triggers a Lambda function through SNS that attaches a deny policy for bedrock:InvokeModel to the team's role.

Claude Desktop on Bedrock also has a per-user token cap (inferenceMaxTokensPerWindow with inferenceTokenWindowHours), but cached tokens do not count, so it does not cap your bill.

Cost per department: inference profiles and cost allocation tags

On the AWS bill, Bedrock first appears as a single total. To split it by department, AWS describes three approaches.

Application inference profiles. You create one profile per department and model and tag it. If you copy the EU profile rather than a single model, routing stays in the EU:

aws bedrock create-inference-profile \
  --region eu-central-1 \
  --inference-profile-name sales-sonnet-5-5 \
  --model-source copyFrom=arn:aws:bedrock:eu-central-1:111122223333:inference-profile/eu.anthropic.claude-sonnet-5-5 \
  --tags key=Department,value=Sales

The response contains an ARN the department uses instead of the model ID; in Claude Code it goes into ANTHROPIC_MODEL. The price follows the region you call the profile from. The profiles work with InvokeModel and Converse on the bedrock-runtime endpoint, not with the Responses and Chat Completions APIs, and every combination of model and department needs its own profile, again with every new model version.

Attribution through IAM. Bedrock automatically records which IAM user or role made each request. If you attach tags such as Department to the roles, or pass them as session tags when users sign in through Entra ID or Okta, they end up in the billing data without any change to the calls. This also works on the Mantle endpoint. For a per-person breakdown you need a CUR 2.0 data export that includes the caller identity.

Projects. For the Responses and Chat Completions APIs on the Mantle endpoint, AWS names tagged projects, which are not tied to a model.

Either way, you activate the tags in the Billing console under "Cost allocation tags", in an organisation from the management account. They take up to 24 hours to appear in Cost Explorer and do not apply retroactively. According to the re:Post article, a new tag only shows up as a filter once costs have been incurred on it, so test with a few dollars of real usage. Then create one budget per department, filtered on the tag. Profiles and tags do not give you cost per request; the finest grain is usage type per day. What Anthropic's business plans offer instead is compared in Claude Enterprise or Team: Cost and GDPR.

Frequently asked questions

What does Claude cost on AWS Bedrock?

Through the global profile, Opus 5.5 costs $4 per million input tokens and $20 per million output tokens, Sonnet 5.5 $2 and $10, as of November 1, 2026. The EU profile adds 10 percent. There is no base fee and no per-seat licence.

Is Bedrock more expensive than the Claude API?

Not through the global profile, which matches Anthropic's list prices. The EU profile costs 10 percent more and keeps requests in the EU, which Anthropic's own API does not offer. Anthropic's plans with a fixed monthly price are compared in Claude Pricing and Plans Explained.

Is there a batch discount for Claude on Bedrock?

Only for some models. The pricing page shows batch prices for Claude on Opus 5 and Haiku 4.5, not on Opus 5.5, Sonnet 5.5 or the Fable models. Prompt caching is the bigger lever.

Does an AWS budget stop costs automatically?

No. A budget sends notifications, and they arrive with a delay because AWS Budgets only updates up to three times a day. A hard limit needs a budget action or your own automation that blocks Bedrock calls with a deny policy.

How do I see Bedrock costs per department?

With application inference profiles per department and model, or with tags on the IAM roles, activated as cost allocation tags and filtered in Cost Explorer.

How to keep going

Set up a budget alert for the whole account first. Then choose global or EU profile, and pin the model before a team starts. With several departments, plan the tags before the first request, because they do not apply retroactively. How the Claude API bills outside AWS is covered in Claude API Key: Setup, Pricing, First Call. How others keep their Claude Code and Bedrock usage under control is something we discuss in my English-language community, the AI Employee Framework.

Kevin Welter

Kevin Welter

Developer, IT architect, author of technical books (Kubernetes, cloud infrastructures) and speaker. Runs his business with an AI workforce of fourteen AI employees and shows solo business owners in his community how to hire their first AI employee.

More about AI employees

Your first AI employee up and running within an hour

Join the community

$5/month founding price, first 50 members