One endpoint for everything
Alongside chat, Responses, Anthropic Messages, embeddings, audio (speech-to-text and text-to-speech), image generation and reranking all run through the same endpoint, the same key and the same contract.
With Noirdoc you connect GPT, Claude, Gemini and open-source models through a single interface. Your OpenAI or Anthropic SDK stays as it is – but you now have a single German contracting party and a ready-made Data Processing Agreement (DPA), and you pay the standard list price.
€5 starter credit for testing. No credit card required.
base_url changes. You only swap the URL and the API key in your code. Our gateway speaks both the OpenAI and the Anthropic format natively, so your requests stay exactly as they are.
import os
from openai import OpenAI
client = OpenAI(
added: base_url="https://api.noirdoc.de/v1",
api_key=os.environ["NOIRDOC_API_KEY"], # Key from the portal
)
response = client.chat.completions.create(
model="gpt-5.4",
messages=[{"role": "user", "content": "Hello"}],
)import os
from anthropic import Anthropic
client = Anthropic(
added: base_url="https://api.noirdoc.de",
api_key=os.environ["NOIRDOC_API_KEY"], # Key from the portal
)
message = client.messages.create(
model="claude-sonnet-5-5",
max_tokens=1024,
messages=[{"role": "user", "content": "Hello"}],
)import OpenAI from "openai";
const client = new OpenAI({
added: baseURL: "https://api.noirdoc.de/v1",
apiKey: process.env.NOIRDOC_API_KEY, // Key from the portal
});
const response = await client.chat.completions.create({
model: "gpt-5.4",
messages: [{ role: "user", content: "Hello" }],
});import Anthropic from "@anthropic-ai/sdk";
const client = new Anthropic({
added: baseURL: "https://api.noirdoc.de",
apiKey: process.env.NOIRDOC_API_KEY, // Key from the portal
});
const message = await client.messages.create({
model: "claude-sonnet-5-5",
max_tokens: 1024,
messages: [{ role: "user", content: "Hello" }],
});# NOIRDOC_API_KEY: Key from the portal
added: curl https://api.noirdoc.de/v1/chat/completions \
-H "Authorization: Bearer $NOIRDOC_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.4",
"messages": [{"role": "user", "content": "Hello"}]
}'# NOIRDOC_API_KEY: Key from the portal
added: curl https://api.noirdoc.de/v1/messages \
-H "x-api-key: $NOIRDOC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-d '{
"model": "claude-sonnet-5-5",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "Hello"}]
}' /v1/models and /v1/prices. Alongside chat, Responses, Anthropic Messages, embeddings, audio (speech-to-text and text-to-speech), image generation and reranking all run through the same endpoint, the same key and the same contract.
When several hosts offer the same model, Noirdoc automatically picks the cheapest provider your API key allows.
If a provider goes down or returns a server error, the next one takes over automatically – while your request is still running.
You can set a separate spending limit for every API key (daily, weekly or monthly). At 80% you get an email, at 100% the key blocks further calls.
Our DPA applies automatically as soon as you create your account. It lists every model provider with its registered office and server location – you can read the full agreement before you sign up.
Read the DPASubprocessors (Annex 4)For professionals bound by secrecy (§ 203)
Every API key has its own rules. So a key for sensitive data can be locked down more tightly than one for internal testing.
Your contracting party is Noirdoc in Munich. Gateway, account, billing and logs run entirely in Europe.
Annex 4 and every model's entry in the catalogue show where purely European hosts do the processing and where US groups with EU data centres (such as Azure or Google Vertex) are used.
You pay the provider's price, and we add nothing on top. We bill language models by tokens, image models per image and transcription per minute of audio.
| Model | Route | Input | Output |
|---|---|---|---|
| Claude Opus 5.5Google VertexEU | Google VertexEU | 3.93 | 19.67 |
| GPT-5.6 SolAzureEU | AzureEU | 3.95 | 19.75 |
| GPT-5.4AzureEU | AzureEU | 2.47 | 14.82 |
| Claude Sonnet 5.5Google VertexEU | Google VertexEU | 1.97 | 9.83 |
| Gemini 3.8 FlashGoogle VertexEU | Google VertexEU | 1.49 | 7.41 |
| GLM 5.3AKI.IOEU/DE | AKI.IOEU/DE | 1.00 | 3.50 |
| Mistral 4AKI.IOEU/DE | AKI.IOEU/DE | 0.20 | 0.60 |
| GPT-OSS 120BAKI.IOEU/DE | AKI.IOEU/DE | 0.15 | 0.55 |
Excerpt from the catalogue, live from /v1/prices.
€5 starter credit for testing. No credit card required.
FAQ
No. Prompts and responses are neither stored after the request nor used for training. Exceptions apply to features that technically require storage, such as uploaded files or batch jobs, and to the abuse monitoring of individual providers. All exceptions are listed in Annex 6 of the DPA and apply only if you actively use the feature or a model from that provider. For billing and troubleshooting we store technical metadata only (see Privacy Policy).
Through prepaid credit. You top up your account by bank transfer or card and immediately receive an invoice showing VAT. There are no fees: the full net amount you pay in becomes credit on your account. On request, we refund any remaining credit when the contract ends.
Microsoft Azure and Google Vertex (which also serves Claude and Gemini). Their servers are in the EU, but the operators belong to US groups and are subject to the US CLOUD Act. If you need to rule that out, restrict your key in the settings to providers without CLOUD Act exposure.
When you register, you conclude a DPA under Art. 28 GDPR with us. It lists every model provider as a subprocessor with its registered office and region (Annex 4). If you add your own key for an external provider such as OpenAI, Anthropic or OpenRouter (Bring Your Own Key), you engage that provider directly. Those calls fall under your contract with that provider; we process only the routing and the metadata (clause 3.8 of the DPA).
§ 203 of the German Criminal Code (StGB) governs the duty of confidentiality for professionals bound by secrecy (e.g. lawyers, doctors, tax advisors). Anyone it applies to needs an additional confidentiality agreement from their service providers. Ours is ready for you in the portal. If you state during onboarding that you are bound by professional secrecy, your whole organisation uses only providers bound to confidentiality under § 203. Or you can set this later for each API key.
In data centres in Germany or the EU. You can see the exact location next to every model in the model catalogue and in Annex 4 of the DPA.
Your account is set up in a few minutes, and the DPA applies immediately. If anything is unclear before you start, write to us at hello@noirdoc.de – our development team in Munich replies to you directly.