dark mode for your AI.
APIs · Chat · Agents · Documents.
Three steps. Zero exposure.
Every request is scrubbed before it reaches the model. Every response restored automatically.
Detect & replace
Names, email addresses, phone numbers, IBANs — but also company names, locations, tax IDs, and URLs. Automatically detected and replaced with placeholders like <<PERSON_1>> or <<ORG_1>>.
Forward
The scrubbed request goes to the AI provider of your choice — OpenAI, Anthropic, Azure, or any OpenAI-compatible endpoint. The model only sees pseudonymized data.
Restore
Placeholders in the response are replaced with the original data. You read plain text — the model never saw it.
Session state persists: <<PERSON_1>> always maps to the same person — across every message and tool call.
Integrated in seconds.
No new SDK. No refactoring. Just swap URL and API key.
1from openai import OpenAI
2
3client = OpenAI(
4 api_key="px-...", # your Noirdoc key
5 base_url="https://api.noirdoc.de/v1",
6)
7
8prompt = "..."
9response = client.chat.completions.create(
10 model="gpt-5.2",
11 messages=[{"role": "user", "content": prompt}],
12) 1from anthropic import Anthropic
2
3client = Anthropic(
4 api_key="px-...", # your Noirdoc key
5 base_url="https://api.noirdoc.de",
6)
7
8prompt = "..."
9message = client.messages.create(
10 model="claude-sonnet-4-6",
11 max_tokens=1024,
12 messages=[{"role": "user", "content": prompt}],
13) 1from openai import OpenAI
2
3client = OpenAI(
4 api_key="px-...", # your Noirdoc key
5 base_url="https://api.noirdoc.de/v1",
6)
7
8prompt = "..."
9response = client.chat.completions.create(
10 model="gpt-5.2",
11 messages=[{"role": "user", "content": prompt}],
12) 1from openai import OpenAI
2
3client = OpenAI(
4 api_key="px-...", # your Noirdoc key
5 base_url="https://api.noirdoc.de/v1",
6)
7
8prompt = "..."
9response = client.chat.completions.create(
10 model="openrouter/auto",
11 messages=[{"role": "user", "content": prompt}],
12) Works with any OpenAI-compatible library — Python, Node.js, Go, cURL.
Drop in anywhere.
One proxy for every AI integration. API call, agent workflow, or chat interface — swap the endpoint, done.
Real data never reaches the model.
Personal and business-critical data is detected and replaced — before the request leaves your infrastructure.
Not just GDPR: Company names, locations, tax IDs, and URLs stay internal too.
Two independent detection layers: rule-based and context-sensitive.
Complete audit trail. Every request traceable.
GDPR-compliant by design. Managed in Germany or self-hosted on your infrastructure.
Your data. Any AI. Zero risk.
Managed in Germany or self-hosted on your infrastructure.
v0.1.0