Choice 20. By Nicolas Dao · Last reviewed

Anthropic API, Bedrock or OpenRouter?

My product will call Claude. Do I buy it from Anthropic directly, through Amazon Bedrock in the client's AWS account, or through OpenRouter?

The tokens cost the same on all three: Sonnet 5.5 is $2 / $10 per million on Anthropic's API, on Bedrock's global endpoint and through OpenRouter, which adds 5.5% on credits. So the choice is about everything else. OpenRouter by default for client systems: one key for every model, so Claude competes with the others on cost per task. Bedrock when the data must stay in Australia (its AU profile, 10% more) or the client wants it on the AWS bill under IAM. Anthropic's API when you need what only it has: batches at half price, web search, code execution, the Files API, Managed Agents.

When to pick which

Pick OpenRouter when

  • An AI feature in a client system where the model should be the cheapest one that passes, not always Claude: one key, one SDK, every vendor.
  • Fallbacks between Claude's providers (Anthropic, Bedrock, Vertex) without writing them.
  • Residency doesn't matter: it routes globally, and in-Region only for the EU and the US, on its Business plan.

Pick Amazon Bedrock when

  • Claude, and the data must stay in Australia: the AU inference profile keeps each request in Sydney or Melbourne, for 10% more.
  • The client is on AWS: IAM signs the calls, CloudTrail records them, and the bill arrives with the rest of AWS, with no new vendor to approve.
  • Claude Code on a codebase that must not leave AWS.

Pick Anthropic API when

  • Work that can wait for a batch: half price on every Claude model, which Bedrock doesn't offer on the 5.5 models.
  • Server-side tools: web search, web fetch, code execution, the MCP connector, Agent Skills, the Files API or Managed Agents.
  • You want new models and features on the day they launch.

Both, when

  • Bedrock for the client whose data must stay in Australia, OpenRouter for the rest of the portfolio: the same code, a different base URL and key.
  • OpenRouter can route a Claude request to Bedrock or Vertex, so it already uses those providers behind one key; but it has no Australian endpoint, so it doesn't replace Bedrock for residency.
  • Batches on Anthropic's API, live traffic on Bedrock in Sydney, when the batch data may leave Australia and the live data may not.

Questions that change the answer

  • Must the prompts stay in Australia? Only Bedrock's AU profile does that today, for the Claude models it covers.

  • Do you need Anthropic's server-side features? If the product depends on web search, code execution or batches, Bedrock means rework.

  • Is Claude the only model, or one candidate? One candidate among several is OpenRouter's job.

  • Who must approve a new vendor? On AWS, Bedrock usually needs no new contract.

The short version

Anthropic API Amazon Bedrock OpenRouter
My verdict Skip, for client systems Watching: my answer for residency My default
Sonnet 5.5, per million tokens $2 / $10 $2 / $10 global; $2.20 / $11 in Australia $2 / $10, plus 5.5% on credits
Data in Australia No: global or US only (US costs 10% more) Yes, with the AU profile (Sydney and Melbourne) No: no Australian endpoint for Claude
Batch, half price Yes, every model Not on the 5.5 models Through its providers, where offered
Web search, code execution, Files API, Managed Agents Yes No Its own web search, not Anthropic's tools
Other models Claude only Claude and Bedrock's catalogue Every vendor
Billing Anthropic, by card or invoice The AWS bill, through AWS Marketplace OpenRouter credits
Access control API keys and workspaces IAM roles, CloudTrail API keys with credit limits
A month of 2,000 chats a day (180M in, 30M out) $660 $660 global, $726 in Australia about $696

The month in the last row is a support assistant answering 2,000 chats a day, each 3,000 tokens in and 500 out, on Sonnet 5.5, before GST. Caching a 2,000-token system prompt cuts any of them by about a third, and the Bedrock entry shows the arithmetic.

Same tokens, same price

People expect the cloud reseller to cost more. It doesn't: Claude on Bedrock's global endpoint costs exactly Anthropic's list price, and OpenRouter passes the price through and charges 5.5% when you buy credits. With your own Anthropic or AWS key on OpenRouter, the first $25,000 of usage a month carries no fee at all.

Two premiums are worth knowing. Keeping a request in one geography costs 10% more everywhere: Bedrock's AU profile, Anthropic's US-only processing and Vertex's regional endpoints are all 1.1 times the global price. And the discounts differ: Anthropic's Batch API halves the price of any Claude model, while Bedrock's batch inference doesn't cover the 5.5 models yet. Prompt caching works on all three, and it's the biggest saving of the lot: cached reads cost 0.05 times the input price on Sonnet 5.5 and Opus 5.5.

So the price sheet doesn't decide this. Features, residency, billing and lock-in do.

OpenRouter: Claude as one candidate

For client systems, I buy models through OpenRouter. Not because Claude is worse, but because it's rarely the cheapest model that passes for a given job, and OpenRouter lets me prove that on the client's own prompts by changing one string. Which model, at what price has the numbers tier by tier. One key and one SDK cover Claude, OpenAI's models and the open ones, and a request for Claude can be served by Anthropic, Bedrock, Vertex or Azure, with fallbacks between them.

What it doesn't do is keep data in Australia. OpenRouter lists no Australian endpoint for Claude 5.5; in-Region routing exists for the EU and the US, on the Business plan. Its zero-data-retention routing works on every plan, but Anthropic's own endpoint isn't on that list, only Bedrock and Vertex. For a client with residency rules, it's the wrong door.

Bedrock: Claude inside the client's AWS account

Amazon Bedrock is how I'd keep a client's Claude traffic in Australia. Its AU inference profile processes each request in Sydney or Melbourne, from arrival to answer, for the Claude models that have an Australian route. That's the only route I know of today. For a client already on AWS, it also removes a procurement step: IAM signs the calls, CloudTrail logs them, and Claude arrives on the AWS bill through AWS Marketplace.

The price is features. Anthropic lists no Batch API, Files API, web search, web fetch, code execution, MCP connector, Agent Skills or Managed Agents on Bedrock. A product built on those needs rework before it moves. Residency is also per model: Fable 5.1's regional endpoint is US-only, so it can't stay in Australia at all. Pin the model ID, and check its routing from every source Region you use before you promise anything.

Anthropic also sells the Claude Platform on AWS: Anthropic's own platform with its full feature set, billed through your AWS account and counted against an AWS commitment. It isn't Bedrock: requests are processed outside AWS's security boundary, with no Australian residency.

Anthropic's API: the full feature set

Anthropic's own API has everything first: new models on launch day, batches at half price, and server-side tools that do real work for you, such as web search ($10 per 1,000 searches), code execution and Managed Agents. If the product is built around those, nothing else replaces it. Spend is capped by usage tier until you've built a history, from $500 a month at the start.

My verdict on it is about client systems, not quality: paying per token for one vendor's models, when the job may be done as well and for less by another, is rarely the best use of a client's money. Its data stays in the US or goes global, never to Australia. And Claude Code, my main tool, is a different purchase: a subscription, or API billing through Anthropic or Bedrock.

Running more than one

Most of my portfolio would run two of them. OpenRouter serves the clients with no residency rules, Bedrock in Sydney serves the ones who have them, and the code differs by a base URL and a key. Where a batch job's data may leave Australia but the live traffic may not, the batch can run on Anthropic's API at half price while Bedrock serves the users. A Cloudflare AI Gateway in front can log and cap spend per client across all of it, except where the logs themselves must stay in Australia: then the gateway goes too, as AI gateway: Cloudflare, OpenRouter or LiteLLM? explains.

Sources, checked on 27 October 2026: Anthropic pricing, Anthropic data residency, Anthropic rate limits and usage tiers, Claude in Amazon Bedrock (features and gaps), Amazon Bedrock pricing, Bedrock batch inference models, Claude Platform on AWS, OpenRouter FAQ (fees), OpenRouter provider routing, OpenRouter zero data retention.

More choices

  1. 01 Lambda, Web Functions or Workers? Where should this piece of logic run?
  2. 02 Lambda, Fargate or EC2? My Lambda is busy all day, or its reserved concurrency keeps going up. When is it time to move to a container, and where is the line?
  3. 03 SQS, EventBridge or SNS? Something happens in my app and other code must act on it. Do I put it in a queue, on an event bus, or on a topic?
  4. 04 SQS retries or Durable Functions? A job calls something flaky (a third-party API, an LLM, a slow Postgres). How do I retry it reliably, and when do I reach for Lambda durable functions instead of tuning SQS?
  5. 05 Durable functions or Step Functions? A job has several steps, retries and waits. Do I write it as a Lambda durable function, or as a Step Functions state machine?
  6. 06 pgvector or S3 Vectors? Where should my embeddings live?
  7. 07 Pulumi or Terraform? We're putting our infrastructure in code. Pulumi or Terraform, and what if we already run one of them?
  8. 08 Cloudflare or S3 and CloudFront for a website? Where should a website, SPA or PWA live, Cloudflare static hosting or S3 behind CloudFront, and where do its heavy files go?
  9. 09 CloudWatch and Firehose, side by side How do I keep chatty logs without a CloudWatch-sized bill?
  10. 10 Athena or DuckDB? How should I query my data lake, and what changed when AWS bought DuckDB's company?
  11. 11 Neon or Aurora? I need Postgres for an app on AWS. When is Neon the right call, and when does it have to be Aurora?
  12. 12 Better Auth or Cognito? Which sign-in should my app use, and what do I actually get for free?
  13. 13 Why I ended up on AWS Which cloud should my company run on, and is AWS just the one you know?
  14. 14 Better Auth, run yourself or managed by Neon? My app is on Neon. Should I run Better Auth myself, or switch on Neon Auth, which is Better Auth managed by Neon?
  15. 15 Stripe or PayPal Should we take payments with Stripe or PayPal, and when is PayPal worth the pain?
  16. 16 Tailscale or Cloudflare Tunnel? I need to reach a private box or VPC, or put a service from it online. Is that Tailscale or Cloudflare Tunnel?
  17. 17 Resend or SES? Our app sends email, and maybe a newsletter. Resend, or Amazon SES in our own AWS account?
  18. 18 WhatsApp or Telegram Our bot should reach users in a messaging app. WhatsApp or Telegram, and why did yours get blocked?
  19. 19 Which model, at what price Claude, GPT or an open model? Which is the cheapest model that's good enough, tier by tier?
  20. 21 Cloudflare AI Gateway, OpenRouter or LiteLLM? My app calls several LLMs. Do I need an AI gateway, and which one: Cloudflare AI Gateway, OpenRouter, or a LiteLLM proxy I host myself?
  21. 22 Function URL or API Gateway? My Lambda needs an HTTPS endpoint. When is a function URL enough, and when do I start on API Gateway from day one?
  22. 23 Serper or DataForSEO Should an agent get Google results from Serper or from DataForSEO, and do the two overlap or work together?

Want this stack in your AWS account?

Cloudless Labs is a Sydney consultancy. We migrate on-premises systems to AWS, build serverless apps on this stack, and coach teams to ship with Claude Code and Codex.

Talk to us

Contact Us

For general inquiries, please contact us at:

For e-learning capabilities, please contact: