Anthropic’s own API is US-processed
Anthropic does not offer an EU or UK data-residency option on its public API. Requests are processed and stored in the United States. For a lot of UK organisations that alone closes the door.
Dijitul AI Gateway is an API gateway that speaks the Anthropic Messages API and runs your requests on AWS Bedrock in London. Change one line in your SDK configuration — your prompts are processed in the UK and do not leave it.
- base_url="https://api.anthropic.com"
+ base_url="https://ai.dijitul.uk/v1"
That is the whole migration. The official Anthropic SDKs work unchanged — same request shape, same response shape, same streaming events, same tool-use blocks.
The problem
Solicitors, accountants, healthcare providers and the public sector all sit under contractual or regulatory constraints on where personal data is processed. That is usually the end of the AI conversation — not because the technology is unsuitable, but because the hosting is.
Anthropic does not offer an EU or UK data-residency option on its public API. Requests are processed and stored in the United States. For a lot of UK organisations that alone closes the door.
An international transfer means transfer risk assessments, standard contractual clauses and an ICO addendum — plus a supplier questionnaire nobody has time to complete. Projects die in the paperwork.
While procurement deliberates, staff paste client matter into consumer chatbots. The practical risk is not the sanctioned tool you blocked; it is the unsanctioned one you cannot see.
How it works
There is no proprietary SDK to adopt and no abstraction layer to learn. We implement the Anthropic Messages API, so your existing integration keeps working.
Set the SDK base URL to https://ai.dijitul.uk/v1
and use the API key we issue you. Both Authorization: Bearer and
x-api-key are accepted.
The official anthropic packages for Python, TypeScript and PHP work
unchanged, as do LangChain, LlamaIndex and anything else that lets you set a base URL.
Requests are invoked on AWS Bedrock in London. Usage is metered per key and billed in
pounds. Every response carries an X-Gateway-Regions header naming the
regions the request was eligible to run in.
import os
from anthropic import Anthropic
client = Anthropic(
api_key=os.environ["GATEWAY_API_KEY"],
base_url="https://ai.dijitul.uk/v1", # the only line that changes
)
message = client.messages.create(
model="claude-sonnet-4-6",
max_tokens=1024,
messages=[
{"role": "user", "content": "Summarise this clause in plain English."}
],
)
print(message.content[0].text)
Data residency
We will not tell you a model is UK-only when it is not. Each tier below states exactly which AWS regions can process your request, and the model catalogue is enforced accordingly.
Your prompts are processed in the UK and do not leave it.
Requests are invoked In-Region against AWS Europe (London), eu-west-2.
Inference happens in London and nowhere else.
Models on this tier
These are the only two Claude models AWS currently offers for In-Region invocation in London.
Processed within EU/EEA regions; may leave the UK but never the EEA.
All other models use AWS's EU cross-region inference profile. AWS may process the request in any of the seven regions below. It is not UK-only, and we do not describe it as such.
Possible processing regions
AWS Bedrock is zero-data-retention by default: AWS does not store your prompts or completions.
Bedrock uses zero-operator-access. Anthropic has no access to prompts or completions sent through Bedrock.
We are the data processor to you. AWS is our sub-processor. Nobody else touches the request.
PII redaction
A detection pass runs centrally on every request, so the control does not depend on each application team remembering to implement it. Four modes, set per tenant or per key.
off
flag
redact
[NHS_NUMBER]. The original value is never recoverable.tokenise
«NHS_NUMBER_1»; the original
value is restored in the response before it reaches you.What your application sends
Please draft a chaser to Margaret Ellis about the
unpaid invoice. Her NHS number is 943 476 5919 and
her email is m.ellis@example.co.uk.
What the model
sees (tokenise)
Please draft a chaser to «PERSON_1» about the
unpaid invoice. Her NHS number is «NHS_NUMBER_1» and
her email is «EMAIL_1».
An honest caveat
Tokenisation changes the text the model reasons over. If the task depends on the redacted value itself — comparing two NHS numbers, validating a postcode, sorting names alphabetically — the model can get it wrong. Useflag or off for those calls.
Metering & billing
Every request is metered against the API key that made it, so cost is attributable to a project, a department or a client matter without you building any of it.
Issue a key per application, per team or per client. Input, output and cache tokens are counted separately against each one.
Token prices, allowances and overage are all quoted and invoiced in GBP. No dollar invoices, no exchange-rate surprises on the expense claim.
Requests are refused once a tenant runs far enough past its allowance, so a runaway loop cannot quietly generate a five-figure bill.
Rate-limit and usage headers come back on every response, so your own dashboards can track consumption without polling a separate API.
Point your existing Anthropic SDK at a new base URL. Nothing else changes.
Questions about a specific compliance requirement? support@dijitul.uk