AI costs explode?
One line on the vendor invoice, and no way to say which team or project spent it. With TORHAUS.AI every request is priced and booked to a cost centre, including budgets that stop spend at the cap.
→ Control costsEvery company running AI in production hits the same wall once more than one team shares an API key: vendor keys grant access, but they don't answer who spent what, who may call which model, what was sent, or which provider answered – and each of those questions lands on a different desk. TORHAUS.AI puts one gate in front of every prompt and hands each desk full visibility and control.
One line on the vendor invoice, and no way to say which team or project spent it. With TORHAUS.AI every request is priced and booked to a cost centre, including budgets that stop spend at the cap.
→ Control costsSensitive data, PII, internal codes — all flowing into model APIs with no way to block, redact or enforce policy. TORHAUS.AI gives you guardrails that stop leaks before they happen.
→ Enforce policyNo record of which prompts left the company, or what was in them. TORHAUS.AI gives you one audit row per request, so you can see and prove what actually left.
→ Audit promptsEvery provider switch is a code change and a redeploy across every app. Applications ask for an alias; TORHAUS.AI lets you decide which provider answers, with automatic failover.
→ Route providersTORHAUS.AI runs as one binary on infrastructure you control, in a region you chose, talking only to the model endpoints you configured. It has no home to phone. Where your data lives follows from where you install it and which providers you point it at, which is the only kind of sovereignty a piece of software can honestly offer you.
→ How you run itHow it works: Your gateway is a single‑tenant instance, administered through a single bootstrap account whose password the console forces you to rotate before anything else opens.
Finance teams need to know who spent what, and on which project. TORHAUS.AI prices every request at the vendor’s rate, books it to a cost centre, and enforces budgets before spend runs away — giving you the clarity your invoice never had.
Prices and billing currency are set per provider endpoint, so a vendor invoicing in EUR and one invoicing in USD are each accounted natively, with nothing converted at write time.
Spend caps on an organization, a team or a single virtual key, per day, week, month or lifetime.
402, not 429. A 429 makes SDK retry logic back off and try again against a condition that will never clear on its own.Organizations, teams under them, and any number of virtual keys per team, each with a cost centre you can hand to accounting.
TORHAUS.AI is your security layer that enforces data security at the prompt level: Guardrails let you define what must not leave your company — PII, secrets, internal identifiers — before a prompt reaches any provider. Policies apply globally or per team, and move between staging and production as files, not as hours of clicking.
fail_closed and a check that errors, an unreachable webhook say, blocks the request instead of letting it through.The request never reaches the provider. The client gets an OpenAI-shaped error it already knows how to handle.
The match is rewritten before the request leaves, and before anything is written down.
The request passes and the verdict lands on the audit row. This is how you measure a rule before you enforce it.
Guardrails read the prompt text your users write. Whatever your policy needs beyond that, a house pattern or an internal project code, is a regex rule you add yourself.
Compliance is becoming mandatory: the EU AI Act phases in from 2025, and DORA and NIS2 already demand logging, access control and vendor oversight. TORHAUS.AI gives you one structured audit row per request — the evidence you need to prove how AI is used inside your company.
X-Forwarded-For is ignored entirely until you say how many reverse proxies really sit in front. Believing that header by default would let any caller write whatever address it liked into your audit log.Illustrative row. Field names and units are the ones the gateway actually writes.
Lower numbers are tried first. Targets sharing a number split traffic by weight. A struck-through target is one whose circuit breaker is open.
When routing is baked into your apps, every provider hiccup becomes your problem. TORHAUS.AI lifts routing out of the code: clients call an alias, and the gateway handles failover, skipping degraded targets and recovering cleanly.
Under the hood, each alias maps to targets arranged in priority tiers and weighted within a tier. If a provider degrades, its circuit breaker opens, the balancer skips it, and traffic flows to the next tier — with the audit row showing exactly which targets were tried. Recovery happens with a single probe, not a stampede.
Integrating TORHAUS.AI in your existing stack is as easy as it can get: Point any OpenAI SDK at the gateway, give it a virtual key, and ask for an alias instead of a model name. That is it.
Your workflows stay exactly as they are. TORHAUS.AI simply sits in the middle and takes care of the hard parts: Upstream, it routes to whatever providers you trust. Downstream, your governance stays in one place. Same client, same methods, same responses — just governed, logged, and routed through your gateway.
# The only change your developers make.
from openai import OpenAI
client = OpenAI(
base_url="https://gateway.example.com/v1",
api_key="tor_...", # a virtual key
)
client.chat.completions.create(
model="gateway-balanced", # an alias, not a model
messages=[{"role": "user", "content": "Hello"}],
)
# Charged to a team. Checked against a budget.
# Screened by your guardrails. Written to the log.
→ 200 OK x-request-id: 01JD8P4W2Q…
Simple Plug-in, no friction. Your applications keep calling the OpenAI API. The gateway keeps everything else working — routing, guardrails, budgets, logging, and model choice.
Proportions illustrative. The figures are whatever your own traffic measures, per request.
Every stage of a request is timed separately and written to the audit row in microseconds, including the one that matters: total minus the upstream call, which is everything TORHAUS.AI itself spent. The request detail page draws it as a stacked bar, so an outlier stage is obvious rather than argued about.
Hosting isn’t a technical detail — it’s what your DPO, your Betriebsrat and your platform team must be able to stand behind, and what regulation expects you to prove. TORHAUS.AI allows you to choose the hosting model that best fits your company's needs.
We run TORHAUS.AI for you on infrastructure in the European Union, and you get the console on day one instead of a deployment project.
The binary, in your account, in your region, under your own Kubernetes or Compose, with your own Postgres and Valkey.
Your own hardware, your own network, and a gateway that will happily never see the internet.
Thirty minutes, your questions, and a live gateway rather than slides. Bring the person who will ask what happens to the prompts. That is the part we like doing.
Built and supported from Rosenheim, Germany