Hosting

One gateway in front of every model you use

An LLM gateway puts one API in front of Claude, open-weight models and any other provider. Pexon deploys LiteLLM inside your own cloud tenant with per-team budgets, audit-grade request logging and a routing policy held in configuration, so changing model or provider never means redeploying the applications that call it.

What changes

Before and after one routing layer

QuestionWithout a gatewayWith one
What did AI cost team X?Not answerableA monthly figure per team key
Change model or providerA deployment per calling serviceA config change and a restart
Who asked what, and whenPer-application logs, if anyOne audit trail for every call
Route sensitive work locallyRewrite the callerA policy line
A provider has an outageEach application fails its own wayFallback to a second provider

Every application holds its own key, and nobody can attribute the bill

Spend arrives as one unattributable line in a cloud invoice, no team can be told what it costs, and swapping model or provider means a deployment in every application that calls it.

The requests themselves are fine. What is missing is the layer that would let you see them, price them and route them — and that layer is cheap to add early and expensive to retrofit once a dozen services hold their own credentials.

The first Claude integration is a key in an environment variable. The fifth is a governance problem.

What we deploy

  • One OpenAI-compatible endpoint in front of Claude on Bedrock, Vertex or the Anthropic API, plus any open-weight model you run yourself.
  • Routing policy held in configuration: by workload, by team, by cost ceiling, by whether the payload may leave the tenant.
  • Per-team budgets enforced at the gateway rather than discovered at month end, with tokens and cost recorded against a team or project key.
  • Request logging with retention and pseudonymisation set to what your works council and data protection officer actually agreed to.
  • Health checks and automatic fallback to a second provider, with alerting on error rate rather than on uptime alone.

LiteLLM inside your own cloud account, under your own IAM roles, so no request leaves the boundary your security review already approved.

Trade-off

A gateway is a new component on the request path, and on the day it fails everything fails together. That is the honest cost, and it is why it ships with fallback routing and its own alerting rather than as a proxy somebody stood up. If you have one application calling one model, you do not need this yet — add it when the second team asks for a key, not before.

Why run it rather than buy it

Self-hosted when the constraint is real, hosted when it is not

OpenRouter is a hosted service and it is less work. If requests may not leave your tenant, or if spend attribution has to survive an audit, that trade stops being available and you run the gateway yourself. Most of our customers have at least one of those constraints, which is why we deploy LiteLLM rather than resell a router.

If neither applies to you, we will say so. A gateway you run is a component you own, and owning one you did not need is a bad trade.

Where this connects

Questions buyers ask

What does an LLM gateway actually do that calling the API directly does not?

It gives you one place to enforce budgets, log requests for audit, and decide which model answers which query. Without it, every application holds its own key, nobody can attribute spend to a team, and changing model means a deployment in each of them. The gateway turns those from code changes into configuration changes.

LiteLLM or OpenRouter?

OpenRouter is a hosted service; LiteLLM is software you run. If requests may not leave your tenant, or spend attribution has to survive an audit, you run it yourself and LiteLLM is the answer. If neither constraint applies, OpenRouter is less work. We deploy LiteLLM because our customers usually have at least one of those constraints.

Does a gateway add latency?

A few milliseconds of routing overhead, which is invisible next to model inference time. What it can add is a failure point, so it runs with the same availability treatment as anything else on the request path: health checks, fallback routing to a second provider and alerting on error rate rather than on uptime alone.

How does per-team cost attribution work?

Every request carries a team or project key, and the gateway records tokens and cost against it. That produces a monthly figure per team rather than one unattributable line in a cloud invoice, which is what makes an AI budget conversation possible at all.

Can we route some workloads to a self-hosted model?

That is the main reason to have a gateway. Contract-sensitive or high-volume workloads route to open weights running on your own GPUs, everything else goes to Claude, and the split is a policy line rather than an architecture decision. We size the self-hosted side separately.

Next step

Start with what already calls a model

A two-week blueprint at €4,900. We inventory what already calls a model, measure where the spend lands, and deploy the gateway against one real workload with budgets and logging live. You end with a running gateway and a cost figure per team, not a slide about one.