litellm/litellm/proxy
yuneng-jiang 2b7e01bb7e
Merge pull request #34691 from BerriAI/litellm_/management-endpoint-standards-b1cd57
refactor(management): move the logs end-user filter onto /management/v1
2026-07-27 11:30:51 -07:00
..
_experimental Merge pull request #34265 from BerriAI/litellm_lit4339_upstream_resource 2026-07-25 18:53:45 -07:00
a2a fix(a2a): reject malformed protocolVersion suffixes while keeping semver prereleases 2026-07-21 13:24:58 -07:00
agent_endpoints fix(a2a): accept semver protocolVersion values like 0.3.0 in agent cards 2026-07-21 13:03:47 -07:00
analytics_endpoints style: unify ruff format width on 120 (#31518) 2026-06-27 12:39:29 -07:00
anthropic_endpoints feat: litellm oss staging (#31935) 2026-07-03 09:27:31 +05:30
auth fix(auth): route JWT default-team into memberships instead of the create payload (#33082) 2026-07-25 11:37:11 -07:00
batches_endpoints refactor(proxy/batches): make managed-file resolution purely additive, fall back like base (#34584) 2026-07-24 18:42:48 -07:00
client fix(autoroute): discover models via /v1/models so an AI-API-only key works (#34259) 2026-07-22 20:50:14 -07:00
common_utils fix(proxy): global max_budget ignores budget_duration; enforce against the resettable proxy budget row (#33732) 2026-07-25 11:29:39 -07:00
config_management_endpoints build(deps-dev): bump black to 26.3.1 and apply formatting (#28525) 2026-05-21 17:24:18 -07:00
config_resolvers feat(proxy): add SAML 2.0 SSO for the admin UI (#31429) 2026-07-24 12:51:28 -07:00
container_endpoints style: unify ruff format width on 120 (#31518) 2026-06-27 12:39:29 -07:00
credential_endpoints style: unify ruff format width on 120 (#31518) 2026-06-27 12:39:29 -07:00
custom_hooks style: run black formatter on entire codebase 2026-03-11 17:07:57 -03:00
db fix(proxy): cap tool spend window at 30 days and bound every SpendLogs read 2026-07-24 17:24:24 -07:00
discovery_endpoints style: unify ruff format width on 120 (#31518) 2026-06-27 12:39:29 -07:00
enterprise_billing feat(proxy): push-based OTLP billable-request metering for enterprise deployments (#31592) 2026-07-15 12:12:52 -07:00
example_config_yaml Revert "chore(ci): sync litellm_internal_staging into daily OSS branch (#33337)" (#33339) 2026-07-14 19:32:25 -07:00
fine_tuning_endpoints style: unify ruff format width on 120 (#31518) 2026-06-27 12:39:29 -07:00
google_endpoints style: unify ruff format width on 120 (#31518) 2026-06-27 12:39:29 -07:00
guardrails Merge pull request #34660 from BerriAI/litellm_lit4804_compresr_cache_control 2026-07-27 11:17:51 -07:00
health_check_utils style: unify ruff format width on 120 (#31518) 2026-06-27 12:39:29 -07:00
health_endpoints chore(lint): zero out crash-class pyright rules and ban new type: ignore comments (#32152) 2026-07-04 16:56:12 -07:00
hooks fix(proxy): hash caller-supplied key in key update audit log object_id (#34632) 2026-07-25 10:45:51 -07:00
image_endpoints style: unify ruff format width on 120 (#31518) 2026-06-27 12:39:29 -07:00
logging_endpoints style: unify ruff format width on 120 (#31518) 2026-06-27 12:39:29 -07:00
management_endpoints fix(management): stop emitting a dead docs link in problem documents 2026-07-26 00:16:51 -07:00
management_helpers fix(proxy): restore atomic user upsert when adding team members (#34457) 2026-07-24 02:22:34 +00:00
memory style: unify ruff format width on 120 (#31518) 2026-06-27 12:39:29 -07:00
middleware feat(proxy): push-based OTLP billable-request metering for enterprise deployments (#31592) 2026-07-15 12:12:52 -07:00
ocr_endpoints style: unify ruff format width on 120 (#31518) 2026-06-27 12:39:29 -07:00
openai_evals_endpoints style: unify ruff format width on 120 (#31518) 2026-06-27 12:39:29 -07:00
openai_files_endpoints chore(lint): zero out crash-class pyright rules and ban new type: ignore comments (#32152) 2026-07-04 16:56:12 -07:00
pass_through_endpoints fix(passthrough): honor the zero fallback and aggregate-only TPM usage 2026-07-24 18:49:41 -07:00
policy_engine fix(policies): reject non-existent team/key/model scope entries on attachment create (#32131) 2026-07-04 11:58:29 -07:00
prompts style: unify ruff format width on 120 (#31518) 2026-06-27 12:39:29 -07:00
public_endpoints feat(a2a): support a2a-sdk 1.x proxy routing for 0.3 and 1.0 agents (#30950) 2026-06-29 09:32:39 +05:30
rag_endpoints fix(rag): track LLM completion usage and spend for /v1/rag/query (#32438) 2026-07-17 17:45:27 +00:00
realtime_endpoints style: unify ruff format width on 120 (#31518) 2026-06-27 12:39:29 -07:00
rerank_endpoints style: unify ruff format width on 120 (#31518) 2026-06-27 12:39:29 -07:00
response_api_endpoints style: unify ruff format width on 120 (#31518) 2026-06-27 12:39:29 -07:00
response_polling style: unify ruff format width on 120 (#31518) 2026-06-27 12:39:29 -07:00
search_endpoints style: unify ruff format width on 120 (#31518) 2026-06-27 12:39:29 -07:00
shutdown feat(proxy): native /health/drain preStop hook for graceful shutdown (#29439) 2026-06-02 16:30:44 -07:00
spend_tracking fix(spend_tracking): populate cache_creation_input_tokens for Responses API logs 2026-07-23 19:07:09 -07:00
swagger
test_prompts
types_utils fix(proxy): resolve router_settings.plugins dotted paths and load plugins from installed packages (#33644) 2026-07-17 11:23:18 -07:00
ui_crud_endpoints fix(ui): resolve SSO and SMTP settings from a typed config object (#33576) 2026-07-22 14:47:35 -07:00
vector_store_endpoints style: unify ruff format width on 120 (#31518) 2026-06-27 12:39:29 -07:00
vector_store_files_endpoints fix(proxy): resolve team wildcard credentials for vector store files 2026-07-16 21:14:45 -07:00
vertex_ai_endpoints style: unify ruff format width on 120 (#31518) 2026-06-27 12:39:29 -07:00
video_endpoints style: unify ruff format width on 120 (#31518) 2026-06-27 12:39:29 -07:00
workflows feat(proxy): durable agent workflow run tracking via /v1/workflows/runs (#26793) 2026-04-29 17:12:18 -07:00
.gitignore
__init__.py
_lazy_features.py style: unify ruff format width on 120 (#31518) 2026-06-27 12:39:29 -07:00
_lazy_openapi_snapshot.json fix(proxy): label the tool spend clamp accurately (start capped at 30 days before end) 2026-07-24 17:31:00 -07:00
_lazy_openapi_snapshot.py style: unify ruff format width on 120 (#31518) 2026-06-27 12:39:29 -07:00
_logging.py
_new_new_secret_config.yaml Revert "chore: remove _experimental/out (#31546)" 2026-07-01 13:25:47 -07:00
_new_secret_config.yaml Revert "chore: remove _experimental/out (#31546)" 2026-07-01 13:25:47 -07:00
_super_secret_config.yaml Revert "chore: remove _experimental/out (#31546)" 2026-07-01 13:25:47 -07:00
_types.py refactor(management): move the logs end-user filter onto /management/v1 2026-07-25 23:57:25 -07:00
cached_logo.jpg fix: prompt registry 2026-02-18 00:34:54 +05:30
caching_routes.py style: unify ruff format width on 120 (#31518) 2026-06-27 12:39:29 -07:00
common_request_processing.py fix(proxy): merge model-level guardrails before pre_call_hook (#29654) 2026-07-25 10:16:59 -07:00
compliance_checks.py Revert "chore(ci): sync litellm_internal_staging into daily OSS branch (#33337)" (#33339) 2026-07-14 19:32:25 -07:00
custom_auth_auto.py style: unify ruff format width on 120 (#31518) 2026-06-27 12:39:29 -07:00
custom_prompt_management.py fix: prompt registry 2026-02-18 00:34:54 +05:30
custom_sso.py style: unify ruff format width on 120 (#31518) 2026-06-27 12:39:29 -07:00
custom_validate.py
dd_span_tagger.py style: unify ruff format width on 120 (#31518) 2026-06-27 12:39:29 -07:00
dev_config.yaml Revert "chore(ci): sync litellm_internal_staging into daily OSS branch (#33337)" (#33339) 2026-07-14 19:32:25 -07:00
enterprise
health_check.py fix: skip health check for semantic auto_router deployments (#31668) 2026-06-29 19:47:20 -07:00
lambda.py
litellm_pre_call_utils.py feat(proxy): add overwrite_user_with_key_hash to stamp outgoing user param with key hash (#34417) 2026-07-23 16:38:01 -07:00
llamaguard_prompt.txt
logo.jpg
mcp_registry.json fix(mcp): use official Google Drive streamable HTTP MCP server (#34322) 2026-07-22 23:41:51 +00:00
mcp_tools.py
model_config.yaml
openapi.json
openapi_registry.json fix(mcp): add Google Sheets, Drive, Calendar, and Docs to the OpenAPI registry 2026-07-20 19:02:00 -07:00
plugin_routes.py style: unify ruff format width on 120 (#31518) 2026-06-27 12:39:29 -07:00
post_call_rules.py ci(lint): add blanket-noqa, dataclass-default, and unused-noqa Ruff rules (#30516) 2026-06-16 12:07:22 -07:00
prisma_migration.py style: unify ruff format width on 120 (#31518) 2026-06-27 12:39:29 -07:00
prometheus_cleanup.py style: unify ruff format width on 120 (#31518) 2026-06-27 12:39:29 -07:00
proxy_cli.py fix(proxy): stop litellm/proxy from shadowing installed packages on sys.path (#34656) 2026-07-25 14:20:35 -07:00
proxy_config.yaml fix: prompt registry 2026-02-18 00:34:54 +05:30
proxy_server.py Merge branch 'litellm_internal_staging' into litellm_/management-endpoint-standards-b1cd57 2026-07-25 23:57:32 -07:00
read_model_list.py feat: add minimal rust router + axum ai-gateway calling router.realtime (2/2) (#31135) 2026-06-23 19:16:34 -07:00
README.md build: migrate packaging, CI, and Docker from Poetry to uv (#25007) 2026-04-09 11:46:23 -07:00
route_llm_request.py fix(proxy): return 400 instead of 500 for chat completions without messages 2026-07-24 20:32:09 +00:00
schema.prisma fix(proxy): cap tool spend window at 30 days and bound every SpendLogs read 2026-07-24 17:24:24 -07:00
start.sh
utils.py fix(proxy): merge model-level guardrails before pre_call_hook (#29654) 2026-07-25 10:16:59 -07:00
wildcard_config.yaml feat: add dev and wildcard proxy configs for local testing (#30556) 2026-06-17 06:47:11 -07:00

litellm-proxy

A local, fast, and lightweight OpenAI-compatible server to call 100+ LLM APIs.

usage

$ uv tool install litellm
$ litellm --model ollama/codellama 

#INFO: Ollama running on http://0.0.0.0:8000

replace openai base

import openai # openai v1.0.0+
client = openai.OpenAI(api_key="anything",base_url="http://0.0.0.0:8000") # set proxy to base_url
# request sent to model set on litellm proxy, `litellm --model`
response = client.chat.completions.create(model="gpt-3.5-turbo", messages = [
    {
        "role": "user",
        "content": "this is a test request, write a short poem"
    }
])

print(response)

See how to call Huggingface,Bedrock,TogetherAI,Anthropic, etc.


Folder Structure

Routes

  • proxy_server.py - all openai-compatible routes - /v1/chat/completion, /v1/embedding + model info routes - /v1/models, /v1/model/info, /v1/model_group_info routes.
  • health_endpoints/ - /health, /health/liveliness, /health/readiness
  • management_endpoints/key_management_endpoints.py - all /key/* routes
  • management_endpoints/team_endpoints.py - all /team/* routes
  • management_endpoints/internal_user_endpoints.py - all /user/* routes
  • management_endpoints/ui_sso.py - all /sso/* routes