Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
title: LiteLLM model management API
description: "Enterprise Edition \n\nProxy Server to call 100+ LLMs in the OpenAI format. [**Customize Swagger Docs**](https://docs.litellm.ai/docs/proxy/enterprise#swagger-docs---custom-routes--branding)\n\n\U0001F449 [```LiteLLM Admin Panel on /ui```](/ui). Create, Edit Keys with SSO. Having issues? Try [```Fallback Login```](/fallback/login)\n\n\U0001F4B8 [```LiteLLM Model Cost Map```](https://models.litellm.ai/).\n\n\U0001F50E [```LiteLLM Model Hub```](/ui/model_hub_table). See available models on the proxy. [**Docs**](https://docs.litellm.ai/docs/proxy/ai_hub)"
version: 1.95.0
x-operator: institution
x-provenance:
method: probed
source: https://llmproxy.uva.nl/openapi.json
retrieved: '2026-08-19'
note: Document is generated by the LiteLLM proxy software the University of Amsterdam self-hosts; the deployment, the key issuance and the host (llmproxy.uva.nl, UvA Azure) are the institution's. servers[] added by API Evangelist because the served document omits it; nothing else altered.
servers:
- url: https://llmproxy.uva.nl
description: University of Amsterdam / Amsterdam University of Applied Sciences shared AI gateway
tags:
- name: model management
paths:
/models:
get:
tags:
- model management
summary: Model List
description: "Use `/model/info` - to get detailed model information, example - pricing, mode, etc.\n\nThis is just for compatibility with openai projects like aider.\n\nQuery Parameters:\n- include_metadata: Include additional metadata in the response with fallback information\n- fallback_type: Type of fallbacks to include (\"general\", \"context_window\", \"content_policy\")\n Defaults to \"general\" when include_metadata=true\n- scope: Optional scope parameter. Currently only accepts \"expand\".\n When scope=expand is passed, proxy admins, team admins, and org admins\n will receive all proxy models as if they are a proxy admin.\n- healthy_only: When true, hide models whose backing deployments are all marked\n unhealthy by background health checks. Requires\n `background_health_checks: true` in general_settings; without\n health state the listing is returned unfiltered (fail open).\n Models expanded from wildcard routes (e.g. `openai/*`) are not\n filtered, and nothing is hidden when `allowed_fails_policy` is\n configured (cooldown remains the sole exclusion mechanism).\n Hiding is presentation-only: a hidden model can still be\n called directly."
operationId: model_list_models_get
security:
- APIKeyHeader: []
parameters:
- name: return_wildcard_routes
in: query
required: false
schema:
anyOf:
- type: boolean
- type: 'null'
default: false
title: Return Wildcard Routes
- name: team_id
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Team Id
- name: include_model_access_groups
in: query
required: false
schema:
anyOf:
- type: boolean
- type: 'null'
default: false
title: Include Model Access Groups
- name: only_model_access_groups
in: query
required: false
schema:
anyOf:
- type: boolean
- type: 'null'
default: false
title: Only Model Access Groups
- name: include_metadata
in: query
required: false
schema:
anyOf:
- type: boolean
- type: 'null'
default: false
title: Include Metadata
- name: fallback_type
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Fallback Type
- name: scope
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Scope
- name: healthy_only
in: query
required: false
schema:
anyOf:
- type: boolean
- type: 'null'
default: false
title: Healthy Only
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/models:
get:
tags:
- model management
summary: Model List
description: "Use `/model/info` - to get detailed model information, example - pricing, mode, etc.\n\nThis is just for compatibility with openai projects like aider.\n\nQuery Parameters:\n- include_metadata: Include additional metadata in the response with fallback information\n- fallback_type: Type of fallbacks to include (\"general\", \"context_window\", \"content_policy\")\n Defaults to \"general\" when include_metadata=true\n- scope: Optional scope parameter. Currently only accepts \"expand\".\n When scope=expand is passed, proxy admins, team admins, and org admins\n will receive all proxy models as if they are a proxy admin.\n- healthy_only: When true, hide models whose backing deployments are all marked\n unhealthy by background health checks. Requires\n `background_health_checks: true` in general_settings; without\n health state the listing is returned unfiltered (fail open).\n Models expanded from wildcard routes (e.g. `openai/*`) are not\n filtered, and nothing is hidden when `allowed_fails_policy` is\n configured (cooldown remains the sole exclusion mechanism).\n Hiding is presentation-only: a hidden model can still be\n called directly."
operationId: model_list_v1_models_get
security:
- APIKeyHeader: []
parameters:
- name: return_wildcard_routes
in: query
required: false
schema:
anyOf:
- type: boolean
- type: 'null'
default: false
title: Return Wildcard Routes
- name: team_id
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Team Id
- name: include_model_access_groups
in: query
required: false
schema:
anyOf:
- type: boolean
- type: 'null'
default: false
title: Include Model Access Groups
- name: only_model_access_groups
in: query
required: false
schema:
anyOf:
- type: boolean
- type: 'null'
default: false
title: Only Model Access Groups
- name: include_metadata
in: query
required: false
schema:
anyOf:
- type: boolean
- type: 'null'
default: false
title: Include Metadata
- name: fallback_type
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Fallback Type
- name: scope
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Scope
- name: healthy_only
in: query
required: false
schema:
anyOf:
- type: boolean
- type: 'null'
default: false
title: Healthy Only
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/models/{model_id}:
get:
tags:
- model management
summary: Model Info
description: 'Retrieve information about a specific model accessible to your API key.
Returns model details only if the model is available to your API key/team.
Returns 404 if the model doesn''t exist or is not accessible.
Follows OpenAI API specification for individual model retrieval.
https://platform.openai.com/docs/api-reference/models/retrieve
Query parameters mirror `/v1/models` so the same caller context (team
scoping, health filtering, paused deployments) drives both endpoints; the
listing''s public id must resolve to the same internal deployment here.'
operationId: model_info_models__model_id__get
security:
- APIKeyHeader: []
parameters:
- name: model_id
in: path
required: true
schema:
type: string
title: Model Id
- name: team_id
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Team Id
- name: healthy_only
in: query
required: false
schema:
anyOf:
- type: boolean
- type: 'null'
default: false
title: Healthy Only
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/models/{model_id}:
get:
tags:
- model management
summary: Model Info
description: 'Retrieve information about a specific model accessible to your API key.
Returns model details only if the model is available to your API key/team.
Returns 404 if the model doesn''t exist or is not accessible.
Follows OpenAI API specification for individual model retrieval.
https://platform.openai.com/docs/api-reference/models/retrieve
Query parameters mirror `/v1/models` so the same caller context (team
scoping, health filtering, paused deployments) drives both endpoints; the
listing''s public id must resolve to the same internal deployment here.'
operationId: model_info_v1_models__model_id__get
security:
- APIKeyHeader: []
parameters:
- name: model_id
in: path
required: true
schema:
type: string
title: Model Id
- name: team_id
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Team Id
- name: healthy_only
in: query
required: false
schema:
anyOf:
- type: boolean
- type: 'null'
default: false
title: Healthy Only
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v2/model/info:
get:
tags:
- model management
summary: Model Info V2
description: "Paginated model metadata for proxy deployments (pricing, provider, team access).\n\nReturns configured router deployments with enriched `model_info` (costs, provider,\ncontext window, etc.). Sensitive fields such as API keys and api_base are omitted.\n\nQuery parameters:\n model: Filter to a single public `model_name`.\n user_models_only: When true, only return models created by the calling user.\n include_team_models: When true, populate `access_via_team_ids` and `direct_access`\n on each model and filter to deployments the caller can use.\n page / size: Pagination controls (defaults: page=1, size=50).\n search: Case-insensitive partial match on model name or team public name.\n modelId: Return a single deployment by LiteLLM model id.\n teamId: Filter to models with direct access or team membership for this team id.\n sortBy / sortOrder: Sort by model_name, created_at, updated_at, costs, or status.\n\nExample request:\n```\ncurl -X GET 'http://localhost:4000/v2/model/info?include_team_models=true&page=1&size=50' \\\n--header 'Authorization: Bearer sk-1234'\n```\n\nExample response:\n```json\n{\n \"data\": [\n {\n \"model_name\": \"gpt-4\",\n \"litellm_params\": {\"model\": \"openai/gpt-4.1\"},\n \"model_info\": {\n \"id\": \"abc123\",\n \"litellm_provider\": \"openai\",\n \"access_via_team_ids\": [\"team-1\"],\n \"direct_access\": true\n }\n }\n ],\n \"total_count\": 1,\n \"current_page\": 1,\n \"total_pages\": 1,\n \"size\": 50\n}\n```"
operationId: model_info_v2_v2_model_info_get
security:
- APIKeyHeader: []
parameters:
- name: model
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Specify the model name (optional)
title: Model
description: Specify the model name (optional)
- name: user_models_only
in: query
required: false
schema:
anyOf:
- type: boolean
- type: 'null'
description: Only return models added by this user
default: false
title: User Models Only
description: Only return models added by this user
- name: include_team_models
in: query
required: false
schema:
anyOf:
- type: boolean
- type: 'null'
description: Return all models across all teams user is in.
default: false
title: Include Team Models
description: Return all models across all teams user is in.
- name: debug
in: query
required: false
schema:
anyOf:
- type: boolean
- type: 'null'
default: false
title: Debug
- name: page
in: query
required: false
schema:
type: integer
minimum: 1
description: Page number
default: 1
title: Page
description: Page number
- name: size
in: query
required: false
schema:
type: integer
minimum: 1
description: Page size
default: 50
title: Size
description: Page size
- name: search
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Search model names (case-insensitive partial match)
title: Search
description: Search model names (case-insensitive partial match)
- name: modelId
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Search for a specific model by its unique ID
title: Modelid
description: Search for a specific model by its unique ID
- name: teamId
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Filter models by team ID. Returns models with direct_access=True or teamId in access_via_team_ids
title: Teamid
description: Filter models by team ID. Returns models with direct_access=True or teamId in access_via_team_ids
- name: sortBy
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: 'Field to sort by. Options: model_name, created_at, updated_at, costs, status'
title: Sortby
description: 'Field to sort by. Options: model_name, created_at, updated_at, costs, status'
- name: sortOrder
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: 'Sort order. Options: asc, desc'
default: asc
title: Sortorder
description: 'Sort order. Options: asc, desc'
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/model/info:
get:
tags:
- model management
summary: Model Info V1
description: "Provides more info about each model in /models, including config.yaml descriptions (except api key and api base)\n\nParameters:\n litellm_model_id: Optional[str] = None (this is the value of `x-litellm-model-id` returned in response headers)\n\n - When litellm_model_id is passed, it will return the info for that specific model\n - When litellm_model_id is not passed, it will return the info for all models\n - include_team_models: When true, filter to deployments the caller can use (same as /v2/model/info).\n - teamId: Filter to models accessible by the given team.\n\nEach model in the list response includes `model_info.access_via_team_ids` and\n`model_info.direct_access` when the proxy database is connected.\n\nReturns:\n Returns a dictionary containing information about each model.\n\nExample Response:\n```json\n{\n \"data\": [\n {\n \"model_name\": \"fake-openai-endpoint\",\n \"litellm_params\": {\n \"api_base\": \"https://exampleopenaiendpoint-production.up.railway.app/\",\n \"model\": \"openai/fake\"\n },\n \"model_info\": {\n \"id\": \"112f74fab24a7a5245d2ced3536dd8f5f9192c57ee6e332af0f0512e08bed5af\",\n \"db_model\": false\n }\n }\n ]\n}\n\n```"
operationId: model_info_v1_v1_model_info_get
security:
- APIKeyHeader: []
parameters:
- name: litellm_model_id
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Litellm Model Id
- name: include_team_models
in: query
required: false
schema:
anyOf:
- type: boolean
- type: 'null'
description: When true, filter to deployments the caller can use via direct access or team membership.
default: false
title: Include Team Models
description: When true, filter to deployments the caller can use via direct access or team membership.
- name: teamId
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Filter models by team ID. Returns models with direct_access=True or teamId in access_via_team_ids
title: Teamid
description: Filter models by team ID. Returns models with direct_access=True or teamId in access_via_team_ids
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/model/info:
get:
tags:
- model management
summary: Model Info V1
description: "Provides more info about each model in /models, including config.yaml descriptions (except api key and api base)\n\nParameters:\n litellm_model_id: Optional[str] = None (this is the value of `x-litellm-model-id` returned in response headers)\n\n - When litellm_model_id is passed, it will return the info for that specific model\n - When litellm_model_id is not passed, it will return the info for all models\n - include_team_models: When true, filter to deployments the caller can use (same as /v2/model/info).\n - teamId: Filter to models accessible by the given team.\n\nEach model in the list response includes `model_info.access_via_team_ids` and\n`model_info.direct_access` when the proxy database is connected.\n\nReturns:\n Returns a dictionary containing information about each model.\n\nExample Response:\n```json\n{\n \"data\": [\n {\n \"model_name\": \"fake-openai-endpoint\",\n \"litellm_params\": {\n \"api_base\": \"https://exampleopenaiendpoint-production.up.railway.app/\",\n \"model\": \"openai/fake\"\n },\n \"model_info\": {\n \"id\": \"112f74fab24a7a5245d2ced3536dd8f5f9192c57ee6e332af0f0512e08bed5af\",\n \"db_model\": false\n }\n }\n ]\n}\n\n```"
operationId: model_info_v1_model_info_get
security:
- APIKeyHeader: []
parameters:
- name: litellm_model_id
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Litellm Model Id
- name: include_team_models
in: query
required: false
schema:
anyOf:
- type: boolean
- type: 'null'
description: When true, filter to deployments the caller can use via direct access or team membership.
default: false
title: Include Team Models
description: When true, filter to deployments the caller can use via direct access or team membership.
- name: teamId
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Filter models by team ID. Returns models with direct_access=True or teamId in access_via_team_ids
title: Teamid
description: Filter models by team ID. Returns models with direct_access=True or teamId in access_via_team_ids
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/model_group/info:
get:
tags:
- model management
summary: Model Group Info
description: "Get information about all the deployments on litellm proxy, including config.yaml descriptions (except api key and api base)\n\n- /model_group/info returns all model groups. End users of proxy should use /model_group/info since those models will be used for /chat/completions, /embeddings, etc.\n- /model_group/info?model_group=rerank-english-v3.0 returns all model groups for a specific model group (`model_name` in config.yaml)\n\n\n\nExample Request (All Models):\n```shell\ncurl -X 'GET' 'http://localhost:4000/model_group/info' -H 'accept: application/json' -H 'x-api-key: sk-1234'\n```\n\nExample Request (Specific Model Group):\n```shell\ncurl -X 'GET' 'http://localhost:4000/model_group/info?model_group=rerank-english-v3.0' -H 'accept: application/json' -H 'Authorization: Bearer sk-1234'\n```\n\nExample Request (Specific Wildcard Model Group): (e.g. `model_name: openai/*` on config.yaml)\n```shell\ncurl -X 'GET' 'http://localhost:4000/model_group/info?model_group=openai/tts-1'\n-H 'accept: application/json' -H 'Authorization: Bearersk-1234'\n```\n\nLearn how to use and set wildcard models [here](https://docs.litellm.ai/docs/wildcard_routing)\n\nExample Response:\n```json\n {\n \"data\": [\n {\n \"model_group\": \"rerank-english-v3.0\",\n \"providers\": [\n \"cohere\"\n ],\n \"max_input_tokens\": null,\n \"max_output_tokens\": null,\n \"input_cost_per_token\": 0.0,\n \"output_cost_per_token\": 0.0,\n \"mode\": null,\n \"tpm\": null,\n \"rpm\": null,\n \"supports_parallel_function_calling\": false,\n \"supports_vision\": false,\n \"supports_function_calling\": false,\n \"supported_openai_params\": [\n \"stream\",\n \"temperature\",\n \"max_tokens\",\n \"logit_bias\",\n \"top_p\",\n \"frequency_penalty\",\n \"presence_penalty\",\n \"stop\",\n \"n\",\n \"extra_headers\"\n ]\n },\n {\n \"model_group\": \"gpt-3.5-turbo\",\n \"providers\": [\n \"openai\"\n ],\n \"max_input_tokens\": 16385.0,\n \"max_output_tokens\": 4096.0,\n \"input_cost_per_token\": 1.5e-06,\n \"output_cost_per_token\": 2e-06,\n \"mode\": \"chat\",\n \"tpm\": null,\n \"rpm\": null,\n \"supports_parallel_function_calling\": false,\n \"supports_vision\": false,\n \"supports_function_calling\": true,\n \"supported_openai_params\": [\n \"frequency_penalty\",\n \"logit_bias\",\n \"logprobs\",\n \"top_logprobs\",\n \"max_tokens\",\n \"max_completion_tokens\",\n \"n\",\n \"presence_penalty\",\n \"seed\",\n \"stop\",\n \"stream\",\n \"stream_options\",\n \"temperature\",\n \"top_p\",\n \"tools\",\n \"tool_choice\",\n \"function_call\",\n \"functions\",\n \"max_retries\",\n \"extra_headers\",\n \"parallel_tool_calls\",\n \"response_format\"\n ]\n },\n {\n \"model_group\": \"llava-hf\",\n \"providers\": [\n \"openai\"\n ],\n \"max_input_tokens\": null,\n \"max_output_tokens\": null,\n \"input_cost_per_token\": 0.0,\n \"output_cost_per_token\": 0.0,\n \"mode\": null,\n \"tpm\": null,\n \"rpm\": null,\n \"supports_parallel_function_calling\": false,\n \"supports_vision\": true,\n \"supports_function_calling\": false,\n \"supported_openai_params\": [\n \"frequency_penalty\",\n \"logit_bias\",\n \"logprobs\",\n \"top_logprobs\",\n \"max_tokens\",\n \"max_completion_tokens\",\n \"n\",\n \"presence_penalty\",\n \"seed\",\n \"stop\",\n \"stream\",\n \"stream_options\",\n \"temperature\",\n \"top_p\",\n \"tools\",\n \"tool_choice\",\n \"function_call\",\n \"functions\",\n \"max_retries\",\n \"extra_headers\",\n \"parallel_tool_calls\",\n \"response_format\"\n ]\n }\n ]\n }\n```"
operationId: model_group_info_model_group_info_get
security:
- APIKeyHeader: []
parameters:
- name: model_group
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Model Group
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/public/model_hub:
get:
tags:
- model management
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/model_hub/info:
get:
tags:
- model management
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/litellm_model_cost_map:
get:
tags:
- model management
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: {}
/model/{model_id}/update:
patch:
tags:
- model management
summary: Patch Model
description: "PATCH Endpoint for partial model updates.\n\nOnly updates the fields specified in the request while preserving other existing values.\nFollows proper PATCH semantics by only modifying provided fields.\n\nArgs:\n model_id: The ID of the model to update\n patch_data: The fields to update and their new values\n user_api_key_dict: User authentication information\n\nReturns:\n Updated model information\n\nRaises:\n ProxyException: For various error conditions including authentication and database errors"
operationId: patch_model_model__model_id__update_patch
security:
- APIKeyHeader: []
parameters:
- name: model_id
in: path
required: true
schema:
type: string
title: Model Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/updateDeployment'
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/model/block:
post:
tags:
- model management
summary: Block Model
description: 'Block a DB-stored model deployment from serving requests.
Parameters:
- model_id: str - The model deployment id to block.'
operationId: block_model_model_block_post
security:
- APIKeyHeader: []
parameters:
- name: litellm-changed-by
in: header
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability
title: Litellm-Changed-By
description: The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/sch
# --- truncated at 32 KB (106 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/university-of-amsterdam/refs/heads/main/openapi/university-of-amsterdam-model-management-api-openapi.yml