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.
| SDK | EU base URL |
|---|---|
| OpenAI | https://api.eu.munito.ai/inference/v1 |
| Anthropic | https://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.
| Case | Message |
|---|---|
| An account pinned to the EU calls the global host | This account is pinned to EUROPE. Call https://api.eu.munito.ai instead. |
| A request that keeps data runs outside the data region | This 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 serve | This 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
| Covered | Not covered |
|---|---|
Model inference of requests to the EU host or with an @eu model ID | The path of your traffic across the internet (transit) |
| Customer content that Munito AI stores for an EU workspace | Requests 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
| Document | Where |
|---|---|
| Data Processing Agreement | legal.munito.ai/dpa |
| Sub-processors, by region | trust.munito.ai/subprocessors |
| Privacy Policy | legal.munito.ai/privacy |
| Terms of Service | legal.munito.ai/terms |
| Trust center | trust.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.
Related pages
Committed spend
Commit to an amount of open-model inference for volume rates, with a contract, an order form and a monthly invoice in USD, net 30.
Data privacy
The Munito AI API keeps no prompts or outputs by default and does not train models on your data. See what it stores only when you ask, and for how long.