One Claude Model, Three Bills
You can buy Claude Sonnet 5 from three places. The model is the same. The bill is not. Each route sends its own invoice and sets its own price rules. A team that uses two routes ends up with two partial totals, and often nobody adds them up.
Where the spend shows up
On the Anthropic API, you see cost in the Claude Console and in the Admin cost report. On Bedrock, the charge is a line on your AWS bill. On Vertex AI, it is a line on your Google Cloud bill.
The routes do not share reports. Anthropic’s docs list the Admin and Usage and Cost API endpoints as not supported on Amazon Bedrock and not supported on Google Cloud. So the Anthropic cost report does not show what you spend through a cloud.
The readers differ too. Engineers often read the Anthropic invoice. Cloud and finance teams read the AWS and Google Cloud bills. Nobody has the whole picture unless someone adds the three by hand.
The extra charges
Where the model runs can change the price. Each route has a different rule.
- On Amazon Bedrock, the global endpoint has no pricing premium. A regional endpoint carries a 10% premium over global. That page covers the newer Bedrock integration, titled “Opus 4.7 and later”. It lists the global endpoint for nine models. They are Claude Fable 5.1, Fable 5, Opus 5.5, Opus 5, Opus 4.8, Opus 4.7, Sonnet 5.5, Sonnet 5 and Haiku 4.5.
- On Google Vertex AI, regional and multi-region endpoints carry a 10% premium over global. Anthropic’s docs say this applies to Claude Sonnet 4.5 and later models. Older models keep their old pricing.
- On the Anthropic API, US-only inference (
inference_geo: "us") costs 1.1 times the standard rate on Claude 4.6 and later models. Global routing costs the standard rate. Older models do not support the setting.
So all three routes charge 10% more for a pinned location. The catch is that each one sets it in a different place. On Bedrock and Vertex, the endpoint or inference profile decides it. On the Anthropic API, a request parameter or workspace default decides it. One changed line of config can raise the bill, and nobody gets an email about it.
Two more limits matter for cost. Anthropic lists Message Batches as not supported on both clouds (see the two links above), so a batch discount depends on the route. On Vertex, provisioned throughput needs a regional endpoint, which is the endpoint type that costs more.
Cloud credits and commitments follow the same split. AWS terms apply to the Bedrock line. Google terms apply to the Vertex line. Read your own contract to see which lines each one covers. Our guides to cloud credits and commitment discounts explain the general rules.
A worked example
Take one workload on Claude Sonnet 5. It sends 40 million input tokens and 8 million output tokens a day. The LLM pricing table, checked on 2026-09-27, lists Sonnet 5 at $2 per million input tokens and $10 per million output tokens.
At the global rate:
- Input: 40 million tokens at $2 per million is $80.
- Output: 8 million tokens at $10 per million is $80.
- Total: $160 a day, or $4,800 over 30 days.
Now pin the workload to one location. Use a regional endpoint on Bedrock, a multi-region endpoint on Vertex, or US-only inference on the Anthropic API. The rate is 10% higher:
- Total: $176 a day, or $5,280 over 30 days.
The difference is $480 a month for one workload. The tokens did not change. Only the location rule changed. If you need the pinned location for data-residency reasons, the cost may well be worth it. Just choose it on purpose, and write the reason down.
Model IDs do not match
Each route names the same model in its own way. For Sonnet 5, the IDs are:
| Route | Model ID |
|---|---|
| Anthropic API | claude-sonnet-5 |
| Amazon Bedrock | anthropic.claude-sonnet-5 |
| Google Vertex AI | claude-sonnet-5 |
The Bedrock ID follows the provider-prefix rule in the Bedrock docs. The Vertex ID comes from the Vertex model ID table. Older models add date suffixes on Vertex, and those differ from the Anthropic API names. In a spreadsheet, a join on the model name will miss rows. Match on the model family first, then check each route.
What to do
- Pick a route for each workload on purpose, and write down why. Price, credits, data residency and feature support all count.
- Pin a location only when you need to. Check endpoints and inference profiles after each launch.
- Name the workload with a tag, a project or a workspace. Then each bill line maps to a team.
- Set an alert on each route. A jump on one route can hide inside a flat total. A cost alert on each line finds it sooner.
- Look at all routes together. Three browser tabs is how a jump gets missed.
CostMon has a connector for each route. It shows the Anthropic, Bedrock and Vertex lines side by side on one screen. Each connector keeps the service name its provider uses, so the lines are not merged. For setup details, read the Bedrock cost monitoring and Vertex AI cost monitoring pages. To price other models, use the LLM pricing table.
Part of The Cloud & AI Cost Optimization Playbook, our guide to cutting cloud and AI spend.