TL;DR
If you want a managed LLM gateway with zero ops, use OpenRouter: one credit balance, instant access to every model, nothing to run. The trade is a platform fee on credit purchases (5.5% on card top-ups) and the fact that your prompts and usage flow through their infrastructure.
If you want to own your keys, your data, and your routing with no per-call markup, self-host LiteLLM (open source, ~50k stars, MIT). The cheapest hands-off way to run it is a one-click managed pod: InstaPods at $15/mo flat, with bundled PostgreSQL, managed TLS, and daily backups. You bring your own provider keys, so you pay providers directly with nothing added on top.
Both are good. They are just different trades. Table below.
What LiteLLM is
LiteLLM is the open-source LLM gateway. It exposes one OpenAI-compatible endpoint in front of 100+ providers (OpenAI, Anthropic, Gemini, Bedrock, Azure, and more) and adds:
- Provider routing, load balancing, and fallbacks
- Virtual keys (scoped
sk-keys per user or project, each with a budget and rate limit) - Per-key and per-team spend tracking
- An admin UI
It is what sits behind a lot of self-hosted AI stacks. If you run n8n, agents, or your own apps, every model call can go through one LiteLLM endpoint.
OpenRouter vs self-hosted LiteLLM
| OpenRouter (managed) | Self-hosted LiteLLM (on InstaPods) | |
|---|---|---|
| Pricing model | Provider cost + 5.5% credit-purchase fee | Provider cost (paid directly) + $15/mo flat hosting |
| Markup on inference | None on inference; fee is on credit top-ups | None - you use your own provider keys |
| Your prompts and logs | Flow through OpenRouter | Stay on your own pod |
| Provider API keys | Held by OpenRouter (or BYOK with a fee) | Yours, on your pod, encrypted at rest |
| Virtual keys + budgets | Yes | Yes |
| Spend tracking | Yes (their dashboard) | Yes (your own Postgres) |
| Model access | Huge list, one balance, instant | Whatever providers you add keys for |
| Ops burden | None | One click to deploy, then it is yours |
| Best for | Zero-ops convenience, fast model coverage | Data control, no markup, your own keys |
The fair read: OpenRouter is excellent if you never want to run anything and you value instant access to a long model list under one balance. Self-hosting wins once you care about where your data goes, want your own provider keys, or do enough volume that a percentage fee adds up.
The catch with self-hosting (and how the managed pod removes it)
Self-hosting a gateway used to mean a Docker compose file, a Postgres you babysit, TLS, secrets, and backups. LiteLLM specifically also needs its Prisma client generated and its schema migrated, which is easy to get wrong on a first run.
A one-click pod removes that. On InstaPods a LiteLLM deploy gives you:
- A private, single-tenant gateway with its own master key (generated per pod, never shared)
- Bundled PostgreSQL for keys and spend, with daily backups
- Your provider keys encrypted at rest with a per-pod salt
- No public sign-ups - the admin UI is gated by a per-pod login
- Managed TLS and a public URL
You get the admin login and master key by email on first boot, add your providers, mint virtual keys, and point your apps at the URL.
Deploy it
- One-click deploy: https://instapods.com/apps/litellm
- Full side-by-side: https://instapods.com/apps/litellm/vs/openrouter
It runs on the Grow plan ($15/mo: 2 vCPU, 4 GB, 50 GB), which has headroom for real production traffic.
Your turn
Are you routing LLM calls through a managed gateway like OpenRouter, or self-hosting? And if you self-host, what made you switch - cost, data residency, or control? Curious what tipped the decision.
Top comments (0)