LiteLLM is an open-source project from BerriAI with two halves: a Python SDK that gives one calling convention across 100+ LLM providers, and a proxy (the AI Gateway) that platform teams self-host to hand out virtual keys, enforce budgets, log spend, and fail over between models. The core is free; enterprise features like SSO, SCIM, audit logs, and multi-region are quote-only behind a licence key. It is the default choice for teams that will not send prompts to a third party, and it ships fast enough that you must treat upgrading as a standing task.
- Two products, one name: the Python SDK and the self-hosted proxy.
- 100+ providers, normalized to the OpenAI chat-completions shape.
- 56,762 stars and 4,996 open issues on GitHub as of 19 August 2026.
- Cadence is fast: 15 release tags in the 12 days to 19 August 2026.
- Enterprise is quote-only. SSO is free up to 5 users, then it needs a licence.
- April 2026 brought a critical auth bypass, an RCE path, and a SQL injection. Patch cadence is the job.
The two halves
Almost every confused LiteLLM question comes from not knowing which half is being discussed.
| The SDK | The proxy (AI Gateway) | |
|---|---|---|
| Shape | A Python library you import | A server you deploy |
| Used by | Application developers | Platform teams |
| Gives you | completion(), embedding(), image_generation() | An OpenAI-compatible HTTP endpoint |
| Routing | The Router class: retries, fallbacks, load balancing | The same, centrally, for every caller |
| Keys | Your process env | Virtual keys per user, team, or project |
| Spend | Whatever you log | Tracked, budgeted, exportable |
The unifying idea in both: everything comes back in OpenAI chat-completions format, and every provider's errors are mapped onto OpenAI exception types. One try/except, one response shape, whether the call went to Anthropic, Bedrock, Vertex, or a local Ollama.
What it is genuinely great at
- Breadth. 100+ provider integrations, including the awkward ones: Bedrock's signing, Vertex's auth, Azure's deployment names. Someone has already fought each of those.
- Virtual keys. Handing a team a key that has a budget, a model allowlist, and a spend report attached is the feature that gets LiteLLM adopted, more than routing ever does.
- No per-token fee, ever. Unlike every hosted gateway, cost does not scale with traffic.
- Nothing leaves your network. For a lot of security reviews this is the entire argument, and no hosted option can match it.
- Error normalization. Genuinely saves weeks across a multi-provider codebase.
- It is where the ecosystem points. Observability vendors, agent frameworks, and internal platforms all have a LiteLLM integration already.
model_list:
- model_name: gpt-4o
litellm_params:
model: azure/gpt-4o
api_base: https://endpoint.openai.azure.com/
api_key: "os.environ/AZURE_API_KEY"
rpm: 200
litellm_settings:
num_retries: 3
fallbacks: [{"gpt-4o": ["gpt-3.5-turbo"]}]
router_settings:
routing_strategy: "simple-shuffle"
general_settings:
master_key: "sk-1234"
Four top-level keys: model_list, litellm_settings, router_settings, general_settings. Secrets are referenced as os.environ/NAME, never inlined.
The operational reality
This section exists because the README does not have one, and because "just self-host it" is advice that costs teams real money when it is taken at face value.
Config sprawl
That four-key config above is what a demo looks like. A production one carries an entry per model per deployment per region, per-key rate limits, budget definitions, guardrail configs, callback routing, cache settings, and alerting. It is YAML that encodes routing policy, and it grows every time someone adds a model or a team. Nothing is wrong with it, but it becomes infrastructure that needs review, staging, and rollback like any other, and teams that treat it as a config file rather than as code find that out during an incident.
Upgrade churn
| Value | |
|---|---|
| Stars | 56,762 |
| Forks | 10,723 |
| Open issues | 4,996 |
| Release tags between 8 and 19 August 2026 | 15 |
| Latest stable tag | v1.97.0 (16 August 2026) |
| Licence | MIT core, with enterprise directories under a commercial licence |
Fifteen tags in twelve days, spanning -dev, -rc, and stable, on a project with nearly five thousand open issues. That is velocity, and it is also the reason you cannot pin a version and walk away: fixes you need ship alongside changes you did not ask for. LiteLLM publishes -stable tags precisely because of this, and running those rather than the newest tag is the right default.
Security
Later the same month, on 29 April 2026, came CVE-2026-42208: a SQL injection in the proxy's API key verification path, reachable by an unauthenticated request with a crafted Authorization: Bearer header sent to any LLM API route. It affected v1.81.16 through v1.83.6 and was fixed in v1.83.7, with v1.83.10-stable recommended. External trackers rated it 9.3 and reported exploitation attempts within roughly a day of the advisory going public. The same advisory names CVE-2026-30623 (command injection via Anthropic's MCP SDK) and GHSA-4xpc-pv4p-pm3w (authentication bypass via Host header injection).
To their credit the response was substantive rather than defensive: an external audit engagement with Veria Labs, a bug bounty with $500 to $3,000 payouts, and a five-business-day commitment on GitHub security advisories. But the lesson for anyone choosing this is unambiguous. A self-hosted gateway holds every provider key your company owns. It is the highest-value target in your infrastructure, and running it means running a patch cadence, not just a container.
Pricing
| Open source | Enterprise | |
|---|---|---|
| Price | $0 | Quote only. "Pricing is based on usage." |
| OpenAI-compatible gateway | Yes | Yes |
| Virtual keys, budgets, spend tracking | Yes | Yes |
| Fallbacks, caching, Prometheus metrics | Yes | Yes |
| Always-on guardrails | Yes | Yes, plus key and team scoped |
| SSO | Free up to 5 users | Unlimited, plus SCIM and OIDC/JWT |
| Organizations and delegated admin | No | Yes |
| Key rotation and secret managers | No | AWS KMS, Azure Key Vault, HashiCorp Vault |
| Audit and management operation logs | No | Yes |
| Multi-region under one licence | Single region | Admin and worker split |
The licence is activated by setting LITELLM_LICENSE to a token; the Swagger page then reads "Enterprise Edition". A 30-day trial key is issued without a sales call.
Who should run it
Run LiteLLM if
- Prompts cannot leave your network, and that is a hard requirement rather than a preference.
- You have a platform team, or at least a named owner with an on-call rotation.
- Inference spend is high enough that a percentage fee is real money (roughly $5k a month and up).
- You need virtual keys with budgets across many internal teams, which is its best feature.
- You are already multi-cloud and need Bedrock, Vertex, and Azure behind one interface.
Do not run LiteLLM if
- You are a solo developer or a small team. A hosted gateway's fee is cheaper than your weekend.
- Nobody will own patching. See the April 2026 list.
- You want a model catalogue you do not have accounts for. That is OpenRouter, not this.
- Your requirement is dashboards rather than routing. That is Helicone or Portkey.
Questions people ask
What is LiteLLM used for?
Two things. As a Python SDK it gives one calling convention across 100+ model providers, with retries, fallbacks, and load balancing in its Router class. As a self-hosted proxy it puts an OpenAI-compatible endpoint in front of your organization, with virtual keys, per-team budgets, spend tracking, caching, guardrails, and logging.
Is LiteLLM free?
The SDK and the core proxy are open source and free, with SSO included for up to 5 users. Enterprise features (SCIM, OIDC/JWT, organizations, key rotation, secret managers, audit logs, multi-region) need a licence, activated by the LITELLM_LICENSE environment variable. LiteLLM does not publish enterprise prices; the docs say pricing is usage-based and to contact them.
What is the difference between LiteLLM and OpenRouter?
LiteLLM is software you deploy in front of your own provider accounts, with no per-token fee. OpenRouter is a hosted service with its own catalogue of 400+ models that you can use with no provider accounts at all, for provider list price plus a 5.5% credit purchase fee. See the full head-to-head for the cost crossover point.
Is LiteLLM safe to use in production?
Yes, if you patch it. It is very widely deployed, and it disclosed serious vulnerabilities in April 2026: a critical OIDC authentication bypass, a privilege escalation through /config/update reaching RCE, unsalted password hashes, and an unauthenticated SQL injection in the key verification path. All were fixed within days, in v1.83.0 and v1.83.7. Run the -stable tags and watch the advisories.
How often does LiteLLM release?
Constantly. Fifteen release tags were published between 8 and 19 August 2026 alone, across dev, release-candidate, and stable channels, with v1.97.0 the latest stable on 16 August. Plan for upgrades as a recurring task rather than an occasional project, and prefer the -stable tags.
Does LiteLLM support Anthropic and Claude models?
Yes, both directly through the Anthropic API and via Amazon Bedrock and Google Vertex. Responses are normalized to the OpenAI chat-completions shape, which is convenient and also means provider-specific features such as prompt-cache controls and extended thinking parameters are where compatibility edges appear. Test those paths before you rely on them.
Sources
Every figure above was read from these pages on August 2026. Vendors reprice without notice; if you find a stale number, tell us.
- LiteLLM documentation SDK vs proxy, 100+ providers, error mapping
- LiteLLM proxy config reference four top-level keys, os.environ refs, fallbacks
- LiteLLM enterprise feature split, LITELLM_LICENSE, SSO free to 5 users
- LiteLLM security update, April 2026 CVE-2026-35029/35030, pass-the-hash, fixed v1.83.0, bug bounty
- CVE-2026-42208 advisory SQL injection, v1.81.16-v1.83.6, fixed v1.83.7
- BerriAI/litellm on GitHub stars, forks, issues, release tags read 19 Aug 2026