openapi: 3.2.0 info: title: LiteLLM Public API description: 'Proxy Server to call 100+ LLMs in the OpenAI format. **Customize Swagger Docs** 👉 ```LiteLLM Admin Panel on /ui```. Create, Edit Keys with SSO. Having issues? Try ```Fallback Login``` 💸 ```LiteLLM Model Cost Map```. 🔎 ```LiteLLM Model Hub```. See available models on the proxy. **Docs**' version: 1.102.1 tags: - name: Public paths: /public/model_hub: get: tags: - Public summary: Public Model Hub operationId: public_model_hub_public_model_hub_get responses: '200': description: Successful Response content: application/json: schema: items: $ref: '#/components/schemas/ModelGroupInfoProxy' type: array title: Response Public Model Hub Public Model Hub Get /public/agent_hub: get: tags: - Public summary: Get Agents operationId: get_agents_public_agent_hub_get responses: '200': description: Successful Response content: application/json: schema: items: $ref: '#/components/schemas/AgentCard' type: array title: Response Get Agents Public Agent Hub Get /public/mcp_hub: get: tags: - Public summary: Get Mcp Servers operationId: get_mcp_servers_public_mcp_hub_get responses: '200': description: Successful Response content: application/json: schema: items: $ref: '#/components/schemas/MCPPublicServer' type: array title: Response Get Mcp Servers Public Mcp Hub Get /public/skill_hub: get: tags: - Public summary: Public Skill Hub description: Return enabled (public) Claude Code skills — no auth required. operationId: public_skill_hub_public_skill_hub_get responses: '200': description: Successful Response content: application/json: schema: {} /public/model_hub/info: get: tags: - Public summary: Public Model Hub Info operationId: public_model_hub_info_public_model_hub_info_get responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/PublicModelHubInfo' /public/complexity_router/scorer_defaults: get: tags: - Public summary: Get Complexity Scorer Defaults description: Return the complexity router's shipped heuristic scorer defaults, for the dashboard to prefill with. operationId: get_complexity_scorer_defaults_public_complexity_router_scorer_defaults_get responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ComplexityScorerDefaults' /public/litellm_model_cost_map: get: tags: - Public summary: Get Litellm Model Cost Map description: 'Public endpoint to get the LiteLLM model cost map. Returns pricing information for all supported models.' operationId: get_litellm_model_cost_map_public_litellm_model_cost_map_get responses: '200': description: Successful Response content: application/json: schema: {} /public/litellm_blog_posts: get: tags: - Public summary: Get Litellm Blog Posts description: 'Public endpoint to get the latest LiteLLM blog posts. Fetches from GitHub with a 1-hour in-process cache. Falls back to the bundled local backup on any failure.' operationId: get_litellm_blog_posts_public_litellm_blog_posts_get responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/BlogPostsResponse' /public/autorouter_presets: get: tags: - Public summary: Get Public Autorouter Presets description: 'Return the auto-router preset catalog the dashboard''s template picker renders. Resolved once per process, like the model cost map: fetched from ``litellm.autorouter_presets_url`` (override with ``LITELLM_AUTOROUTER_PRESETS_URL``) on the first request, falling back to the catalog bundled with the package on any failure. Set ``LITELLM_LOCAL_AUTOROUTER_PRESETS=True`` to serve the bundled catalog only. A restart picks up a newly published catalog.' operationId: get_public_autorouter_presets_public_autorouter_presets_get responses: '200': description: Successful Response content: application/json: schema: additionalProperties: $ref: '#/components/schemas/AutoRouterPresetRecord' type: object title: Response Get Public Autorouter Presets Public Autorouter Presets Get /public/endpoints: get: tags: - Public summary: Get Supported Endpoints description: 'Return the list of LiteLLM proxy endpoints and which providers support each one. Reads from the bundled local backup file. Result is cached in-process for the lifetime of the server process.' operationId: get_supported_endpoints_public_endpoints_get responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/SupportedEndpointsResponse' /public/agents/fields: get: tags: - Public summary: Get Agent Fields description: 'Return agent type metadata required by the dashboard create-agent flow. If an agent has `inherit_credentials_from_provider`, the provider''s credential fields are automatically appended to the agent''s credential_fields.' operationId: get_agent_fields_public_agents_fields_get responses: '200': description: Successful Response content: application/json: schema: items: $ref: '#/components/schemas/AgentCreateInfo' type: array title: Response Get Agent Fields Public Agents Fields Get /public/v1/model_hub: get: tags: - Public summary: Public Model Hub List description: 'The public model groups this proxy publishes, paged, sortable, searchable and filterable, for the public Model Hub page. No authentication. A rejected request answers with the parameters, sort fields and filter operators it would have accepted, so the accepted set stays discoverable from the endpoint itself rather than from a copy of the spec kept here. Example curl: ``` curl --location --globoff ''http://0.0.0.0:4000/public/v1/model_hub?sort=-input_cost_per_token&filter[mode][in]=chat&page_size=25'' ```' operationId: public_model_hub_list_public_v1_model_hub_get responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/ListResponse_ModelGroupInfoProxy_' security: - APIKeyHeader: [] /public/v1/model_hub/{facet}: get: tags: - Public summary: Public Model Hub Facet description: 'The distinct providers, modes or features across the published model groups, for the Model Hub''s filter dropdowns. No authentication. Carries the same filters and search as the list route, so a dropdown offers exactly the values the table can show: asking for providers under `filter[mode][in]=chat` lists only the providers that serve a chat model. Example curl: ``` curl --location --globoff ''http://0.0.0.0:4000/public/v1/model_hub/providers?filter[mode][in]=chat&page_size=50'' ```' operationId: public_model_hub_facet_public_v1_model_hub__facet__get security: - APIKeyHeader: [] parameters: - name: facet in: path required: true schema: enum: - providers - modes - features type: string title: Facet responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/FacetListResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /.well-known/agent-skills/index.json: get: tags: - Public summary: Agent Skills Index description: Agent Skills v0.2.0 discovery index over every skill stored on this proxy. operationId: agent_skills_index__well_known_agent_skills_index_json_get responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/AgentSkillsIndex' /v1/skills/{skill_id}/archive: get: tags: - Public summary: Agent Skills Archive description: Stored skill upload, repacked so SKILL.md sits at the archive root. operationId: agent_skills_archive_v1_skills__skill_id__archive_get parameters: - name: skill_id in: path required: true schema: type: string title: Skill Id responses: '200': description: Successful Response content: application/zip: schema: type: string '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' components: schemas: ModelGroupInfoProxy: properties: model_group: type: string title: Model Group providers: items: type: string type: array title: Providers max_input_tokens: anyOf: - type: number - type: 'null' title: Max Input Tokens max_output_tokens: anyOf: - type: number - type: 'null' title: Max Output Tokens input_cost_per_token: anyOf: - type: number - type: 'null' title: Input Cost Per Token output_cost_per_token: anyOf: - type: number - type: 'null' title: Output Cost Per Token input_cost_per_pixel: anyOf: - type: number - type: 'null' title: Input Cost Per Pixel mode: anyOf: - type: string - type: string enum: - chat - embedding - completion - image_generation - audio_transcription - rerank - moderations - type: 'null' title: Mode default: chat tpm: anyOf: - type: integer - type: 'null' title: Tpm rpm: anyOf: - type: integer - type: 'null' title: Rpm itpm: anyOf: - type: integer - type: 'null' title: Itpm otpm: anyOf: - type: integer - type: 'null' title: Otpm supports_parallel_function_calling: type: boolean title: Supports Parallel Function Calling default: false supports_vision: type: boolean title: Supports Vision default: false supports_web_search: type: boolean title: Supports Web Search default: false supports_url_context: type: boolean title: Supports Url Context default: false supports_reasoning: type: boolean title: Supports Reasoning default: false supports_function_calling: type: boolean title: Supports Function Calling default: false supported_reasoning_efforts: anyOf: - items: type: string type: array - type: 'null' title: Supported Reasoning Efforts supported_openai_params: anyOf: - items: type: string type: array - type: 'null' title: Supported Openai Params default: [] configurable_clientside_auth_params: anyOf: - items: anyOf: - type: string - $ref: '#/components/schemas/ConfigurableClientsideParamsCustomAuth-Output' type: array - type: 'null' title: Configurable Clientside Auth Params is_public_model_group: type: boolean title: Is Public Model Group default: false health_status: anyOf: - type: string - type: 'null' title: Health Status health_response_time: anyOf: - type: number - type: 'null' title: Health Response Time health_checked_at: anyOf: - type: string - type: 'null' title: Health Checked At type: object required: - model_group - providers title: ModelGroupInfoProxy AgentExtension: properties: uri: type: string title: Uri description: anyOf: - type: string - type: 'null' title: Description required: anyOf: - type: boolean - type: 'null' title: Required params: anyOf: - additionalProperties: true type: object - type: 'null' title: Params type: object title: AgentExtension description: A declaration of a protocol extension supported by an Agent. OpenIdConnectSecurityScheme: properties: description: anyOf: - type: string - type: 'null' title: Description type: type: string const: openIdConnect title: Type openIdConnectUrl: type: string title: Openidconnecturl type: object required: - type - openIdConnectUrl title: OpenIdConnectSecurityScheme description: Defines a security scheme using OpenID Connect. FacetListResponse: properties: data: items: type: string type: array title: Data meta: $ref: '#/components/schemas/PageMeta' links: $ref: '#/components/schemas/PageLinks' type: object required: - data - meta - links title: FacetListResponse description: The distinct values one column takes over a filtered query. `data` holds bare values, not entity rows. AutoRouterPresetConfig: properties: tiers: $ref: '#/components/schemas/AutoRouterPresetTiers' additionalProperties: true type: object required: - tiers title: AutoRouterPresetConfig description: 'The complexity_router_config a preset prefills. Only tiers is validated, because every dashboard consumer dereferences it; everything else passes through verbatim with unknown fields kept (extra="allow"), so a catalog published after this proxy shipped still serves its new fields intact.' AgentCredentialField: properties: key: type: string title: Key label: type: string title: Label placeholder: anyOf: - type: string - type: 'null' title: Placeholder tooltip: anyOf: - type: string - type: 'null' title: Tooltip required: type: boolean title: Required default: false field_type: type: string enum: - text - password - select - upload - textarea title: Field Type default: text options: anyOf: - items: type: string type: array - type: 'null' title: Options default_value: anyOf: - type: string - type: 'null' title: Default Value include_in_litellm_params: anyOf: - type: boolean - type: 'null' title: Include In Litellm Params validation_pattern: anyOf: - type: string - type: 'null' title: Validation Pattern validation_message: anyOf: - type: string - type: 'null' title: Validation Message type: object required: - key - label title: AgentCredentialField OAuthFlows: properties: authorizationCode: anyOf: - additionalProperties: true type: object - type: 'null' title: Authorizationcode clientCredentials: anyOf: - additionalProperties: true type: object - type: 'null' title: Clientcredentials implicit: anyOf: - additionalProperties: true type: object - type: 'null' title: Implicit password: anyOf: - additionalProperties: true type: object - type: 'null' title: Password type: object title: OAuthFlows description: Defines the configuration for the supported OAuth 2.0 flows. ListLinks: properties: self: type: string title: Self first: type: string title: First prev: anyOf: - type: string - type: 'null' title: Prev next: anyOf: - type: string - type: 'null' title: Next last: type: string title: Last type: object required: - self - first - last title: ListLinks description: Page-mode counterpart to `PageLinks`. `first`/`last` are knowable here because the total count is. ListMeta: properties: total_count: type: integer title: Total Count page: type: integer title: Page page_size: type: integer title: Page Size total_pages: type: integer title: Total Pages type: object required: - total_count - page - page_size - total_pages title: ListMeta description: 'Page-mode counterpart to `PageMeta`: an entity list pays for the COUNT(*) so the table can show a page count.' ValidationError: properties: loc: items: anyOf: - type: string - type: integer type: array title: Location msg: type: string title: Message type: type: string title: Error Type input: title: Input ctx: type: object title: Context type: object required: - loc - msg - type title: ValidationError AgentCapabilities: properties: streaming: anyOf: - type: boolean - type: 'null' title: Streaming pushNotifications: anyOf: - type: boolean - type: 'null' title: Pushnotifications stateTransitionHistory: anyOf: - type: boolean - type: 'null' title: Statetransitionhistory extensions: anyOf: - items: $ref: '#/components/schemas/AgentExtension' type: array - type: 'null' title: Extensions type: object title: AgentCapabilities description: Defines optional capabilities supported by an agent. AgentProvider: properties: organization: type: string title: Organization url: type: string title: Url type: object title: AgentProvider description: Represents the service provider of an agent. MutualTLSSecurityScheme: properties: description: anyOf: - type: string - type: 'null' title: Description type: type: string const: mutualTLS title: Type type: object required: - type title: MutualTLSSecurityScheme description: Defines a security scheme using mTLS authentication. EndpointProvider: properties: slug: type: string title: Slug display_name: type: string title: Display Name type: object required: - slug - display_name title: EndpointProvider PageLinks: properties: self: type: string title: Self prev: anyOf: - type: string - type: 'null' title: Prev next: anyOf: - type: string - type: 'null' title: Next type: object required: - self title: PageLinks description: 'Hypermedia for a paginated list. No `first`/`last`: without a total count the last page is unknown.' HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError ComplexityScorerDefaults: properties: tier_boundaries: additionalProperties: type: number type: object title: Tier Boundaries token_thresholds: additionalProperties: type: integer type: object title: Token Thresholds dimension_weights: additionalProperties: type: number type: object title: Dimension Weights type: object required: - tier_boundaries - token_thresholds - dimension_weights title: ComplexityScorerDefaults description: 'The complexity router''s shipped heuristic scorer defaults. The dashboard prefills its Advanced scoring controls from these rather than keeping its own copy, so a recalibration of the defaults cannot leave the form reporting numbers the router no longer uses.' OAuth2SecurityScheme: properties: description: anyOf: - type: string - type: 'null' title: Description type: type: string const: oauth2 title: Type flows: $ref: '#/components/schemas/OAuthFlows' oauth2MetadataUrl: anyOf: - type: string - type: 'null' title: Oauth2Metadataurl type: object required: - type - flows title: OAuth2SecurityScheme description: Defines a security scheme using OAuth 2.0. SupportedEndpoint: properties: key: type: string title: Key label: type: string title: Label endpoint: type: string title: Endpoint providers: items: $ref: '#/components/schemas/EndpointProvider' type: array title: Providers type: object required: - key - label - endpoint - providers title: SupportedEndpoint AgentInterface: properties: url: type: string title: Url transport: type: string title: Transport type: object title: AgentInterface description: Declares a combination of a target URL and a transport protocol. AgentSkill: properties: id: type: string title: Id name: type: string title: Name description: type: string title: Description tags: items: type: string type: array title: Tags examples: anyOf: - items: type: string type: array - type: 'null' title: Examples inputModes: anyOf: - items: type: string type: array - type: 'null' title: Inputmodes outputModes: anyOf: - items: type: string type: array - type: 'null' title: Outputmodes security: anyOf: - items: additionalProperties: items: type: string type: array type: object type: array - type: 'null' title: Security type: object title: AgentSkill description: Represents a distinct capability or function that an agent can perform. AgentSkillsIndexEntry: properties: name: type: string title: Name type: type: string const: archive title: Type description: type: string title: Description url: type: string title: Url digest: type: string title: Digest type: object required: - name - type - description - url - digest title: AgentSkillsIndexEntry ListResponse_ModelGroupInfoProxy_: properties: data: items: $ref: '#/components/schemas/ModelGroupInfoProxy' type: array title: Data meta: $ref: '#/components/schemas/ListMeta' links: $ref: '#/components/schemas/ListLinks' type: object required: - data - meta - links title: ListResponse[ModelGroupInfoProxy] PageMeta: properties: page: type: integer title: Page page_size: type: integer title: Page Size has_more: type: boolean title: Has More type: object required: - page - page_size - has_more title: PageMeta description: '`has_more` rather than `total_count`, which would need a COUNT(*) over the whole match set per keystroke.' BlogPost: properties: title: type: string title: Title description: type: string title: Description date: type: string title: Date url: type: string title: Url type: object required: - title - description - date - url title: BlogPost AgentCardSignature: properties: protected: type: string title: Protected signature: type: string title: Signature header: anyOf: - additionalProperties: true type: object - type: 'null' title: Header type: object title: AgentCardSignature description: Represents a JWS signature of an AgentCard. AgentCreateInfo: properties: agent_type: type: string title: Agent Type agent_type_display_name: type: string title: Agent Type Display Name description: anyOf: - type: string - type: 'null' title: Description logo_url: anyOf: - type: string - type: 'null' title: Logo Url credential_fields: items: $ref: '#/components/schemas/AgentCredentialField' type: array title: Credential Fields litellm_params_template: anyOf: - additionalProperties: type: string type: object - type: 'null' title: Litellm Params Template model_template: anyOf: - type: string - type: 'null' title: Model Template type: object required: - agent_type - agent_type_display_name - credential_fields title: AgentCreateInfo AgentCard: properties: protocolVersion: type: string title: Protocolversion name: type: string title: Name description: type: string title: Description url: type: string title: Url version: type: string title: Version capabilities: $ref: '#/components/schemas/AgentCapabilities' defaultInputModes: items: type: string type: array title: Defaultinputmodes defaultOutputModes: items: type: string type: array title: Defaultoutputmodes skills: items: $ref: '#/components/schemas/AgentSkill' type: array title: Skills preferredTransport: anyOf: - type: string - type: 'null' title: Preferredtransport additionalInterfaces: anyOf: - items: $ref: '#/components/schemas/AgentInterface' type: array - type: 'null' title: Additionalinterfaces iconUrl: anyOf: - type: string - type: 'null' title: Iconurl provider: anyOf: - $ref: '#/components/schemas/AgentProvider' - type: 'null' documentationUrl: anyOf: - type: string - type: 'null' title: Documentationurl securitySchemes: anyOf: - additionalProperties: anyOf: - $ref: '#/components/schemas/APIKeySecurityScheme' - $ref: '#/components/schemas/HTTPAuthSecurityScheme' - $ref: '#/components/schemas/OAuth2SecurityScheme' - $ref: '#/components/schemas/OpenIdConnectSecurityScheme' - $ref: '#/components/schemas/MutualTLSSecurityScheme' type: object - type: 'null' title: Securityschemes security: anyOf: - items: additionalProperties: items: type: string type: array type: object type: array - type: 'null' title: Security supportsAuthenticatedExtendedCard: anyOf: - type: boolean - type: 'null' title: Supportsauthenticatedextendedcard signatures: anyOf: - items: $ref: '#/components/schemas/AgentCardSignature' type: array - type: 'null' title: Signatures type: object title: AgentCard description: 'The AgentCard is a self-describing manifest for an agent. It provides essential metadata including the agent''s identity, capabilities, skills, supported communication methods, and security requirements.' BlogPostsResponse: properties: posts: items: $ref: '#/components/schemas/BlogPost' type: array title: Posts type: object required: - posts title: BlogPostsResponse AutoRouterPresetTiers: properties: SIMPLE: items: type: string type: array title: Simple MEDIUM: items: type: string type: array title: Medium COMPLEX: items: type: string type: array title: Complex REASONING: items: type: string type: array title: Reasoning additionalProperties: false type: object required: - SIMPLE - MEDIUM - COMPLEX - REASONING title: AutoRouterPresetTiers description: 'Exactly the four built-in tiers the dashboard''s preset prefill can apply. extra="forbid" on purpose: a tier name this dashboard cannot apply would grey out or crash the picker, so such a catalog is rejected wholesale and the bundled one serves instead.' AgentSkillsIndex: properties: $schema: type: string title: $Schema default: https://schemas.agentskills.io/discovery/0.2.0/schema.json skills: items: $ref: '#/components/schemas/AgentSkillsIndexEntry' type: array title: Skills type: object required: - skills title: AgentSkillsIndex AutoRouterPresetRecord: properties: label: type: string title: Label description: type: string title: Description complexity_router_config: $ref: '#/components/schemas/AutoRouterPresetConfig' additionalProperties: true type: object required: - label - description - complexity_router_config title: AutoRouterPresetRecord description: One auto-router preset as served to the dashboard's template picker. SupportedEndpointsResponse: properties: endpoints: items: $ref: '#/components/schemas/SupportedEndpoint' type: array title: Endpoints type: object required: - endpoints title: SupportedEndpointsResponse HTTPAuthSecurityScheme: properties: description: anyOf: - type: string - type: 'null' title: Description type: type: string const: http title: Type scheme: type: string title: Scheme bearerFormat: anyOf: - type: string - type: 'null' title: Bearerformat type: object required: - type - scheme title: HTTPAuthSecurityScheme description: Defines a security scheme using HTTP authentication. PublicModelHubInfo: properties: docs_title: type: string title: Docs Title custom_docs_description: anyOf: - type: string - type: 'null' title: Custom Docs Description litellm_version: type: string title: Litellm Version useful_links: anyOf: - additionalProperties: anyOf: - type: string - additionalProperties: true type: object type: object - type: 'null' title: Useful Links type: object required: - docs_title - custom_docs_description - litellm_version - useful_links title: PublicModelHubInfo ConfigurableClientsideParamsCustomAuth-Output: properties: api_base: type: string title: Api Base type: object required: - api_base title: ConfigurableClientsideParamsCustomAuth APIKeySecurityScheme: properties: description: anyOf: - type: string - type: 'null' title: Description type: type: string const: apiKey title: Type in_: type: string enum: - query - header - cookie title: In name: type: string title: Name type: object required: - type - in_ - name title: APIKeySecurityScheme description: Defines a security scheme using an API key. MCPPublicServer: properties: server_id: type: string title: Server Id name: type: string title: Name alias: anyOf: - type: string - type: 'null' title: Alias server_name: anyOf: - type: string - type: 'null' title: Server Name transport: type: string enum: - sse - http - stdio title: Transport spec_path: anyOf: - type: string - type: 'null' title: Spec Path auth_type: anyOf: - type: string enum: - none - api_key - bearer_token - basic - authorization - oauth2 - aws_sigv4 - token - oauth2_token_exchange - oauth2_id_jag - true_passthrough - oauth_delegate - type: 'null' title: Auth Type mcp_info: anyOf: - additionalProperties: true type: object - type: 'null' title: Mcp Info type: object required: - server_id - name - transport title: MCPPublicServer description: Safe params for public MCP servers securitySchemes: APIKeyHeader: type: apiKey description: Bearer token in: header name: x-litellm-api-key