Skip to main content
Inference on AWS Europe (London), eu-west-2

Claude, hosted in the UK.

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.

Retention
Zero by default
SDK changes
One line
Billing
GBP, per key
client.py diff
- 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

Your clients' data cannot go to the United States.

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’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.

DPIAs stall on the transfer question

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.

Shadow AI fills the gap anyway

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

Three steps. No rewrite.

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.

  1. 1

    Swap your base URL

    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.

  2. 2

    Use your existing SDK

    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.

  3. 3

    Done

    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

Two tiers, described precisely.

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.

UK tier

In-Region · eu-west-2

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

  • Claude Sonnet 4.6
  • Claude Opus 4.6

These are the only two Claude models AWS currently offers for In-Region invocation in London.

EEA tier

EU cross-region inference

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

  • eu-west-1 Dublin
  • eu-west-2 London
  • eu-west-3 Paris
  • eu-central-1 Frankfurt
  • eu-north-1 Stockholm
  • eu-south-1 Milan
  • eu-south-2 Madrid

Zero data retention

AWS Bedrock is zero-data-retention by default: AWS does not store your prompts or completions.

Zero operator access

Bedrock uses zero-operator-access. Anthropic has no access to prompts or completions sent through Bedrock.

Processor and sub-processor

We are the data processor to you. AWS is our sub-processor. Nobody else touches the request.

The residency page sets out what we can and cannot promise in full, including the certifications AWS holds, the ones we do not claim, and the exact contractual position on the DPA, the EU Standard Contractual Clauses and the ICO's International Data Transfer Addendum. Read the data residency page.

PII redaction

Strip identifiers before the model sees them.

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
No detection. The request is forwarded verbatim.
flag
Detect and record types and counts, forward the text unchanged. Useful for measuring exposure before you enforce anything.
redact
Irreversibly replace matches with placeholders such as [NHS_NUMBER]. The original value is never recoverable.
tokenise
Reversible. The model sees «NHS_NUMBER_1»; the original value is restored in the response before it reaches you.

Full privacy-mode reference →

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».

Metering & billing

Know what each team is spending.

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.

Per-key attribution

Issue a key per application, per team or per client. Input, output and cache tokens are counted separately against each one.

Priced in pounds

Token prices, allowances and overage are all quoted and invoiced in GBP. No dollar invoices, no exchange-rate surprises on the expense claim.

Hard stops, not surprises

Requests are refused once a tenant runs far enough past its allowance, so a runaway loop cannot quietly generate a five-figure bill.

Usage headers on every call

Rate-limit and usage headers come back on every response, so your own dashboards can track consumption without polling a separate API.

Keep your prompts in the UK.

Point your existing Anthropic SDK at a new base URL. Nothing else changes.

Questions about a specific compliance requirement? support@dijitul.uk