Protect your AI keys
from cost explosions and abuse
The LLM gateway for every provider — an AI gateway with a hard budget limit before each call, per-client billing and a hash-chained audit trail. OpenAI-compatible, operated in Germany, set up in minutes.
Operations & privacy
LLM gateway from Germany: cost control with budget limit, audit trail and tenant separation
PROMPTOPOLY is operated in Germany — servers in Germany, development in Germany. The gateway is built for everyday GDPR work: response payloads are deleted automatically after seven days, retention periods are fixed, and the audit trail makes every answer traceable. To be fair, GDPR always also involves your own processes — the gateway provides the technical side of it.
The hard budget limit applies before every call: daily, weekly and monthly caps, reserved race-safely. Cost control sits before the invoice, not after it — an agent stuck in a loop stops before it costs money. LLM cost control here means: not noticing at the end of the month, but deciding before every call. That is also the difference that matters in a GDPR or client audit: being able to prove what happened.
Every tenant runs on its own keys with its own separation: own budget, own audit trail, own ledger. Tenant separation becomes the basis of your client billing — the log turns into the line item on the invoice. Cost control you can show per client, instead of one bulk line for everyone.
Integration
Just swap the base URL
// Vorher: Direkt zu OpenAI
const openai = new OpenAI({ apiKey: 'sk-...' });
// Nachher: Über PROMPTOPOLY Proxy
const openai = new OpenAI({
apiKey: 'pk_xxxxxxxxxxxxxxxxxxxx',
baseURL: 'https://promptopoly.com/api/v1/proxy/v1'
});
No code changes required. All OpenAI-compatible SDKs work immediately.
Security
Hard blocks BEFORE forwarding
Authentication
Every request is authenticated via X-Proxy-Key. Inactive or expired keys are rejected immediately.
Firewall
IP allowlist, model whitelist and blocklist regex check the request. Forbidden calls block before budget reservation.
Budget & Wallet
Race-safe budget limit and prepaid wallet debit. No call leaves the gateway without sufficient credit.
Provider Call
Encrypted credentials are decrypted, the provider call is executed and the response returned.
Audit & Billing
Every call is logged in a hash chain. Margin and costs are billed transparently.
Features
What's included
Hard Limits
Daily, weekly or monthly budgets. Race-safe reservation prevents cost explosions.
KeyVault
AES-256-GCM encryption. Plaintext only transiently in RAM. Key rotation included.
Margin & Billing
Percentage, fixed or per 1k tokens. Prepaid or postpaid. Transparent in cents — worked example with real numbers on the pricing page.
Audit Trail
HMAC hash chain. Export as CSV/JSON. Fixed deletion periods.
Firewall
IP allowlist, model whitelist, capability check, blocklist regex.
Multi-Provider
OpenAI, Anthropic, Google Gemini. Unified API, failover between providers.
For agent systems
Your agent, our guardrails
OpenAI-compatible so every agent runs immediately — with streaming, tool calling and a native Anthropic endpoint.
Real streaming
Server-sent events relayed 1:1 from the provider, terminated with [DONE]. Tokens appear as they are produced — ideal for chat UIs and agent loops.
Tool calling
tools, tool_choice and role:"tool" pass through unchanged. The agent calls your functions, the gateway enforces budget and firewall.
Native Anthropic endpoint
POST /v1/messages in the Messages format — Claude Code and the Anthropic SDK run via ANTHROPIC_BASE_URL straight through the gateway.
Agent loop with a tool call
tools = [{"type": "function", "function": {
"name": "get_stock",
"description": "Aktueller Lagerbestand für eine SKU.",
"parameters": {"type": "object", "properties": {"sku": {"type": "string"}}, "required": ["sku"]},
}}]
messages = [{"role": "user", "content": "Ist SKU-4711 noch verfügbar?"}]
first = client.chat.completions.create(model="gpt-4o-mini", messages=messages, tools=tools)
call = first.choices[0].message.tool_calls[0]
result = get_stock(call.function.name, **json.loads(call.function.arguments))
messages.append(first.choices[0].message)
messages.append({"role": "tool", "tool_call_id": call.id, "content": json.dumps(result)})
final = client.chat.completions.create(model="gpt-4o-mini", messages=messages)
print(final.choices[0].message.content)
Limits: n > 1 is not supported; the native Anthropic endpoint has no provider failover.
For agencies
Bill LLM costs per client
Bill costs per client
One gateway, any number of clients — each with its own key, budget and audit trail. Usage is tracked per project and per client, so the log becomes the line item on your client invoice instead of one bulk bill nobody can split.
A hard budget limit before the call
The budget limit applies before the call goes out, not when the bill arrives. Race-safe daily, weekly and monthly budgets plus a prepaid wallet stop a runaway agent while it has still cost nothing.
pk_ auth & audit
Proxy keys instead of provider keys in code. Every call in an HMAC hash chain.
Secure your AI calls
Get started in minutes. No credit card required. Free 0 €, Plus 8 €/month, Pro 15 €/month — all prices include VAT, cancel monthly. From 1.1 cents per call, worked out like the worked example. Operated in Germany.