BerryRouter
Open-source LLM gateway control plane

One API for OpenAI, Anthropic, Google, and compatible models you route to.

BerryRouter gives teams a self-hosted LLM gateway with provider routing, BYOK, budgets, rate limits, prompt retention, ClickHouse analytics, and request logs built for debugging real production traffic.

OpenAI-style APIProvider fallbackPrompt loggingBudget controls

Last 24 hours

Usage and request logs

Spend
$128.42
Requests
18,920
Tokens
92.4M
P95 latency
841ms
Cost by modellive
1
2
3
4
5
6
7
Recent generations
openai/gpt-4.1-mini200$0.039809ms
anthropic/claude200$0.0181.1s
google/gemini429$0.000204ms
custom/local200$0.006312ms
OpenAI logo
Anthropic logo
AWS Bedrock logo
Azure OpenAI logo
Azure AI Foundry logo
Google AI Studio logo
Google Vertex AI logo
Groq logo
xAI logo
DeepSeek logo
Mistral AI logo
Perplexity logo
Cerebras logo
Canopy Wave logo
Alibaba Cloud Model Studio logo
Z AI logo
Moonshot AI logo
Together AI logo
NovitaAI logo
Nebius Token Factory logo
NanoGPT logo
BytePlus ModelArk logo
MiniMax logo
Inference.net logo
EmberCloud logo
Xiaomi MiMo logo
Avalanche logo
Glacier logo
Quartz logo
Features

Everything you need to ship with confidence

Track every request, route across providers, enforce budgets, and inspect the exact data flowing through the gateway.

Unified API surface
OpenAI-compatible gateway routes for chat, responses, tools, streaming, audio, images, and more.
Multi-provider routing
Route by model, provider health, cost, latency, fallback policy, provider keys, and custom adapters.
Usage-first observability
Track requests, tokens, timing, cache usage, errors, provider attempts, prompts, and completions.
Budget enforcement
Hard and soft spend controls for organizations, projects, API keys, providers, and models.
Provider key vault
Store encrypted BYOK credentials with priority, model scoping, last-used metadata, and audit trails.
Guardrails built in
Apply input and output checks, redaction, model/provider rules, PII handling, and retention controls.
ClickHouse analytics
High-volume event storage for dashboard queries, usage rollups, security events, and latency analysis.
Request payload archive
Store full prompts, upstream payloads, stream transcripts, and responses in S3-compatible storage.
One request. Any model.

Route by health, price, policy, or explicit provider.

The gateway evaluates API keys, budgets, rate limits, guardrails, model capabilities, provider health, and fallback policy before it calls upstream.

API key
br_live...
Policy
budget ok
Router
lowest latency
Provider
healthy
Logs
stored
Self-hosted
deployment
Portable
infrastructure
One API
client surface
Familiar client surface

Keep your OpenAI-style client. Change the base URL.

Point supported chat, response, image, audio, moderation, and video calls at BerryRouter, then let the gateway handle provider selection, telemetry, logging, and controls.

Python
from openai import OpenAI

client = OpenAI(
    base_url="https://gateway.yourcompany.com/v1",
    api_key="br_live_..."
)

response = client.chat.completions.create(
    model="openai/gpt-4.1-mini",
    messages=[
        {"role": "system", "content": "Use concise answers."},
        {"role": "user", "content": "Summarize this trace."}
    ],
    stream=True
)

for chunk in response:
    print(chunk.choices[0].delta.content or "", end="")
FAQ

Common questions

The gateway is backend-first, but the dashboard is where usage, logs, and control-plane operations become visible.

Enterprise-grade, open source

Built for teams that need control and auditability.

Run locally with Docker, deploy with Postgres, Redis, ClickHouse, and S3-compatible storage, then manage the gateway through the control plane.

Datastore ready
Postgres, Redis, ClickHouse, and MinIO locally.
Self-hosted keys
Provider credentials stay in your infrastructure.
Audit visibility
Every admin action and key change can be reviewed.
Usage controls
Budgets, rate limits, and retention policies are enforceable.
Deploy on your own server

Start routing requests through your own gateway.

Create an internal API key, configure provider keys, then watch usage and logs light up request by request.