Skip to main content
LLM Gateway · governed model calls

Put model traffic behind one governed endpoint. One OpenAI-compatible API in front of your providers.

The DVARA LLM Gateway is the governed data plane for model calls. Your applications get one OpenAI-compatible endpoint instead of an integration per provider — and because every model call now runs through one place, budget, policy, inspection, routing and evidence become properties of the platform rather than code in each application.

The gateway boots with no licence key; the governance engines need one — see pricing.

Why doesn't integrating providers one by one scale?

Wire each application straight to each provider and you own an SDK per provider, hand-rolled retry and failover, no shared view of cost or tokens, and governance scattered across services with no single place to enforce it. An LLM gateway is the layer that consolidates that: one endpoint your applications call, which understands what is inside an AI request — models, tokens, prompts, tools — and can therefore route, budget, inspect and record on attributes an ordinary API gateway never sees.

What does your application actually talk to?

One endpoint speaking the OpenAI API shapes, in front of fourteen first-class providers and any other OpenAI-compatible endpoint you configure. Switching models is a string change; switching providers is a route change.

One OpenAI-compatible API

Point an OpenAI SDK at DVARA by changing the base URL. Chat completions, embeddings and models are there, and so are the Responses API, the Batch API and files — the same shapes your client already speaks.

Fourteen first-class providers

OpenAI, Anthropic, Gemini, Bedrock, Azure OpenAI, Mistral, Cohere, Groq, Ollama, Qwen, DeepSeek, Moonshot, ChatGLM and Grok, plus a Mock provider for CI. Other OpenAI-compatible endpoints route through the same pipeline once you configure them.

Streaming and structured outputs

SSE streaming, and response_format translated to whatever each provider actually implements — native where it exists, a tool-use rewrite where it does not, and a clear error where the provider cannot do it at all.

Your keys, your credential chain

Bring your own provider keys. Credentials resolve per tenant first, then the platform default, then a vault, then the environment — and strict BYOK refuses the platform fallback so a tenant can only ever spend its own key.

How does DVARA choose a provider, and what happens when one fails?

A route matches the model and its strategy picks from the pool, with providers that cannot honour the request filtered out first. On failure the gateway moves to a healthy capable peer — and where none is capable, it says so rather than substituting one that is not.

Eight routing strategies

Model-prefix and round-robin run keyless. Weighted, latency-aware, cost-aware, canary, geo-aware and intelligent routing are licensed. Routes are stored centrally and take effect on the next request without a restart.

Capability filtering before selection

A provider that cannot honour the requested response format is dropped from the candidate list before anything is chosen. If none on the route can, the call stops with a 400 rather than a degraded answer — no upstream hop.

Retry, circuit breakers, failover

Every provider is wrapped in retry, timeout and a circuit breaker. On failure the gateway moves to a healthy capable peer on the same route and skips candidates whose own circuit is open. These values are read at boot, so changing them is a deploy.

What happens when no peer is capable

Failover re-applies the capability and region checks on every retry, so an incapable fallback is never quietly substituted. When no capable peer exists you get a 503 and a header saying failover was blocked — the honest failure, not a wrong answer.

What runs before a call reaches a provider?

Budget, policy, PII inspection and guardrails — in that order, all of them before egress, and each doing what that tenant configured it to do. Any of them can stop the call while stopping it is still free.

The stages the request walks

Budget, policy, PII scan, guardrails, then routing — in that order, before the provider hop. On the way back: schema validation, grounding, guardrails, PII again, then the audit record.

Policy-as-code

YAML DENY and WARN_AGENT rules with conditions on model, time of day, residency and budget use, or a CEL expression where the matchers cannot compose it. Shadow status runs a policy against live traffic before you make it active.

PII and guardrails, per tenant

Checksum-validated regex detection runs keyless with log or block. Reversible redaction, tokenization and NER models are licensed. Guardrails — injection, jailbreak, prompt leakage, output sanitization — are licensed, and each tenant sets block, flag, or log.

Data residency as a hard gate

Where region constraints are configured, a call that no allowed region can serve is refused with a residency violation rather than routed somewhere it should not go.

What do you get back from every call?

A priced, attributed, recorded call. Spend enforced rather than observed, the metrics and traces your stack already ingests, and an audit record of what was decided and what happened.

Budgets that reject, not just alert

Hard and soft caps at the global, tenant and API-key level. A hard breach rejects the request; a soft breach alerts and downgrades the model. A per-call cost ceiling is available and is off by default.

Response caching

Exact-match by default, with semantic matching as an opt-in that replaces it. PII is tokenized before the key is computed, so lookups and writes use the stripped form, and a tenant’s cache is bounded to that tenant. Measure hit rate on your own traffic before counting on it.

Cost attribution and metrics

Tokens, cost, latency, provider and model recorded per call and attributable per tenant and key. Prometheus metrics and OpenTelemetry traces go to the stack you already run.

Audit records

An append-only record of each request, response and admin action. Keyless, that is a local unsigned log held about a week. Licensed, records are HMAC-signed and hash-chained, a scheduled job re-verifies the chain, and they feed webhooks, SIEM export and compliance reports.

How does a request flow through the gateway?

Six stages, and where a stage sits is the point: everything through step three happens before the provider hop, so a call that fails one of them never leaves. Only the last two see a result.

  1. 1

    Your application calls DVARA

    An OpenAI-compatible request goes to the gateway on :8080 instead of the provider. It is authenticated, resolved to a tenant and key, and counted against that key’s rate limits.

  2. 2

    Budget, policy, inspection

    Budget is checked, policy is evaluated against the request, and the configured PII and guardrail stages inspect it. Any of them can stop the call here — before it costs anything and before it leaves.

  3. 3

    A provider is selected

    The route’s strategy picks from its pool, with providers that cannot honour the request filtered out first. Where caching is enabled, a valid hit is served here and the upstream hop never happens.

  4. 4

    One upstream hop

    DVARA translates the request to that provider’s API and makes a single call, using the credential resolved for this tenant. On failure it moves to a healthy capable peer and re-checks capability and region.

  5. 5

    The response is inspected on the way back

    Schema validation, grounding checks, guardrails, and a second PII pass run on the response — each doing what that tenant configured it to do.

  6. 6

    The call is recorded

    Tokens, cost, latency, provider, model, the decisions taken and the outcome are written to the audit record and exposed as metrics and a trace. A trace ID comes back on every response.

How does the LLM Gateway fit with the rest of DVARA?

Three governed data planes and one control plane, deployed and scaled separately. Operators change governance in the control plane; the data planes read the change and enforce it on the request path.

Where do you see the providers, routes, and spend?

In DVARA Flightdeck, the console that ships with the platform. It shows traffic per provider, which route each call took, and what it cost — without standing up a separate observability stack first.

The DVARA Flightdeck dashboard — provider health, request volume, latency, token usage, and cost across the models routed through the gatewayThe DVARA Flightdeck dashboard — provider health, request volume, latency, token usage, and cost across the models routed through the gateway
One dashboard for request volume, latency, token usage, and cost across the providers routed through the gateway.

How does DVARA compare with the gateways it replaces?

Against the three alternatives that score strongest on core gateway and routing in the matrix behind how DVARA compares — chosen by score, not by how well DVARA does against them. Each row is checkable against that product's own public documentation.

CapabilityDVARAPortkeyLiteLLMBifrost
OpenAI-compatible unified API
SSE streaming (zero-copy pass-through)
Structured outputs across providers
Multi-provider (14+: OpenAI, Anthropic, Gemini, Bedrock, Azure, Ollama, Mistral, Cohere, Groq, Qwen, DeepSeek, Moonshot, ChatGLM, Grok)
Weighted routing + failover
Latency-aware routing (EWMA P95)
Pricing modelLicensed, sized by request volume — no hard stop on overageSubscription from $49/mo + per-request overage (source)Usage-priced per call (Cloud); OSS proxy self-hosted (source)See their pricing

Capabilities last verified June 2026; pricing models August 2026. A stale mark is worse than no claim — every row is checkable against each product's own public documentation. For the full matrix across ten alternatives, see how DVARA compares.

What do you need to run the LLM Gateway?

The gateway itself needs nothing — it boots from public images with no key. What needs a licence is most of what makes it a governance gateway rather than a router. See what a licence covers.

What runs with no licence key

The gateway and the console boot from public images with no key: the OpenAI-compatible API, the providers, model-prefix and round-robin routing, streaming, structured outputs, retry and failover, and multi-tenancy.

What a licence key adds

The governance engines: latency-, cost-, canary- and geo-aware routing, guardrails, reversible PII redaction and NER, budgets and FinOps, response caching, signed and chained audit with SIEM export and compliance reports, and SSO, mTLS and vault-backed credentials.

What is licensed-only

The DVARA MCP Gateway and A2A Gateway have no keyless tier at all. Their images are private and they refuse to start without a valid key.

Common questions about the DVARA LLM Gateway

What does the LLM Gateway govern?

Model calls made through it. Each one is authenticated to a tenant and key, checked against budget and policy, inspected by whichever PII and guardrail stages that tenant configured, routed to one provider, and recorded. A call your application makes straight to a provider is not in that path.

Is it OpenAI-compatible, and does my app need provider-specific code?

It exposes the OpenAI API shapes — chat completions, embeddings, models, the Responses API, and the Batch API with files — so an existing SDK works by changing the base URL. Your application does not integrate providers individually; DVARA translates to each provider’s own API and hands you back the OpenAI shape.

Which providers are supported?

Fourteen first-class: OpenAI, Anthropic, Gemini, Bedrock, Azure OpenAI, Mistral, Cohere, Groq, Ollama, Qwen, DeepSeek, Moonshot, ChatGLM and Grok — plus a Mock provider for CI. Any other OpenAI-compatible endpoint routes through the same pipeline once you configure a route or base URL for it. Providers differ in what they support, so the gateway declares each one’s capabilities and routes on them.

How do routing, fallback, and failover work?

A route matches the request’s model and applies one of eight strategies to pick from its pool. Model-prefix and round-robin run keyless; latency-, cost-, canary- and geo-aware routing are licensed. Providers that cannot honour the request are filtered out before selection, and on a failure or an open circuit the gateway moves to a healthy capable peer, re-checking capability and region. If no capable peer exists it returns a 503 saying so rather than substituting one that cannot do the job.

Can budgets apply per tenant, per key, or per call?

All three. Hard and soft caps sit at the global, tenant and API-key level: a hard breach rejects the request, a soft breach alerts and downgrades the model. A per-call cost ceiling exists as well and is off by default. Budgets are a licensed capability.

What happens to prompts and responses?

They pass through the gateway to the provider you routed to — that is the job, so they do leave your network on the upstream hop. What DVARA controls is what happens first: policy evaluation, and PII and guardrail inspection configured per tenant, which can block a call, redact values, or record the detection before egress. The response is inspected again on the way back.

Can it be self-hosted with our own provider keys?

Yes. You run it in your own environment and bring your own keys. Credentials resolve per tenant, then the platform default, then a vault, then the environment, and strict BYOK refuses the platform fallback so a tenant can only spend its own key. Self-hosting decides where the gateway runs and where your keys are held; it does not change the fact that the call to a hosted provider goes to that provider.

How does caching handle sensitive prompts?

PII is tokenized before the cache key is computed, so both the lookup and the write use the stripped form and two requests differing only in identifying values share an entry. A tenant’s cache is bounded to that tenant. Blocking PII short-circuits the request before the cache is reached at all. Caching is licensed, exact-match by default, with semantic matching as an opt-in — measure hit rate on your own traffic before relying on it.

How are model calls connected to agent sessions?

Send an X-Session-Id header and DVARA groups the requests sharing it into one agentic session, which is also what activates loop detection and session-level audit grouping. The same header on MCP tool calls ties a model turn and the tool calls under it together. Without the header the call is still recorded and traced, just not grouped.

Which edition includes which capability?

The gateway and console boot with no licence key: the OpenAI-compatible API, providers, model-prefix and round-robin routing, streaming, structured outputs, resilience, multi-tenancy, regex PII detection and a local unsigned audit log. A licence key adds the governance engines — advanced routing, guardrails, reversible redaction, budgets, caching, signed and chained audit, SIEM export, compliance reports and SSO. The MCP and A2A Gateways are licensed-only.

Guides on running an LLM gateway

LLM Gateway vs API Gateway

Why API gateways like Kong and NGINX can’t govern LLM and agent traffic — and the six gaps a purpose-built AI gateway closes.

Streaming, Structured Outputs & Observability

Beyond the basics — streaming responses, JSON-schema-enforced structured outputs, and per-call token/cost/latency telemetry.

Getting Started: OpenAI SDK Compatibility

Point the OpenAI SDK you already have at DVARA and call every provider through one endpoint — a five-minute switch.

Multi-Provider LLM Routing

One governed API in front of every model — model-prefix, weighted, and capability-aware routing, with policy, cost, and PII applied on the same path.

LLM Fallback & Failover

Governed resilience: circuit breakers and capability-aware failover that keep AI traffic serving — and audited — when a provider degrades.

LLM Cost Management

Attribution and enforcement, not just dashboards — real-time cost attribution, hard budget caps, model downgrade, and chargeback.

Self-Hosted LLM Gateway

Governance that runs inside your perimeter — policy, PII, and audit before egress, with BYOK and vault-backed credentials.

Semantic Caching for LLMs

Serve semantically similar prompts for $0, PII-safe by default — the cost-and-latency win that stays a governance-safe surface.

LLM Observability

The telemetry layer under governance — Prometheus metrics, OpenTelemetry traces with the GenAI semantic conventions, and per-request structured logs.

LLM Gateway Alternatives

A governance-first comparison framework — the categories on the market and the criteria that matter, weighted toward enforcement over dashboards.

Put one application's model calls behind the gateway.

Run it with no key, point one application at it, and add the governance engines when you want policy, budgets and signed audit on the same path. Or read how routing and the request pipeline work.

Last updated