GDPR LLM API with EU data residency and a DPA

Keep LLM prompts, outputs and stored data in the EU with an EU-only API host, and find the GDPR Data Processing Agreement and the sub-processors.

To keep LLM prompts and outputs in the EU, send your requests to the EU-only host https://api.eu.munito.ai. To keep stored data in the EU, choose the EU data region when you sign up. The GDPR Data Processing Agreement (DPA) forms part of the Terms of Service, so it applies with no signature.

Send requests to the EU host

The EU host runs each request in the EU. Your key and your code stay the same. Only the base URL changes.

SDKEU base URL
OpenAIhttps://api.eu.munito.ai/inference/v1
Anthropichttps://api.eu.munito.ai/inference

Each response names its region in the munito-region header: EUROPE, US or GLOBAL.

pip install openai
export MUNITO_API_KEY="munitoai_..."
import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.eu.munito.ai/inference/v1",
    api_key=os.environ["MUNITO_API_KEY"],
)
raw = client.chat.completions.with_raw_response.create(
    model="qwen/qwen3.8-27b",
    messages=[{"role": "user", "content": "Say hello in French."}],
    max_tokens=2048,
)
print("Region:", raw.headers["munito-region"])
print(raw.parse().choices[0].message.content)

The script prints Region: EUROPE.

Pin one request with a regional model ID

On the global host https://api.munito.ai/inference/v1, add @eu to the model ID. The request then runs in the EU, as on the EU host.

curl -i https://api.munito.ai/inference/v1/chat/completions \
  -H "Authorization: Bearer $MUNITO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen/qwen3.8-27b@eu",
    "messages": [{"role": "user", "content": "Hello!"}],
    "max_tokens": 2048
  }'

The response carries munito-region: EUROPE. The model catalog shows the regions of each model.

Choose where stored data lives

Each workspace stores its data in one data region: EU or US. The console asks at signup, and EU is the default. You can change it until your account is active. After that, the data region is fixed.

The data region applies to the work that Munito AI keeps for you:

  • Responses with store: true, and background responses.
  • Chat completions with store: true.
  • OCR requests that you retrieve later.

The Admin API returns the data region in GET /organization.

Errors with status 421

A request that the host cannot serve in the region you asked for gets 421 Misdirected Request. Send the same request to the host that the message names.

CaseMessage
An account pinned to the EU calls the global hostThis account is pinned to EUROPE. Call https://api.eu.munito.ai instead.
A request that keeps data runs outside the data regionThis workspace stores data in EUROPE. A request that keeps data cannot run in US.
A model ID names a region that the host does not serveThis endpoint cannot serve US.

To pin your whole account to the EU, contact us through Support in the console. A pinned account must use the EU host.

What residency covers

CoveredNot covered
Model inference of requests to the EU host or with an @eu model IDThe path of your traffic across the internet (transit)
Customer content that Munito AI stores for an EU workspaceRequests to the global host without a pin
Account, verification and billing services (see below)

Overflow is off by default. When you opt in, an EU request can go to an inference provider that is based and regulated in the EU.

Residency covers processing and storage. It does not cover transit. TLS terminates on Munito AI's own gateways, in the EU for the EU and global hosts. Cloudflare provides only DNS for Munito AI's domains.

A request to the global host without a pin can run in any region. Account, sign-in, phone verification, payment and abuse checks use services that can process data outside the EU. The Privacy Policy names them.

GDPR documents

DocumentWhere
Data Processing Agreementlegal.munito.ai/dpa
Sub-processors, by regiontrust.munito.ai/subprocessors
Privacy Policylegal.munito.ai/privacy
Terms of Servicelegal.munito.ai/terms
Trust centertrust.munito.ai

Munito AI is the processor for the content that you send. It is the controller for account, security, usage and billing data.

Munito AI France, a French SAS in Paris, operates Munito AI and is the seller for EU and self-serve customers. The DPA names Munito AI France.

For a signed copy of the DPA, print the DPA page, sign it, and send it to legal@munito.ai. Munito AI returns a countersigned copy.

The trust center lists each sub-processor for the EU, US and Global regions. Munito AI announces a new sub-processor there before it receives customer data. The DPA states the notice period.