Claude with EU data residency: Bedrock, Foundry or the direct API

Two of the five ways to run Claude keep inference inside Europe: Amazon Bedrock EU inference profiles and Vertex AI eu multi-region endpoints. Microsoft Foundry offers only Global and US data zones, and both the first-party Claude API and Claude Platform on AWS accept us or global. Pinning a region costs a 10 percent premium.

Only two of the five ways to run Claude keep inference inside Europe

Amazon Bedrock and Google Vertex AI can both pin Claude inference to European regions. Microsoft Foundry cannot, and neither can Anthropic's first-party API or Claude Platform on AWS, whose inference geography parameter accepts exactly two values today: us and global. Anthropic's own documentation states the limitation plainly under Current limitations, and Microsoft's model page lists only Global Standard and Data Zone Standard (US) as deployment types for Claude.

That is the shortlist. It is shorter than most procurement decks assume.

The confusion is understandable, because all five platforms sell the same enterprise story: your identity provider, your invoice, your security questionnaire, your network boundary. Three of them will process a German works council document in Virginia while telling that story truthfully. The vendor relationship and the processing location are separate questions, and only one of them is what a data protection officer is actually asking about.

Here is the state of play as of 30 July 2026, taken from each vendor's current documentation rather than from their marketing pages.

PlatformEU inference today?How you pin itPremium over global routing
Amazon BedrockYesEU geographic inference profile, or a single EU regional endpoint10% on regional endpoints, none on global
Google Vertex AIYesMulti-region endpoint eu; specific regional endpoints only on Sonnet 4.6 and earlier10% on regional and multi-region
Microsoft FoundryNoGlobal Standard or US Data Zone Standard only1.1x for the US data zone
Claude API (first party)Noinference_geo accepts us or global; workspace geo is us only1.1x for inference_geo us
Claude Platform on AWSNoAnthropic-operated, AWS Marketplace billing, same us or global geos1.1x for us

What each platform actually guarantees, in its own words

The guarantees differ in who processes the data, not only in where the GPUs sit. That distinction is what survives a legal review, and it is the one most comparison tables skip.

On Bedrock, AWS operates the inference stack. Anthropic's documentation is explicit that Claude in Amazon Bedrock runs with zero operator access, meaning Anthropic personnel have no access to the inference infrastructure. AWS is your processor, your existing AWS data processing agreement applies, and Anthropic is not in the chain for inference at all. That is a genuinely different contractual shape from every other option on the list.

The AWS documentation is also honest about the edges, which is why it is worth quoting rather than summarising. Requests to a geographic inference profile are kept within the AWS regions that form that geography. But by default the data remains stored only in the source region, while input prompts and output results might move outside the source region during cross-region inference, and to the extent AWS stores data for abuse detection, those prompts and results are stored in the destination region. So the abuse-detection copy follows the routing, not your source region choice.

Foundry's position is documented just as clearly, and it is the one that surprises Azure-first organisations. Microsoft states that for both hosting options, Anthropic is the seller and operator of Claude models in Microsoft Foundry and acts as an independent data processor for prompts and outputs. Even on the Azure-hosted option, where ingress, API services and GPU inference all run on Azure, automatic safeguards flag content that might be sent to Anthropic Trust and Safety, and Anthropic personnel review customer content on an exceptions-only basis. Foundry also provides no built-in content filtering for Claude at deployment time, so the safety layer you may have assumed was inherited from Azure OpenAI is not there.

The first-party API is the simplest to assess because there is nothing to assess. Workspace geo, which controls storage at rest and endpoint processing, currently offers one value: us.

Four sentences are worth demanding in writing before any of this goes to a works council:

  • Which legal entity is the processor for inference, and which contract covers it.
  • Which exact regions the chosen profile or endpoint can route to, enumerated, not summarised as a geography name.
  • Where abuse-detection or trust-and-safety copies of prompts and outputs are stored, and for how long.
  • Whether human review of flagged content can happen outside the EU, and under whose terms.

AWS calls it EU because it is a geography, not because it is a jurisdiction

The EU inference profile is a routing construct, and geography is not jurisdiction. AWS states that for EU cross-region inference, all destination regions lie within the European Union, with one carve-out worth reading twice: requests originating in London and Zurich can also route back to their own source region. Neither the United Kingdom nor Switzerland is in the EU or the EEA.

Anthropic's region table compounds the ambiguity by marking eu-central-2 (Zurich) and eu-west-2 (London) as EU-profile regions alongside Frankfurt, Paris, Ireland, Stockholm, Milan and Spain.

Our position: if your contract says EEA, the profile prefix is not the control. Call from an EEA region, enumerate the destinations in the IAM policy, and mirror that list in a service control policy so the constraint outlives the engineer who set it up. AWS documents that blocking any destination region breaks cross-region inference outright, which makes the SCP a working guardrail rather than a paper one.

Latency is the weakest argument in this decision

Moving inference to Frankfurt shortens the network leg for European users, and for most workloads that saving disappears into the noise of token generation. A single chat turn spends the bulk of its wall-clock time producing tokens, not crossing the Atlantic. Choosing a platform on latency alone is optimising the smallest term.

Physics is not the bottleneck. Contracts and rate limits are.

The strongest counterargument is agentic work, and it is a fair one. An agent that makes thirty sequential model calls to finish one task pays the network leg thirty times, and a fixed per-request cost that is irrelevant in chat becomes visible in an agent loop. If that is your workload, the argument for European inference gets a second, independent justification beyond compliance.

It still does not change the platform choice, because the loop is dominated by what sits between the calls. Retrieval against a data store in another region, a tool call to an on-premise ERP, an MCP server in a third network: each of those adds a hop that the model provider does not control. Co-locate the retrieval and tool layer with the model, and the ordering of the platform decision stays where it belongs, with data residency and feature coverage.

The constraint that actually caps throughput is the rate limit, and the spread there is dramatic. Foundry's pay-as-you-go tier gives Claude Opus 5 forty requests per minute and 40,000 uncached input tokens per minute; the same model on an Enterprise or MCA-E agreement gets 2,000 requests and two million tokens per minute. Bedrock starts at two million input tokens per minute by default and can be raised to four million without additional Anthropic approval. Pick the wrong tier and your architecture is throttled long before physics gets a say.

Four invoices, two units of account, and residency as a line item

Residency costs ten percent, and that is the least interesting number in the cost model. Bedrock and Vertex both charge a 10% premium for regional endpoints over global routing. The first-party API applies a 1.1x multiplier for US-only inference across every token category, including cache writes and cache reads, so a caching-heavy workload pays the multiplier on the cheap tokens too. On a Priority Tier commitment, each token consumed with US-only inference draws down 1.1 tokens from committed capacity.

The unit of account is where the platforms genuinely diverge. Bedrock bills as a native AWS service against your existing agreement. Foundry does not: Claude there is a third-party Marketplace offering that requires an Azure Marketplace subscription and bills in Claude Consumption Units, and Microsoft classifies it as a Non-Microsoft Product under the Product Terms. If your finance team assumed Claude usage would behave like Azure OpenAI usage on the enterprise agreement, that assumption needs checking before the pilot, not after.

Four vendors, four procurement paths, and one of them does not bill in tokens at all.

PlatformWho invoices youUnit of accountResidency premiumDefault rate limit
Amazon BedrockAWS, as a native serviceTokens, priced per region10% on regional endpoints2M input TPM, raisable to 4M
Google Vertex AIGoogle CloudTokens10% on regional and eu multi-regionPer-project quota set by Google
Microsoft FoundryMicrosoft, via Azure MarketplaceClaude Consumption Units1.1x for the US data zone40 RPM / 40k ITPM pay-as-you-go; 2,000 RPM / 2M ITPM enterprise
Claude API (first party)AnthropicTokens1.1x for inference_geo usPer workspace, by tier

What Bedrock cannot do, and why EU residency forces you into that choice

The features below are missing from Bedrock at every routing setting, global included. They are the price of the platform, not the price of the region — and EU residency is what makes you pay it, because the only two platforms that keep inference in Europe today are Bedrock and Vertex. Choose Europe, inherit their feature set. That chain is the part most business cases skip, and getting it backwards costs you the argument in front of an architect who already runs Bedrock globally and has never had the Files API.

It is not priced in tokens either. It is priced in the code your team writes to replace a managed feature: batch jobs become a queue you operate, and cost attribution that the Usage and Cost API would hand you has to be rebuilt from CloudWatch and CloudTrail.

Vertex AI is barely better. It keeps the web search tool and drops most of the rest.

The list below comes from Anthropic's own feature matrix for the Bedrock integration, which is a platform-level list with no regional qualifier:

  • Files API and URL sources for images and documents.
  • Server-side tools: code execution, web search, web fetch, advisor.
  • Agent infrastructure: Agent Skills, the MCP connector, programmatic tool calling.
  • API endpoints: Message Batches, Models, Admin, Compliance, Usage and Cost.
  • The anthropic-beta header, so new capabilities arrive on AWS's release schedule rather than Anthropic's.
# Two lanes behind one gateway. The lane is a property of the data class,
# not of the feature a developer happens to want this week.
from anthropic import Anthropic, AnthropicBedrockMantle

# Lane A - EU-resident. Regional endpoint, 10% premium, AWS is the processor.
eu = AnthropicBedrockMantle(aws_region="eu-central-1")

# Lane B - everything lane A cannot do: Agent Skills, code execution,
# web search, Message Batches. Anthropic is the processor.
open_lane = Anthropic()

RESIDENT = {"personal-data", "works-council", "customer-contract", "hr-record"}

def complete(prompt: str, data_class: str):
    if data_class in RESIDENT:
        return eu.messages.create(
            model="anthropic.claude-sonnet-5",
            max_tokens=1024,
            messages=[{"role": "user", "content": prompt}],
        )
    return open_lane.messages.create(
        model="claude-sonnet-5",
        max_tokens=1024,
        inference_geo="global",
        messages=[{"role": "user", "content": prompt}],
    )

The call: Bedrock in Frankfurt, plus a second lane you admit to

Default to Bedrock with a regional endpoint in eu-central-1 for every workload that touches personal data, employment records or customer contracts, and run a second lane on the first-party API for agentic and batch work that provably never sees them. Two lanes, one gateway, one place where the routing rule is written down and reviewed.

That split is a decision about data classes, not about vendors.

Vertex AI is the better default in one specific case: your governed data already lives in BigQuery and the retrieval layer would otherwise sit a cloud away from the model. The eu multi-region endpoint carries the same 10% premium as Bedrock, and moving retrieval across providers costs more than the difference.

Foundry is the option to choose when EU residency is not a contractual requirement and Azure-native identity, billing and governance are worth more than the feature gap. That is a defensible position for an internal knowledge assistant over public documentation. It is not a defensible position for anything a works council has an opinion about, and no amount of Azure tenancy changes that while the data zone list reads Global and US. InfoQ reported on 5 July 2026 that no European data zone exists for Claude and that Anthropic's compliance page signposts Foundry in Europe as coming in 2026 without a date. Architecture decisions should not be financed by a roadmap entry.

The forty lines of routing code are the easy part. The work is deciding which data classes exist, who owns that classification, and how the gateway proves after the fact which lane a given request took.

Questions procurement and the DPO will ask

Does running Claude on AWS Bedrock make us GDPR compliant?

No. Residency is one input to a compliance argument, not the argument itself. What an EU inference profile gives you is a documented, auditable statement about which regions process the request. Your controller obligations, records of processing, retention rules and transfer assessments are unchanged by the endpoint you call.

What does EU data residency cost on top of normal token prices?

Ten percent. Amazon Bedrock and Google Vertex AI both price regional endpoints at a 10% premium over global routing, and Anthropic's first-party API charges 1.1x for US-only inference across input, output, cache writes and cache reads. Pexon's fixed-price platform decision and gateway blueprint is €4,900 over two weeks.

Can we use Claude in Microsoft Foundry if our data must stay in the EU?

Not today. Microsoft's own documentation lists two deployment types for Claude: Global Standard and Data Zone Standard (US). There is no European data zone. An Azure-hosted Claude deployment still processes European prompts outside Europe, whatever the rest of your Azure estate does.

Which Claude features do we give up by moving to Bedrock for EU residency?

The gap belongs to the platform, not to the region. On Amazon Bedrock the Files API, server-side code execution, web search and web fetch, Agent Skills, the MCP connector, programmatic tool calling, Message Batches and the Usage and Cost API are unavailable at every routing setting, global included, and the anthropic-beta header is not supported. EU residency is what forces the choice: Bedrock and Vertex are the only platforms that keep inference in Europe today, so choosing Europe means inheriting their feature set.

Do we have to pick one platform for the whole company?

No, and picking one is usually the expensive answer. Inference geography is a per-request property in every SDK, so a single gateway can route regulated data to an EU endpoint on Bedrock and send everything else to the first-party API, which carries no residency premium and is the only platform with the full feature surface.

Next step

Get the platform decision written down before the pilot spreads

Two weeks, fixed price: data classes mapped to lanes, the gateway routing rule, the IAM and SCP guardrails that keep inference where you said it would stay, and a cost model with the residency premium priced in.