Treat a LiteLLM budget as a hard ceiling only after you back it with Postgres, turn on fail-closed enforcement, and watch a test key stop at its cap. Budgets, rate limits and spend logs are the main reason teams adopt LiteLLM, and engineers also report budgets that did not hold. The checklist also covers which budget features need Enterprise and how to reconcile tracked spend with the provider's bill.
When you need this
- You are about to give engineers or apps their own keys with a monthly or weekly cap.
- Agents or coding tools can run unattended and spend money while nobody watches.
- Finance asks what each team spends on models, and the gateway is the only place that knows.
Evaluation criteria
Give budgets a database
Is every budget enforced against stored spend?
Look forLiteLLM enforces every budget against spend stored in the database. Without a database, the global max_budget fails open with a single startup warning, and key, team, and user budgets do not work because LiteLLM cannot look up virtual keys.
Keep reservation on
Can concurrent requests overshoot a budget?
Look forKeep budget reservation on. LiteLLM reserves the estimated maximum request cost and rejects a request that would exceed the budget. Without reservation, concurrent requests can push spend past the cap. Track completed batch-job costs separately, because LiteLLM cannot reserve those jobs in full.
Fail closed
What happens to budgets and limits when Redis fails?
Look forEnable fail_closed_budget_enforcement to check the database on each budgeted request. Redis counters restored from an old snapshot can understate spend. Enable fail_closed_rate_limit_enforcement to reject requests with 503 when Redis is unavailable. Otherwise, each instance grants the key its own rate limit. Both settings default to off.
Set the hierarchy
Where does each budget sit?
Look forSet budgets on organizations, teams, team members, users, keys, end customers, and agents, each with a budget_duration such as 7d that resets it. A budget with no budget_duration never resets. Check the reset time and timezone settings so a monthly budget resets when finance expects it to.
Know what needs Enterprise
Which budget features are licensed?
Look forTag budgets, model-specific budgets per key, temporary budget increases, soft budget email alerts, spend reports, and project management need an Enterprise license. Engineers have also hit releases that wrongly required a license to edit key or team budgets, so test budget changes after each upgrade.
Test that caps stop traffic
Does a key actually stop at its budget?
Look forCreate a key with a small max_budget, spend past it, and confirm requests fail. A GitHub issue reports v1.82.3 recording spend while letting keys and users past max_budget keep sending requests. An engineer who deployed LiteLLM in several places reports several ways budgets went unenforced.
Reconcile with the bill
Does tracked spend match what the provider charges?
Look forLiteLLM prices requests from its model cost map. It logs requests on models with no listed price at US$0, with a warning and a Prometheus counter you can alert on. Compare each token category, including cache reads and writes, with the provider bill. One builder's agent ran through LiteLLM to Claude on Bedrock and billed US$37,901.73, mostly uncached input, before anyone noticed.
Questions to ask vendors
- Is every budgeted deployment backed by Postgres, and is fail-closed enforcement on?
- Which budgets reset weekly, which monthly, and which never?
- Who is alerted before a team reaches its cap, and how does someone request more?
- Which spend reports and tag budgets do we need, and do they require Enterprise?
- When did we last reconcile LiteLLM's tracked spend with each provider's invoice?
Red flags
- A max_budget set on a deployment with no database.
- Fail-closed budget and rate-limit enforcement left off on a multi-instance deployment.
- Budgets that have never been tested by spending past them.
- Models in use with no price in the cost map, so their spend logs as US$0.
Products in this piece
Sources
- Official documentation
- 5
- Public source
- 4
- LiteLLM docs: Budgets and rate limits
- LiteLLM docs: Spend tracking
- LiteLLM docs: Virtual keys
- LiteLLM docs: Enterprise
- LiteLLM docs: Prometheus metrics
- BerriAI/litellm issue #26672: budget enforcement bypassed in v1.82.3 (Apr 28, 2026)
- Hacker News comment on deploying LiteLLM Proxy in several places and moving to Bifrost (Nov 19, 2025)
- Hacker News comment on Enterprise-gated key budgets and log cleanup (Nov 19, 2025)
- Hacker News post: US$38k AWS Bedrock bill through LiteLLM after a prompt caching miss (Apr 28, 2026)