openapi: 3.2.0 info: title: LiteLLM key management 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: Key Management paths: /key/generate: post: tags: - Key Management summary: Generate Key Fn description: Generate an API key based on the provided data. operationId: generate_key_fn_key_generate_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/schemas/GenerateKeyRequest' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/GenerateKeyResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /key/service-account/generate: post: tags: - Key Management summary: Generate Service Account Key Fn description: Generate a Service Account API key based on the provided data. operationId: generate_service_account_key_fn_key_service_account_generate_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/schemas/GenerateKeyRequest' responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /key/update: post: tags: - Key Management summary: Update Key Fn description: Update an existing API key's parameters. operationId: update_key_fn_key_update_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/schemas/UpdateKeyRequest' responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /key/bulk_update: post: tags: - Key Management summary: Bulk Update Keys description: 'Bulk update multiple keys at once. This endpoint allows updating multiple keys in a single request. Each key update is processed independently - if some updates fail, others will still succeed. Parameters: - keys: List[BulkUpdateKeyRequestItem] - List of key update requests, each containing: - key: str - The key identifier (token) to update - budget_id: Optional[str] - Budget ID associated with the key - max_budget: Optional[float] - Max budget for key - team_id: Optional[str] - Team ID associated with key - tags: Optional[List[str]] - Tags for organizing keys Returns: - total_requested: int - Total number of keys requested for update - successful_updates: List[SuccessfulKeyUpdate] - List of successfully updated keys with their updated info - failed_updates: List[FailedKeyUpdate] - List of failed updates with key_info and failed_reason Example request: ```bash curl --location ''http://0.0.0.0:4000/key/bulk_update'' --header ''Authorization: Bearer sk-1234'' --header ''Content-Type: application/json'' --data ''{ "keys": [ { "key": "sk-1234", "max_budget": 100.0, "team_id": "team-123", "tags": ["production", "api"] }, { "key": "sk-5678", "budget_id": "budget-456", "tags": ["staging"] } ] }'' ```' operationId: bulk_update_keys_key_bulk_update_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/schemas/BulkUpdateKeyRequest' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/BulkUpdateKeyResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /team/key/bulk_update: post: tags: - Key Management summary: Bulk Update Team Keys description: 'Apply one update payload to many keys inside a single team. Pass `team_id` plus either `key_ids` or `all_keys_in_team=True`. The `update_fields` payload is broadcast to every selected key. Per-key failures are returned in `failed_updates` rather than aborting the batch. Callable by proxy admins, or by team admins with `KEY_UPDATE` permission.' operationId: bulk_update_team_keys_team_key_bulk_update_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/schemas/BulkUpdateTeamKeysRequest' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/BulkUpdateKeyResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /key/delete: post: tags: - Key Management summary: Delete Key Fn description: 'Delete a key from the key management system. Parameters:: - keys (List[str]): A list of keys or hashed keys to delete. Example {"keys": ["sk-QWrxEynunsNpV1zT48HIrw", "837e17519f44683334df5291321d97b8bf1098cd490e49e215f6fea935aa28be"]} - key_aliases (List[str]): A list of key aliases to delete. Can be passed instead of `keys`.Example {"key_aliases": ["alias1", "alias2"]} Returns: - deleted_keys (List[str]): A list of deleted keys. Example {"deleted_keys": ["sk-QWrxEynunsNpV1zT48HIrw", "837e17519f44683334df5291321d97b8bf1098cd490e49e215f6fea935aa28be"]} Example: ```bash curl --location ''http://0.0.0.0:4000/key/delete'' --header ''Authorization: Bearer sk-1234'' --header ''Content-Type: application/json'' --data ''{ "keys": ["sk-QWrxEynunsNpV1zT48HIrw"] }'' ``` Raises: HTTPException: If an error occurs during key deletion.' operationId: delete_key_fn_key_delete_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/schemas/KeyRequest' responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /key/info: get: tags: - Key Management summary: Info Key Fn description: 'Retrieve information about a key. Parameters: - key: str | None (query parameter) - The key to look up. Accepts the plaintext key or its hash; prefer the hash, since a query parameter is recorded verbatim by any HTTP access log in front of the proxy. Defaults to the key in the Authorization header. Returns: - key: str - The key that was looked up, echoed back as it was passed in - info: dict - The key''s row, minus the hashed token - key_alias: str | None - User-friendly key alias - spend: float - Amount spent by the key. When budget_duration is set this covers only the current budget window, not the key''s lifetime - max_budget: float | None - Max budget for the key, enforced against spend - budget_duration: str | None - Budget reset period ("30d", "1h", etc.) - budget_reset_at: datetime | None - When the current budget window ends and spend is next reset to 0, not when it was last reset. Reset times snap to standard boundaries in the configured timezone (30d and 1mo land on the 1st of the month, 7d on Monday, 1h on the hour), so subtracting budget_duration from it does not give the window''s start - model_max_budget: dict - Per-model budgets, e.g. {"gpt-4": {"budget_limit": 0.0005, "time_period": "30d"}} - model_max_budget_usage: dict | None - Current-window spend per model, present only when the key has per-model budgets - budget_limits: list | None - Concurrent budget windows, exactly as stored - budget_limits_usage: dict | None - Current-window spend per budget window, e.g. {"1h": {"current_spend": 0.0009}}, present only when the key has budget windows (read from the same cross-pod spend counter the budget enforcement uses) - models: list - Model_name''s the key is allowed to call - tpm_limit / rpm_limit: int | None - Tokens and requests per minute limits - metadata: dict - Metadata for the key, e.g. {"team": "core-infra"} - blocked: bool | None - Whether the key is blocked - expires: datetime | None - When the key stops authenticating requests - last_active: datetime | None - When the key was last used - object_permission: dict | None - Resolved vector store / MCP permissions when the key has an object_permission_id Example Curl: ``` curl -X GET "http://0.0.0.0:4000/key/info?key=d5345c0ecc68ae6295c69f91926b2bd379e25481a40c34b5884d157a9f65d8fa" -H "Authorization: Bearer sk-1234" ``` Example Curl - if no key is passed, it will use the Key Passed in Authorization Header ``` curl -X GET "http://0.0.0.0:4000/key/info" -H "Authorization: Bearer sk-test-example-key-123" ```' operationId: info_key_fn_key_info_get security: - APIKeyHeader: [] parameters: - name: key in: query required: false schema: anyOf: - type: string - type: 'null' description: Key to look up. Pass the key's sha256 hash so the raw key stays out of URLs and access logs. Example key='d5345c0ecc68ae6295c69f91926b2bd379e25481a40c34b5884d157a9f65d8fa' title: Key description: Key to look up. Pass the key's sha256 hash so the raw key stays out of URLs and access logs. Example key='d5345c0ecc68ae6295c69f91926b2bd379e25481a40c34b5884d157a9f65d8fa' responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /key/regenerate: post: tags: - Key Management summary: Regenerate Key Fn description: 'Regenerate an existing API key while optionally updating its parameters. Parameters: - key: str (path parameter) - The key to regenerate - data: Optional[RegenerateKeyRequest] - Request body containing optional parameters to update - key: Optional[str] - The key to regenerate. - new_master_key: Optional[str] - The new master key to use, if key is the master key. - new_key: Optional[str] - The new key to use, if key is not the master key. Must start with ''sk-'' and be at least 16 characters long. If both set, new_master_key will be used. - key_alias: Optional[str] - User-friendly key alias - user_id: Optional[str] - User ID associated with key - team_id: Optional[str] - Team ID associated with key - models: Optional[list] - Model_name''s a user is allowed to call - tags: Optional[List[str]] - Tags for organizing keys (Enterprise only) - spend: Optional[float] - Amount spent by key - max_budget: Optional[float] - Max budget for key - model_max_budget: Optional[Dict[str, BudgetConfig]] - Model-specific budgets {"gpt-4": {"budget_limit": 0.0005, "time_period": "30d"}} - budget_fallbacks: Optional[Dict[str, List[str]]] - Per-model fallback chain tried in order when that model''s own `model_max_budget` is exceeded, e.g. {"gpt-4o": ["gpt-4o-mini"]}. - budget_duration: Optional[str] - Budget reset period ("30d", "1h", etc.) - soft_budget: Optional[float] - Soft budget limit (warning vs. hard stop). Will trigger a slack alert when this soft budget is reached. - max_parallel_requests: Optional[int] - Rate limit for parallel requests - metadata: Optional[dict] - Metadata for key. Example {"team": "core-infra", "app": "app2"} - tpm_limit: Optional[int] - Tokens per minute limit - rpm_limit: Optional[int] - Requests per minute limit - model_rpm_limit: Optional[dict] - Model-specific RPM limits {"gpt-4": 100, "claude-v1": 200} - model_tpm_limit: Optional[dict] - Model-specific TPM limits {"gpt-4": 100000, "claude-v1": 200000} - allowed_cache_controls: Optional[list] - List of allowed cache control values - duration: Optional[str] - Key validity duration ("30d", "1h", etc.) - permissions: Optional[dict] - Key-specific permissions - guardrails: Optional[List[str]] - List of active guardrails for the key - blocked: Optional[bool] - Whether the key is blocked - grace_period: Optional[str] - Duration to keep old key valid after rotation (e.g. "24h", "2d"). Omitted = immediate revoke. Env: LITELLM_KEY_ROTATION_GRACE_PERIOD Returns: - GenerateKeyResponse containing the new key and its updated parameters Example: ```bash curl --location --request POST ''http://localhost:4000/key/sk-1234/regenerate'' --header ''Authorization: Bearer sk-1234'' --header ''Content-Type: application/json'' --data-raw ''{ "max_budget": 100, "metadata": {"team": "core-infra"}, "models": ["gpt-4", "gpt-3.5-turbo"] }'' ``` Note: This is an Enterprise feature. It requires a premium license to use.' operationId: regenerate_key_fn_key_regenerate_post security: - APIKeyHeader: [] parameters: - name: key in: query required: false schema: anyOf: - type: string - type: 'null' title: Key - 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: content: application/json: schema: anyOf: - $ref: '#/components/schemas/RegenerateKeyRequest' - type: 'null' title: Data responses: '200': description: Successful Response content: application/json: schema: anyOf: - $ref: '#/components/schemas/GenerateKeyResponse' - type: 'null' title: Response Regenerate Key Fn Key Regenerate Post '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /key/{key}/regenerate: post: tags: - Key Management summary: Regenerate Key Fn description: 'Regenerate an existing API key while optionally updating its parameters. Parameters: - key: str (path parameter) - The key to regenerate - data: Optional[RegenerateKeyRequest] - Request body containing optional parameters to update - key: Optional[str] - The key to regenerate. - new_master_key: Optional[str] - The new master key to use, if key is the master key. - new_key: Optional[str] - The new key to use, if key is not the master key. Must start with ''sk-'' and be at least 16 characters long. If both set, new_master_key will be used. - key_alias: Optional[str] - User-friendly key alias - user_id: Optional[str] - User ID associated with key - team_id: Optional[str] - Team ID associated with key - models: Optional[list] - Model_name''s a user is allowed to call - tags: Optional[List[str]] - Tags for organizing keys (Enterprise only) - spend: Optional[float] - Amount spent by key - max_budget: Optional[float] - Max budget for key - model_max_budget: Optional[Dict[str, BudgetConfig]] - Model-specific budgets {"gpt-4": {"budget_limit": 0.0005, "time_period": "30d"}} - budget_fallbacks: Optional[Dict[str, List[str]]] - Per-model fallback chain tried in order when that model''s own `model_max_budget` is exceeded, e.g. {"gpt-4o": ["gpt-4o-mini"]}. - budget_duration: Optional[str] - Budget reset period ("30d", "1h", etc.) - soft_budget: Optional[float] - Soft budget limit (warning vs. hard stop). Will trigger a slack alert when this soft budget is reached. - max_parallel_requests: Optional[int] - Rate limit for parallel requests - metadata: Optional[dict] - Metadata for key. Example {"team": "core-infra", "app": "app2"} - tpm_limit: Optional[int] - Tokens per minute limit - rpm_limit: Optional[int] - Requests per minute limit - model_rpm_limit: Optional[dict] - Model-specific RPM limits {"gpt-4": 100, "claude-v1": 200} - model_tpm_limit: Optional[dict] - Model-specific TPM limits {"gpt-4": 100000, "claude-v1": 200000} - allowed_cache_controls: Optional[list] - List of allowed cache control values - duration: Optional[str] - Key validity duration ("30d", "1h", etc.) - permissions: Optional[dict] - Key-specific permissions - guardrails: Optional[List[str]] - List of active guardrails for the key - blocked: Optional[bool] - Whether the key is blocked - grace_period: Optional[str] - Duration to keep old key valid after rotation (e.g. "24h", "2d"). Omitted = immediate revoke. Env: LITELLM_KEY_ROTATION_GRACE_PERIOD Returns: - GenerateKeyResponse containing the new key and its updated parameters Example: ```bash curl --location --request POST ''http://localhost:4000/key/sk-1234/regenerate'' --header ''Authorization: Bearer sk-1234'' --header ''Content-Type: application/json'' --data-raw ''{ "max_budget": 100, "metadata": {"team": "core-infra"}, "models": ["gpt-4", "gpt-3.5-turbo"] }'' ``` Note: This is an Enterprise feature. It requires a premium license to use.' operationId: regenerate_key_fn_key__key__regenerate_post security: - APIKeyHeader: [] parameters: - name: key in: path required: true schema: anyOf: - type: string - type: 'null' title: Key - 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: content: application/json: schema: anyOf: - $ref: '#/components/schemas/RegenerateKeyRequest' - type: 'null' title: Data responses: '200': description: Successful Response content: application/json: schema: anyOf: - $ref: '#/components/schemas/GenerateKeyResponse' - type: 'null' title: Response Regenerate Key Fn Key Key Regenerate Post '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /key/{key}/reset_spend: post: tags: - Key Management summary: Reset Key Spend Fn operationId: reset_key_spend_fn_key__key__reset_spend_post security: - APIKeyHeader: [] parameters: - name: key in: path required: true schema: type: string title: Key - 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/schemas/ResetSpendRequest' responses: '200': description: Successful Response content: application/json: schema: type: object additionalProperties: true title: Response Reset Key Spend Fn Key Key Reset Spend Post '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /key/list: get: tags: - Key Management summary: List Keys description: 'List all keys for a given user / team / organization. Parameters: expand: Optional[List[str]] - Expand related objects (e.g. ''user'' to include user information) status: Optional[str] - Filter by status. Currently supports "deleted" to query deleted keys. Returns: { "keys": List[str] or List[UserAPIKeyAuth], "total_count": int, "current_page": int, "total_pages": int, } When expand includes "user", each key object will include a "user" field with the associated user object. Note: When expand=user is specified, full key objects are returned regardless of the return_full_object parameter.' operationId: list_keys_key_list_get security: - APIKeyHeader: [] parameters: - 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 maximum: 100 minimum: 1 description: Page size default: 10 title: Size description: Page size - name: user_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter keys by user ID. Exact match by default; set substring_matching=true (admin only) for case-insensitive substring matching. title: User Id description: Filter keys by user ID. Exact match by default; set substring_matching=true (admin only) for case-insensitive substring matching. - name: team_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter keys by team ID title: Team Id description: Filter keys by team ID - name: organization_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter keys by organization ID title: Organization Id description: Filter keys by organization ID - name: key_hash in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter keys by key hash title: Key Hash description: Filter keys by key hash - name: key_alias in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter keys by key alias. Exact match by default; set substring_matching=true for case-insensitive substring matching. title: Key Alias description: Filter keys by key alias. Exact match by default; set substring_matching=true for case-insensitive substring matching. - name: search in: query required: false schema: anyOf: - type: string - type: 'null' description: 'Combined search: matches keys whose token (key hash) equals the value OR whose key_alias contains it (case-insensitive).' title: Search description: 'Combined search: matches keys whose token (key hash) equals the value OR whose key_alias contains it (case-insensitive).' - name: return_full_object in: query required: false schema: type: boolean description: Return full key object default: false title: Return Full Object description: Return full key object - name: include_team_keys in: query required: false schema: type: boolean description: Include all keys for teams that user is an admin of. default: false title: Include Team Keys description: Include all keys for teams that user is an admin of. - name: include_created_by_keys in: query required: false schema: type: boolean description: Include keys created by the user default: false title: Include Created By Keys description: Include keys created by the user - name: sort_by in: query required: false schema: anyOf: - type: string - type: 'null' description: Column to sort by (e.g. 'user_id', 'created_at', 'spend') title: Sort By description: Column to sort by (e.g. 'user_id', 'created_at', 'spend') - name: sort_order in: query required: false schema: type: string description: Sort order ('asc' or 'desc') default: desc title: Sort Order description: Sort order ('asc' or 'desc') - name: expand in: query required: false schema: anyOf: - type: array items: type: string - type: 'null' description: Expand related objects (e.g. 'user') title: Expand description: Expand related objects (e.g. 'user') - name: status in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter by status (e.g. 'deleted') title: Status description: Filter by status (e.g. 'deleted') - name: project_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter keys by project ID title: Project Id description: Filter keys by project ID - name: access_group_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter keys by access group ID title: Access Group Id description: Filter keys by access group ID - name: agent_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter keys by agent ID title: Agent Id description: Filter keys by agent ID - name: substring_matching in: query required: false schema: type: boolean description: 'If true, match key_alias (any caller) and user_id (proxy admins only) as case-insensitive substrings instead of exact values. Defaults to false: /key/list matched these exactly before substring search was added, and an exact user_id filter must never return another user''s keys.' default: false title: Substring Matching description: 'If true, match key_alias (any caller) and user_id (proxy admins only) as case-insensitive substrings instead of exact values. Defaults to false: /key/list matched these exactly before substring search was added, and an exact user_id filter must never return another user''s keys.' - name: expires in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter keys by expiration. 'expired' returns keys whose expires is in the past; 'active' returns keys that never expire or expire in the future. Omit to return keys regardless of expiration. title: Expires description: Filter keys by expiration. 'expired' returns keys whose expires is in the past; 'active' returns keys that never expire or expire in the future. Omit to return keys regardless of expiration. responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/KeyListResponseObject' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /key/aliases: get: tags: - Key Management summary: Key Aliases description: 'Lists key aliases with pagination and optional search. Non-admin users only see aliases for keys they own or keys belonging to their teams. Returns: { "aliases": List[str], "total_count": int, "current_page": int, "total_pages": int, "size": int, }' operationId: key_aliases_key_aliases_get security: - APIKeyHeader: [] parameters: - 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 maximum: 100 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 key aliases (case-insensitive partial match) title: Search description: Search key aliases (case-insensitive partial match) - name: team_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Filter aliases to keys belonging to this team title: Team Id description: Filter aliases to keys belonging to this team responses: '200': description: Successful Response content: application/json: schema: type: object additionalProperties: true title: Response Key Aliases Key Aliases Get '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /key/block: post: tags: - Key Management summary: Block Key description: 'Block an Virtual key from making any requests. Parameters: - key: str - The key to block. Can be either the unhashed key (sk-...) or the hashed key value Example: ```bash curl --location ''http://0.0.0.0:4000/key/block'' --header ''Authorization: Bearer sk-1234'' --header ''Content-Type: application/json'' --data ''{ "key": "sk-Fn8Ej39NxjAXrvpUGKghGw" }'' ``` Note: This is an admin-only endpoint. Only proxy admins, team admins, or org admins can block keys.' operationId: block_key_key_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/schemas/BlockKeyRequest' responses: '200': description: Successful Response content: application/json: schema: anyOf: - $ref: '#/components/schemas/LiteLLM_VerificationToken' - type: 'null' title: Response Block Key Key Block Post '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /key/unblock: post: tags: - Key Management summary: Unblock Key description: 'Unblock a Virtual key to allow it to make requests again. Parameters: - key: str - The key to unblock. Can be either the unhashed key (sk-...) or the hashed key value Example: ```bash curl --location ''http://0.0.0.0:4000/key/unblock'' --header ''Authorization: Bearer sk-1234'' --header ''Content-Type: application/json'' --data ''{ "key": "sk-Fn8Ej39NxjAXrvpUGKghGw" }'' ``` Note: This is an admin-only endpoint. Only proxy admins, team admins, or org admins can unblock keys.' operationId: unblock_key_key_unblock_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/schemas/BlockKeyRequest' responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /key/health: post: tags: - Key Management summary: Key Health description: 'Check the health of the key Checks: - If key based logging is configured correctly - sends a test log Usage Pass the key in the request header ```bash curl -X POST "http://localhost:4000/key/health" -H "Authorization: Bearer sk-1234" -H "Content-Type: application/json" ``` Response when logging callbacks are setup correctly: ```json { "key": "healthy", "logging_callbacks": { "callbacks": [ "gcs_bucket" ], "status": "healthy", "details": "No logger exceptions triggered, system is healthy. Manually check if logs were sent to [''gcs_bucket'']" } } ``` Response when logging callbacks are not setup correctly: ```json { "key": "unhealthy", "logging_callbacks": { "callbacks": [ "gcs_bucket" ], "status": "unhealthy", "details": "Logger exceptions triggered, system is unhealthy: Failed to load vertex credentials. Check to see if credentials containing partial/invalid information." } } ```' operationId: key_health_key_health_post responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/KeyHealthResponse' security: - APIKeyHeader: [] components: schemas: LiteLLM_ObjectPermissionBase: properties: mcp_servers: anyOf: - items: type: string type: array - type: 'null' title: Mcp Servers mcp_access_groups: anyOf: - items: type: string type: array - type: 'null' title: Mcp Access Groups mcp_tool_permissions: anyOf: - additionalProperties: items: type: string type: array type: object - type: 'null' title: Mcp Tool Permissions mcp_toolsets: anyOf: - items: type: string type: array - type: 'null' title: Mcp Toolsets blocked_tools: anyOf: - items: type: string type: array - type: 'null' title: Blocked Tools vector_stores: anyOf: - items: type: string type: array - type: 'null' title: Vector Stores agents: anyOf: - items: type: string type: array - type: 'null' title: Agents agent_access_groups: anyOf: - items: type: string type: array - type: 'null' title: Agent Access Groups models: anyOf: - items: type: string type: array - type: 'null' title: Models search_tools: anyOf: - items: type: string type: array - type: 'null' title: Search Tools mcp_tool_search_enabled: anyOf: - type: boolean - type: 'null' title: Mcp Tool Search Enabled skills: anyOf: - items: type: string type: array - type: 'null' title: Skills type: object title: LiteLLM_ObjectPermissionBase SuccessfulKeyUpdate: properties: key: type: string title: Key key_info: additionalProperties: true type: object title: Key Info type: object required: - key - key_info title: SuccessfulKeyUpdate description: Successfully updated key with its updated information LitellmUserRoles: type: string enum: - proxy_admin - proxy_admin_viewer - org_admin - internal_user - internal_user_viewer - team - customer title: LitellmUserRoles description: 'Admin Roles: PROXY_ADMIN: admin over the platform PROXY_ADMIN_VIEW_ONLY: can login, view all own keys, view all spend ORG_ADMIN: admin over a specific organization, can create teams, users only within their organization Internal User Roles: INTERNAL_USER: can login, view/create/delete their own keys, view their spend INTERNAL_USER_VIEW_ONLY: can login, view their own keys, view their own spend Team Roles: TEAM: used for JWT auth Customer Roles: CUSTOMER: External users -> these are customers' UpdateRouterConfig: properties: routing_strategy_args: anyOf: - additionalProperties: true type: object - type: 'null' title: Routing Strategy Args routing_strategy: anyOf: - type: string - type: 'null' title: Routing Strategy routing_groups: anyOf: - items: $ref: '#/components/schemas/RoutingGroup' type: array - type: 'null' title: Routing Groups retry_policy: anyOf: - $ref: '#/components/schemas/RetryPolicy' - type: 'null' model_group_retry_policy: anyOf: - additionalProperties: $ref: '#/components/schemas/RetryPolicy' type: object - type: 'null' title: Model Group Retry Policy model_group_affinity_config: anyOf: - additionalProperties: items: type: string type: array type: object - type: 'null' title: Model Group Affinity Config allowed_fails: anyOf: - type: integer - type: 'null' title: Allowed Fails cooldown_time: anyOf: - type: number - type: 'null' title: Cooldown Time num_retries: anyOf: - type: integer - type: 'null' title: Num Retries timeout: anyOf: - type: number - type: 'null' title: Timeout max_retries: anyOf: - type: integer - type: 'null' title: Max Retries retry_after: anyOf: - type: number - type: 'null' title: Retry After fallbacks: anyOf: - items: additionalProperties: true type: object type: array - type: 'null' title: Fallbacks context_window_fallbacks: anyOf: - items: additionalProperties: true type: object type: array - type: 'null' title: Context Window Fallbacks model_group_alias: anyOf: - additionalProperties: anyOf: - type: string - additionalProperties: true type: object type: object - type: 'null' title: Model Group Alias default: {} enable_tag_filtering: anyOf: - type: boolean - type: 'null' title: Enable Tag Filtering tag_routing_prefix: anyOf: - type: string - type: 'null' title: Tag Routing Prefix optional_pre_call_checks: anyOf: - items: type: string enum: - prompt_caching - router_budget_limiting - responses_api_deployment_check - deployment_affinity - session_affinity - forward_client_headers_by_model_group - enforce_model_rate_limits - encrypted_content_affinity type: array - type: 'null' title: Optional Pre Call Checks type: object title: UpdateRouterConfig description: Set of params that you can modify via `router.update_settings()`. 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 KeyUpdateFields: properties: max_budget: anyOf: - type: number - type: 'null' title: Max Budget budget_id: anyOf: - type: string - type: 'null' title: Budget Id budget_duration: anyOf: - type: string - type: 'null' title: Budget Duration budget_limits: anyOf: - items: {} type: array - type: 'null' title: Budget Limits model_max_budget: anyOf: - additionalProperties: true type: object - type: 'null' title: Model Max Budget tpm_limit: anyOf: - type: integer - type: 'null' title: Tpm Limit rpm_limit: anyOf: - type: integer - type: 'null' title: Rpm Limit model_tpm_limit: anyOf: - additionalProperties: true type: object - type: 'null' title: Model Tpm Limit model_rpm_limit: anyOf: - additionalProperties: true type: object - type: 'null' title: Model Rpm Limit max_parallel_requests: anyOf: - type: integer - type: 'null' title: Max Parallel Requests rpm_limit_type: anyOf: - type: string enum: - guaranteed_throughput - best_effort_throughput - dynamic - type: 'null' title: Rpm Limit Type tpm_limit_type: anyOf: - type: string enum: - guaranteed_throughput - best_effort_throughput - dynamic - type: 'null' title: Tpm Limit Type temp_budget_increase: anyOf: - type: number - type: 'null' title: Temp Budget Increase temp_budget_expiry: anyOf: - type: string format: date-time - type: 'null' title: Temp Budget Expiry duration: anyOf: - type: string - type: 'null' title: Duration tags: anyOf: - items: type: string type: array - type: 'null' title: Tags metadata: anyOf: - additionalProperties: true type: object - type: 'null' title: Metadata additionalProperties: false type: object title: KeyUpdateFields description: Allowlist of bulk-broadcastable fields for /team/key/bulk_update; `extra="forbid"` blocks RBAC/ownership/scope mutations even by team admins. BulkUpdateKeyRequest: properties: keys: items: $ref: '#/components/schemas/BulkUpdateKeyRequestItem' type: array title: Keys type: object required: - keys title: BulkUpdateKeyRequest description: Request for bulk key updates BudgetLimitEntry: properties: budget_duration: type: string title: Budget Duration max_budget: type: number title: Max Budget reset_at: anyOf: - type: string format: date-time - type: 'null' title: Reset At type: object required: - budget_duration - max_budget title: BudgetLimitEntry description: A single budget window with its own limit and independent reset schedule. KeyListResponseObject: properties: keys: items: anyOf: - type: string - $ref: '#/components/schemas/UserAPIKeyAuth' - $ref: '#/components/schemas/LiteLLM_DeletedVerificationToken' type: array title: Keys total_count: anyOf: - type: integer - type: 'null' title: Total Count current_page: anyOf: - type: integer - type: 'null' title: Current Page total_pages: anyOf: - type: integer - type: 'null' title: Total Pages type: object title: KeyListResponseObject LiteLLM_DeletedVerificationToken: properties: token: anyOf: - type: string - type: 'null' title: Token key_name: anyOf: - type: string - type: 'null' title: Key Name key_alias: anyOf: - type: string - type: 'null' title: Key Alias spend: type: number title: Spend default: 0.0 max_budget: anyOf: - type: number - type: 'null' title: Max Budget expires: anyOf: - type: string - type: string format: date-time - type: 'null' title: Expires models: items: {} type: array title: Models default: [] aliases: additionalProperties: true type: object title: Aliases default: {} config: additionalProperties: true type: object title: Config default: {} user_id: anyOf: - type: string - type: 'null' title: User Id team_id: anyOf: - type: string - type: 'null' title: Team Id agent_id: anyOf: - type: string - type: 'null' title: Agent Id project_id: anyOf: - type: string - type: 'null' title: Project Id max_parallel_requests: anyOf: - type: integer - type: 'null' title: Max Parallel Requests metadata: additionalProperties: true type: object title: Metadata default: {} tpm_limit: anyOf: - type: integer - type: 'null' title: Tpm Limit rpm_limit: anyOf: - type: integer - type: 'null' title: Rpm Limit budget_duration: anyOf: - type: string - type: 'null' title: Budget Duration budget_reset_at: anyOf: - type: string format: date-time - type: 'null' title: Budget Reset At allowed_cache_controls: anyOf: - items: {} type: array - type: 'null' title: Allowed Cache Controls default: [] allowed_routes: anyOf: - items: {} type: array - type: 'null' title: Allowed Routes default: [] key_type: anyOf: - type: string - type: 'null' title: Key Type permissions: additionalProperties: true type: object title: Permissions default: {} model_spend: additionalProperties: true type: object title: Model Spend default: {} model_max_budget: additionalProperties: true type: object title: Model Max Budget default: {} budget_fallbacks: additionalProperties: items: type: string type: array type: object title: Budget Fallbacks default: {} soft_budget_cooldown: type: boolean title: Soft Budget Cooldown default: false blocked: anyOf: - type: boolean - type: 'null' title: Blocked litellm_budget_table: anyOf: - additionalProperties: true type: object - type: 'null' title: Litellm Budget Table budget_id: anyOf: - type: string - type: 'null' title: Budget Id org_id: anyOf: - type: string - type: 'null' title: Org Id created_at: anyOf: - type: string format: date-time - type: 'null' title: Created At created_by: anyOf: - type: string - type: 'null' title: Created By updated_at: anyOf: - type: string format: date-time - type: 'null' title: Updated At updated_by: anyOf: - type: string - type: 'null' title: Updated By settings_updated_at: anyOf: - type: string format: date-time - type: 'null' title: Settings Updated At last_active: anyOf: - type: string format: date-time - type: 'null' title: Last Active object_permission_id: anyOf: - type: string - type: 'null' title: Object Permission Id object_permission: anyOf: - $ref: '#/components/schemas/LiteLLM_ObjectPermissionTable' - type: 'null' access_group_ids: anyOf: - items: type: string type: array - type: 'null' title: Access Group Ids rotation_count: anyOf: - type: integer - type: 'null' title: Rotation Count default: 0 auto_rotate: anyOf: - type: boolean - type: 'null' title: Auto Rotate default: false rotation_interval: anyOf: - type: string - type: 'null' title: Rotation Interval last_rotation_at: anyOf: - type: string format: date-time - type: 'null' title: Last Rotation At key_rotation_at: anyOf: - type: string format: date-time - type: 'null' title: Key Rotation At router_settings: anyOf: - additionalProperties: true type: object - type: 'null' title: Router Settings budget_limits: anyOf: - items: additionalProperties: true type: object type: array - type: 'null' title: Budget Limits id: anyOf: - type: string - type: 'null' title: Id deleted_at: anyOf: - type: string format: date-time - type: 'null' title: Deleted At deleted_by: anyOf: - type: string - type: 'null' title: Deleted By deleted_by_api_key: anyOf: - type: string - type: 'null' title: Deleted By Api Key litellm_changed_by: anyOf: - type: string - type: 'null' title: Litellm Changed By type: object title: LiteLLM_DeletedVerificationToken description: Audit record for deleted keys; mirrors the token plus deletion metadata. HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError BulkUpdateKeyResponse: properties: total_requested: type: integer title: Total Requested successful_updates: items: $ref: '#/components/schemas/SuccessfulKeyUpdate' type: array title: Successful Updates failed_updates: items: $ref: '#/components/schemas/FailedKeyUpdate' type: array title: Failed Updates type: object required: - total_requested - successful_updates - failed_updates title: BulkUpdateKeyResponse description: Response for bulk key update operations LiteLLM_ObjectPermissionTable: properties: object_permission_id: type: string title: Object Permission Id mcp_servers: anyOf: - items: type: string type: array - type: 'null' title: Mcp Servers default: [] mcp_access_groups: anyOf: - items: type: string type: array - type: 'null' title: Mcp Access Groups default: [] mcp_tool_permissions: anyOf: - additionalProperties: items: type: string type: array type: object - type: 'null' title: Mcp Tool Permissions vector_stores: anyOf: - items: type: string type: array - type: 'null' title: Vector Stores default: [] agents: anyOf: - items: type: string type: array - type: 'null' title: Agents default: [] agent_access_groups: anyOf: - items: type: string type: array - type: 'null' title: Agent Access Groups default: [] models: anyOf: - items: type: string type: array - type: 'null' title: Models default: [] mcp_toolsets: anyOf: - items: type: string type: array - type: 'null' title: Mcp Toolsets blocked_tools: anyOf: - items: type: string type: array - type: 'null' title: Blocked Tools default: [] search_tools: anyOf: - items: type: string type: array - type: 'null' title: Search Tools default: [] mcp_tool_search_enabled: anyOf: - type: boolean - type: 'null' title: Mcp Tool Search Enabled skills: anyOf: - items: type: string type: array - type: 'null' title: Skills type: object required: - object_permission_id title: LiteLLM_ObjectPermissionTable description: Represents a LiteLLM_ObjectPermissionTable record ResetSpendRequest: properties: reset_to: type: number title: Reset To type: object required: - reset_to title: ResetSpendRequest KeyRequest: properties: keys: anyOf: - items: type: string type: array - type: 'null' title: Keys key_aliases: anyOf: - items: type: string type: array - type: 'null' title: Key Aliases type: object title: KeyRequest GenerateKeyResponse: properties: key_alias: anyOf: - type: string - type: 'null' title: Key Alias duration: anyOf: - type: string - type: 'null' title: Duration models: anyOf: - items: {} type: array - type: 'null' title: Models default: [] spend: anyOf: - type: number - type: 'null' title: Spend default: 0 max_budget: anyOf: - type: number - type: 'null' title: Max Budget user_id: anyOf: - type: string - type: 'null' title: User Id team_id: anyOf: - type: string - type: 'null' title: Team Id agent_id: anyOf: - type: string - type: 'null' title: Agent Id max_parallel_requests: anyOf: - type: integer - type: 'null' title: Max Parallel Requests metadata: anyOf: - additionalProperties: true type: object - type: 'null' title: Metadata default: {} tpm_limit: anyOf: - type: integer - type: 'null' title: Tpm Limit rpm_limit: anyOf: - type: integer - type: 'null' title: Rpm Limit budget_duration: anyOf: - type: string - type: 'null' title: Budget Duration budget_limits: anyOf: - items: $ref: '#/components/schemas/BudgetLimitEntry' type: array - type: 'null' title: Budget Limits allowed_cache_controls: anyOf: - items: {} type: array - type: 'null' title: Allowed Cache Controls default: [] config: anyOf: - additionalProperties: true type: object - type: 'null' title: Config default: {} permissions: anyOf: - additionalProperties: true type: object - type: 'null' title: Permissions default: {} model_max_budget: anyOf: - additionalProperties: true type: object - type: 'null' title: Model Max Budget default: {} budget_fallbacks: anyOf: - additionalProperties: items: type: string type: array type: object - type: 'null' title: Budget Fallbacks model_rpm_limit: anyOf: - additionalProperties: true type: object - type: 'null' title: Model Rpm Limit model_tpm_limit: anyOf: - additionalProperties: true type: object - type: 'null' title: Model Tpm Limit mcp_rpm_limit: anyOf: - additionalProperties: type: integer type: object - type: 'null' title: Mcp Rpm Limit tag_rpm_limit: anyOf: - additionalProperties: type: integer type: object - type: 'null' title: Tag Rpm Limit guardrails: anyOf: - items: type: string type: array - type: 'null' title: Guardrails policies: anyOf: - items: type: string type: array - type: 'null' title: Policies prompts: anyOf: - items: type: string type: array - type: 'null' title: Prompts blocked: anyOf: - type: boolean - type: 'null' title: Blocked aliases: anyOf: - additionalProperties: true type: object - type: 'null' title: Aliases default: {} object_permission: anyOf: - $ref: '#/components/schemas/LiteLLM_ObjectPermissionBase' - type: 'null' key: type: string title: Key default_estimated_output_tokens: anyOf: - type: integer exclusiveMinimum: 0.0 - type: 'null' title: Default Estimated Output Tokens default_estimated_output_tokens_per_model: anyOf: - additionalProperties: type: integer exclusiveMinimum: 0.0 type: object - type: 'null' title: Default Estimated Output Tokens Per Model budget_id: anyOf: - type: string - type: 'null' title: Budget Id tags: anyOf: - items: type: string type: array - type: 'null' title: Tags disable_global_guardrails: anyOf: - type: boolean - type: 'null' title: Disable Global Guardrails enable_prompt_caching: anyOf: - type: boolean - type: 'null' title: Enable Prompt Caching throttle_on_budget_exceeded: anyOf: - type: boolean - type: 'null' title: Throttle On Budget Exceeded enforced_params: anyOf: - items: type: string type: array - type: 'null' title: Enforced Params allowed_routes: anyOf: - items: {} type: array - type: 'null' title: Allowed Routes default: [] allowed_passthrough_routes: anyOf: - items: {} type: array - type: 'null' title: Allowed Passthrough Routes allowed_vector_store_indexes: anyOf: - items: $ref: '#/components/schemas/AllowedVectorStoreIndexItem' type: array - type: 'null' title: Allowed Vector Store Indexes rpm_limit_type: anyOf: - type: string enum: - guaranteed_throughput - best_effort_throughput - dynamic - type: 'null' title: Rpm Limit Type tpm_limit_type: anyOf: - type: string enum: - guaranteed_throughput - best_effort_throughput - dynamic - type: 'null' title: Tpm Limit Type router_settings: anyOf: - $ref: '#/components/schemas/UpdateRouterConfig' - type: 'null' access_group_ids: anyOf: - items: type: string type: array - type: 'null' title: Access Group Ids key_name: anyOf: - type: string - type: 'null' title: Key Name key_type: anyOf: - type: string - type: 'null' title: Key Type expires: anyOf: - type: string format: date-time - type: 'null' title: Expires token_id: anyOf: - type: string - type: 'null' title: Token Id organization_id: anyOf: - type: string - type: 'null' title: Organization Id project_id: anyOf: - type: string - type: 'null' title: Project Id litellm_budget_table: anyOf: - {} - type: 'null' title: Litellm Budget Table token: anyOf: - type: string - type: 'null' title: Token created_by: anyOf: - type: string - type: 'null' title: Created By updated_by: anyOf: - type: string - type: 'null' title: Updated By created_at: anyOf: - type: string format: date-time - type: 'null' title: Created At updated_at: anyOf: - type: string format: date-time - type: 'null' title: Updated At type: object required: - key title: GenerateKeyResponse GenerateKeyRequest: properties: key_alias: anyOf: - type: string - type: 'null' title: Key Alias duration: anyOf: - type: string - type: 'null' title: Duration models: anyOf: - items: {} type: array - type: 'null' title: Models default: [] spend: anyOf: - type: number - type: 'null' title: Spend default: 0 max_budget: anyOf: - type: number - type: 'null' title: Max Budget user_id: anyOf: - type: string - type: 'null' title: User Id team_id: anyOf: - type: string - type: 'null' title: Team Id agent_id: anyOf: - type: string - type: 'null' title: Agent Id max_parallel_requests: anyOf: - type: integer - type: 'null' title: Max Parallel Requests metadata: anyOf: - additionalProperties: true type: object - type: 'null' title: Metadata default: {} tpm_limit: anyOf: - type: integer - type: 'null' title: Tpm Limit rpm_limit: anyOf: - type: integer - type: 'null' title: Rpm Limit budget_duration: anyOf: - type: string - type: 'null' title: Budget Duration budget_limits: anyOf: - items: $ref: '#/components/schemas/BudgetLimitEntry' type: array - type: 'null' title: Budget Limits allowed_cache_controls: anyOf: - items: {} type: array - type: 'null' title: Allowed Cache Controls default: [] config: anyOf: - additionalProperties: true type: object - type: 'null' title: Config default: {} permissions: anyOf: - additionalProperties: true type: object - type: 'null' title: Permissions default: {} model_max_budget: anyOf: - additionalProperties: true type: object - type: 'null' title: Model Max Budget default: {} budget_fallbacks: anyOf: - additionalProperties: items: type: string type: array type: object - type: 'null' title: Budget Fallbacks model_rpm_limit: anyOf: - additionalProperties: true type: object - type: 'null' title: Model Rpm Limit model_tpm_limit: anyOf: - additionalProperties: true type: object - type: 'null' title: Model Tpm Limit mcp_rpm_limit: anyOf: - additionalProperties: type: integer type: object - type: 'null' title: Mcp Rpm Limit tag_rpm_limit: anyOf: - additionalProperties: type: integer type: object - type: 'null' title: Tag Rpm Limit guardrails: anyOf: - items: type: string type: array - type: 'null' title: Guardrails policies: anyOf: - items: type: string type: array - type: 'null' title: Policies prompts: anyOf: - items: type: string type: array - type: 'null' title: Prompts blocked: anyOf: - type: boolean - type: 'null' title: Blocked aliases: anyOf: - additionalProperties: true type: object - type: 'null' title: Aliases default: {} object_permission: anyOf: - $ref: '#/components/schemas/LiteLLM_ObjectPermissionBase' - type: 'null' key: anyOf: - type: string - type: 'null' title: Key default_estimated_output_tokens: anyOf: - type: integer exclusiveMinimum: 0.0 - type: 'null' title: Default Estimated Output Tokens default_estimated_output_tokens_per_model: anyOf: - additionalProperties: type: integer exclusiveMinimum: 0.0 type: object - type: 'null' title: Default Estimated Output Tokens Per Model budget_id: anyOf: - type: string - type: 'null' title: Budget Id tags: anyOf: - items: type: string type: array - type: 'null' title: Tags disable_global_guardrails: anyOf: - type: boolean - type: 'null' title: Disable Global Guardrails enable_prompt_caching: anyOf: - type: boolean - type: 'null' title: Enable Prompt Caching throttle_on_budget_exceeded: anyOf: - type: boolean - type: 'null' title: Throttle On Budget Exceeded enforced_params: anyOf: - items: type: string type: array - type: 'null' title: Enforced Params allowed_routes: anyOf: - items: {} type: array - type: 'null' title: Allowed Routes default: [] allowed_passthrough_routes: anyOf: - items: {} type: array - type: 'null' title: Allowed Passthrough Routes allowed_vector_store_indexes: anyOf: - items: $ref: '#/components/schemas/AllowedVectorStoreIndexItem' type: array - type: 'null' title: Allowed Vector Store Indexes rpm_limit_type: anyOf: - type: string enum: - guaranteed_throughput - best_effort_throughput - dynamic - type: 'null' title: Rpm Limit Type tpm_limit_type: anyOf: - type: string enum: - guaranteed_throughput - best_effort_throughput - dynamic - type: 'null' title: Tpm Limit Type router_settings: anyOf: - $ref: '#/components/schemas/UpdateRouterConfig' - type: 'null' access_group_ids: anyOf: - items: type: string type: array - type: 'null' title: Access Group Ids soft_budget: anyOf: - type: number - type: 'null' title: Soft Budget send_invite_email: anyOf: - type: boolean - type: 'null' title: Send Invite Email key_type: anyOf: - $ref: '#/components/schemas/LiteLLMKeyType' - type: 'null' description: Type of key that determines default allowed routes. default: default auto_rotate: anyOf: - type: boolean - type: 'null' title: Auto Rotate description: Whether this key should be automatically rotated default: false rotation_interval: anyOf: - type: string - type: 'null' title: Rotation Interval description: How often to rotate this key (e.g., '30d', '90d'). Required if auto_rotate=True organization_id: anyOf: - type: string - type: 'null' title: Organization Id project_id: anyOf: - type: string - type: 'null' title: Project Id type: object title: GenerateKeyRequest BulkUpdateTeamKeysRequest: properties: team_id: type: string title: Team Id key_ids: anyOf: - items: type: string type: array - type: 'null' title: Key Ids all_keys_in_team: type: boolean title: All Keys In Team default: false update_fields: $ref: '#/components/schemas/KeyUpdateFields' type: object required: - team_id - update_fields title: BulkUpdateTeamKeysRequest description: Apply one update payload to many keys inside a team; provide either `key_ids` or `all_keys_in_team=True`. LiteLLMKeyType: type: string enum: - llm_api - management - read_only - default title: LiteLLMKeyType description: Enum for key types that determine what routes a key can access BlockKeyRequest: properties: key: type: string title: Key type: object required: - key title: BlockKeyRequest Member: properties: user_id: anyOf: - type: string - type: 'null' title: User Id description: The unique ID of the user to add. Either user_id or user_email must be provided user_email: anyOf: - type: string - type: 'null' title: User Email description: The email address of the user to add. Either user_id or user_email must be provided role: type: string enum: - admin - user title: Role description: The role of the user within the team. 'admin' users can manage team settings and members, 'user' is a regular team member type: object required: - role title: Member UpdateKeyRequest: properties: key_alias: anyOf: - type: string - type: 'null' title: Key Alias duration: anyOf: - type: string - type: 'null' title: Duration models: anyOf: - items: {} type: array - type: 'null' title: Models default: [] spend: anyOf: - type: number - type: 'null' title: Spend max_budget: anyOf: - type: number - type: 'null' title: Max Budget user_id: anyOf: - type: string - type: 'null' title: User Id team_id: anyOf: - type: string - type: 'null' title: Team Id agent_id: anyOf: - type: string - type: 'null' title: Agent Id max_parallel_requests: anyOf: - type: integer - type: 'null' title: Max Parallel Requests metadata: anyOf: - additionalProperties: true type: object - type: 'null' title: Metadata tpm_limit: anyOf: - type: integer - type: 'null' title: Tpm Limit rpm_limit: anyOf: - type: integer - type: 'null' title: Rpm Limit budget_duration: anyOf: - type: string - type: 'null' title: Budget Duration budget_limits: anyOf: - items: $ref: '#/components/schemas/BudgetLimitEntry' type: array - type: 'null' title: Budget Limits allowed_cache_controls: anyOf: - items: {} type: array - type: 'null' title: Allowed Cache Controls default: [] config: anyOf: - additionalProperties: true type: object - type: 'null' title: Config default: {} permissions: anyOf: - additionalProperties: true type: object - type: 'null' title: Permissions default: {} model_max_budget: anyOf: - additionalProperties: true type: object - type: 'null' title: Model Max Budget default: {} budget_fallbacks: anyOf: - additionalProperties: items: type: string type: array type: object - type: 'null' title: Budget Fallbacks model_rpm_limit: anyOf: - additionalProperties: true type: object - type: 'null' title: Model Rpm Limit model_tpm_limit: anyOf: - additionalProperties: true type: object - type: 'null' title: Model Tpm Limit mcp_rpm_limit: anyOf: - additionalProperties: type: integer type: object - type: 'null' title: Mcp Rpm Limit tag_rpm_limit: anyOf: - additionalProperties: type: integer type: object - type: 'null' title: Tag Rpm Limit guardrails: anyOf: - items: type: string type: array - type: 'null' title: Guardrails policies: anyOf: - items: type: string type: array - type: 'null' title: Policies prompts: anyOf: - items: type: string type: array - type: 'null' title: Prompts blocked: anyOf: - type: boolean - type: 'null' title: Blocked aliases: anyOf: - additionalProperties: true type: object - type: 'null' title: Aliases default: {} object_permission: anyOf: - $ref: '#/components/schemas/LiteLLM_ObjectPermissionBase' - type: 'null' key: anyOf: - type: string - type: 'null' title: Key default_estimated_output_tokens: anyOf: - type: integer exclusiveMinimum: 0.0 - type: 'null' title: Default Estimated Output Tokens default_estimated_output_tokens_per_model: anyOf: - additionalProperties: type: integer exclusiveMinimum: 0.0 type: object - type: 'null' title: Default Estimated Output Tokens Per Model budget_id: anyOf: - type: string - type: 'null' title: Budget Id tags: anyOf: - items: type: string type: array - type: 'null' title: Tags disable_global_guardrails: anyOf: - type: boolean - type: 'null' title: Disable Global Guardrails enable_prompt_caching: anyOf: - type: boolean - type: 'null' title: Enable Prompt Caching throttle_on_budget_exceeded: anyOf: - type: boolean - type: 'null' title: Throttle On Budget Exceeded enforced_params: anyOf: - items: type: string type: array - type: 'null' title: Enforced Params allowed_routes: anyOf: - items: {} type: array - type: 'null' title: Allowed Routes default: [] allowed_passthrough_routes: anyOf: - items: {} type: array - type: 'null' title: Allowed Passthrough Routes allowed_vector_store_indexes: anyOf: - items: $ref: '#/components/schemas/AllowedVectorStoreIndexItem' type: array - type: 'null' title: Allowed Vector Store Indexes rpm_limit_type: anyOf: - type: string enum: - guaranteed_throughput - best_effort_throughput - dynamic - type: 'null' title: Rpm Limit Type tpm_limit_type: anyOf: - type: string enum: - guaranteed_throughput - best_effort_throughput - dynamic - type: 'null' title: Tpm Limit Type router_settings: anyOf: - $ref: '#/components/schemas/UpdateRouterConfig' - type: 'null' access_group_ids: anyOf: - items: type: string type: array - type: 'null' title: Access Group Ids soft_budget: anyOf: - type: number - type: 'null' title: Soft Budget temp_budget_increase: anyOf: - type: number - type: 'null' title: Temp Budget Increase temp_budget_expiry: anyOf: - type: string format: date-time - type: 'null' title: Temp Budget Expiry auto_rotate: anyOf: - type: boolean - type: 'null' title: Auto Rotate rotation_interval: anyOf: - type: string - type: 'null' title: Rotation Interval organization_id: anyOf: - type: string - type: 'null' title: Organization Id project_id: anyOf: - type: string - type: 'null' title: Project Id description: Omit to retain the project, or send null to detach. Assigning a different project is not supported. type: object title: UpdateKeyRequest LiteLLM_VerificationToken: properties: token: anyOf: - type: string - type: 'null' title: Token key_name: anyOf: - type: string - type: 'null' title: Key Name key_alias: anyOf: - type: string - type: 'null' title: Key Alias spend: type: number title: Spend default: 0.0 max_budget: anyOf: - type: number - type: 'null' title: Max Budget expires: anyOf: - type: string - type: string format: date-time - type: 'null' title: Expires models: items: {} type: array title: Models default: [] aliases: additionalProperties: true type: object title: Aliases default: {} config: additionalProperties: true type: object title: Config default: {} user_id: anyOf: - type: string - type: 'null' title: User Id team_id: anyOf: - type: string - type: 'null' title: Team Id agent_id: anyOf: - type: string - type: 'null' title: Agent Id project_id: anyOf: - type: string - type: 'null' title: Project Id max_parallel_requests: anyOf: - type: integer - type: 'null' title: Max Parallel Requests metadata: additionalProperties: true type: object title: Metadata default: {} tpm_limit: anyOf: - type: integer - type: 'null' title: Tpm Limit rpm_limit: anyOf: - type: integer - type: 'null' title: Rpm Limit budget_duration: anyOf: - type: string - type: 'null' title: Budget Duration budget_reset_at: anyOf: - type: string format: date-time - type: 'null' title: Budget Reset At allowed_cache_controls: anyOf: - items: {} type: array - type: 'null' title: Allowed Cache Controls default: [] allowed_routes: anyOf: - items: {} type: array - type: 'null' title: Allowed Routes default: [] key_type: anyOf: - type: string - type: 'null' title: Key Type permissions: additionalProperties: true type: object title: Permissions default: {} model_spend: additionalProperties: true type: object title: Model Spend default: {} model_max_budget: additionalProperties: true type: object title: Model Max Budget default: {} budget_fallbacks: additionalProperties: items: type: string type: array type: object title: Budget Fallbacks default: {} soft_budget_cooldown: type: boolean title: Soft Budget Cooldown default: false blocked: anyOf: - type: boolean - type: 'null' title: Blocked litellm_budget_table: anyOf: - additionalProperties: true type: object - type: 'null' title: Litellm Budget Table budget_id: anyOf: - type: string - type: 'null' title: Budget Id org_id: anyOf: - type: string - type: 'null' title: Org Id created_at: anyOf: - type: string format: date-time - type: 'null' title: Created At created_by: anyOf: - type: string - type: 'null' title: Created By updated_at: anyOf: - type: string format: date-time - type: 'null' title: Updated At updated_by: anyOf: - type: string - type: 'null' title: Updated By settings_updated_at: anyOf: - type: string format: date-time - type: 'null' title: Settings Updated At last_active: anyOf: - type: string format: date-time - type: 'null' title: Last Active object_permission_id: anyOf: - type: string - type: 'null' title: Object Permission Id object_permission: anyOf: - $ref: '#/components/schemas/LiteLLM_ObjectPermissionTable' - type: 'null' access_group_ids: anyOf: - items: type: string type: array - type: 'null' title: Access Group Ids rotation_count: anyOf: - type: integer - type: 'null' title: Rotation Count default: 0 auto_rotate: anyOf: - type: boolean - type: 'null' title: Auto Rotate default: false rotation_interval: anyOf: - type: string - type: 'null' title: Rotation Interval last_rotation_at: anyOf: - type: string format: date-time - type: 'null' title: Last Rotation At key_rotation_at: anyOf: - type: string format: date-time - type: 'null' title: Key Rotation At router_settings: anyOf: - additionalProperties: true type: object - type: 'null' title: Router Settings budget_limits: anyOf: - items: additionalProperties: true type: object type: array - type: 'null' title: Budget Limits type: object title: LiteLLM_VerificationToken FailedKeyUpdate: properties: key: type: string title: Key key_info: anyOf: - additionalProperties: true type: object - type: 'null' title: Key Info failed_reason: type: string title: Failed Reason type: object required: - key - failed_reason title: FailedKeyUpdate description: Failed key update with reason LoggingCallbackStatus: properties: callbacks: items: type: string type: array title: Callbacks status: type: string enum: - healthy - unhealthy title: Status details: anyOf: - type: string - type: 'null' title: Details type: object title: LoggingCallbackStatus RegenerateKeyRequest: properties: key_alias: anyOf: - type: string - type: 'null' title: Key Alias duration: anyOf: - type: string - type: 'null' title: Duration models: anyOf: - items: {} type: array - type: 'null' title: Models default: [] spend: anyOf: - type: number - type: 'null' title: Spend max_budget: anyOf: - type: number - type: 'null' title: Max Budget user_id: anyOf: - type: string - type: 'null' title: User Id team_id: anyOf: - type: string - type: 'null' title: Team Id agent_id: anyOf: - type: string - type: 'null' title: Agent Id max_parallel_requests: anyOf: - type: integer - type: 'null' title: Max Parallel Requests metadata: anyOf: - additionalProperties: true type: object - type: 'null' title: Metadata tpm_limit: anyOf: - type: integer - type: 'null' title: Tpm Limit rpm_limit: anyOf: - type: integer - type: 'null' title: Rpm Limit budget_duration: anyOf: - type: string - type: 'null' title: Budget Duration budget_limits: anyOf: - items: $ref: '#/components/schemas/BudgetLimitEntry' type: array - type: 'null' title: Budget Limits allowed_cache_controls: anyOf: - items: {} type: array - type: 'null' title: Allowed Cache Controls default: [] config: anyOf: - additionalProperties: true type: object - type: 'null' title: Config default: {} permissions: anyOf: - additionalProperties: true type: object - type: 'null' title: Permissions default: {} model_max_budget: anyOf: - additionalProperties: true type: object - type: 'null' title: Model Max Budget default: {} budget_fallbacks: anyOf: - additionalProperties: items: type: string type: array type: object - type: 'null' title: Budget Fallbacks model_rpm_limit: anyOf: - additionalProperties: true type: object - type: 'null' title: Model Rpm Limit model_tpm_limit: anyOf: - additionalProperties: true type: object - type: 'null' title: Model Tpm Limit mcp_rpm_limit: anyOf: - additionalProperties: type: integer type: object - type: 'null' title: Mcp Rpm Limit tag_rpm_limit: anyOf: - additionalProperties: type: integer type: object - type: 'null' title: Tag Rpm Limit guardrails: anyOf: - items: type: string type: array - type: 'null' title: Guardrails policies: anyOf: - items: type: string type: array - type: 'null' title: Policies prompts: anyOf: - items: type: string type: array - type: 'null' title: Prompts blocked: anyOf: - type: boolean - type: 'null' title: Blocked aliases: anyOf: - additionalProperties: true type: object - type: 'null' title: Aliases default: {} object_permission: anyOf: - $ref: '#/components/schemas/LiteLLM_ObjectPermissionBase' - type: 'null' key: anyOf: - type: string - type: 'null' title: Key default_estimated_output_tokens: anyOf: - type: integer exclusiveMinimum: 0.0 - type: 'null' title: Default Estimated Output Tokens default_estimated_output_tokens_per_model: anyOf: - additionalProperties: type: integer exclusiveMinimum: 0.0 type: object - type: 'null' title: Default Estimated Output Tokens Per Model budget_id: anyOf: - type: string - type: 'null' title: Budget Id tags: anyOf: - items: type: string type: array - type: 'null' title: Tags disable_global_guardrails: anyOf: - type: boolean - type: 'null' title: Disable Global Guardrails enable_prompt_caching: anyOf: - type: boolean - type: 'null' title: Enable Prompt Caching throttle_on_budget_exceeded: anyOf: - type: boolean - type: 'null' title: Throttle On Budget Exceeded enforced_params: anyOf: - items: type: string type: array - type: 'null' title: Enforced Params allowed_routes: anyOf: - items: {} type: array - type: 'null' title: Allowed Routes default: [] allowed_passthrough_routes: anyOf: - items: {} type: array - type: 'null' title: Allowed Passthrough Routes allowed_vector_store_indexes: anyOf: - items: $ref: '#/components/schemas/AllowedVectorStoreIndexItem' type: array - type: 'null' title: Allowed Vector Store Indexes rpm_limit_type: anyOf: - type: string enum: - guaranteed_throughput - best_effort_throughput - dynamic - type: 'null' title: Rpm Limit Type tpm_limit_type: anyOf: - type: string enum: - guaranteed_throughput - best_effort_throughput - dynamic - type: 'null' title: Tpm Limit Type router_settings: anyOf: - $ref: '#/components/schemas/UpdateRouterConfig' - type: 'null' access_group_ids: anyOf: - items: type: string type: array - type: 'null' title: Access Group Ids soft_budget: anyOf: - type: number - type: 'null' title: Soft Budget send_invite_email: anyOf: - type: boolean - type: 'null' title: Send Invite Email key_type: anyOf: - $ref: '#/components/schemas/LiteLLMKeyType' - type: 'null' description: Type of key that determines default allowed routes. default: default auto_rotate: anyOf: - type: boolean - type: 'null' title: Auto Rotate description: Whether this key should be automatically rotated default: false rotation_interval: anyOf: - type: string - type: 'null' title: Rotation Interval description: How often to rotate this key (e.g., '30d', '90d'). Required if auto_rotate=True organization_id: anyOf: - type: string - type: 'null' title: Organization Id project_id: anyOf: - type: string - type: 'null' title: Project Id new_key: anyOf: - type: string - type: 'null' title: New Key new_master_key: anyOf: - type: string - type: 'null' title: New Master Key grace_period: anyOf: - type: string - type: 'null' title: Grace Period type: object title: RegenerateKeyRequest BulkUpdateKeyRequestItem: properties: key: type: string title: Key budget_id: anyOf: - type: string - type: 'null' title: Budget Id max_budget: anyOf: - type: number - type: 'null' title: Max Budget team_id: anyOf: - type: string - type: 'null' title: Team Id tags: anyOf: - items: type: string type: array - type: 'null' title: Tags type: object required: - key title: BulkUpdateKeyRequestItem description: Individual key update request item AllowedVectorStoreIndexItem: properties: index_name: type: string title: Index Name index_permissions: items: type: string enum: - read - write type: array title: Index Permissions type: object required: - index_name - index_permissions title: AllowedVectorStoreIndexItem RetryPolicy: properties: BadRequestErrorRetries: anyOf: - type: integer - type: 'null' title: Badrequesterrorretries AuthenticationErrorRetries: anyOf: - type: integer - type: 'null' title: Authenticationerrorretries TimeoutErrorRetries: anyOf: - type: integer - type: 'null' title: Timeouterrorretries RateLimitErrorRetries: anyOf: - type: integer - type: 'null' title: Ratelimiterrorretries ContentPolicyViolationErrorRetries: anyOf: - type: integer - type: 'null' title: Contentpolicyviolationerrorretries InternalServerErrorRetries: anyOf: - type: integer - type: 'null' title: Internalservererrorretries ServiceUnavailableErrorRetries: anyOf: - type: integer - type: 'null' title: Serviceunavailableerrorretries DefaultRetries: anyOf: - type: integer - type: 'null' title: Defaultretries type: object title: RetryPolicy description: 'Use this to set a custom number of retries per exception type If RateLimitErrorRetries = 3, then 3 retries will be made for RateLimitError Mapping of Exception type to number of retries https://docs.litellm.ai/docs/exception_mapping' RoutingGroup: properties: group_name: type: string title: Group Name models: items: type: string type: array title: Models routing_strategy: type: string title: Routing Strategy routing_strategy_args: anyOf: - additionalProperties: true type: object - type: 'null' title: Routing Strategy Args type: object required: - group_name - models - routing_strategy title: RoutingGroup description: A group of models that share a routing strategy. KeyHealthResponse: properties: key: type: string enum: - healthy - unhealthy title: Key logging_callbacks: anyOf: - $ref: '#/components/schemas/LoggingCallbackStatus' - type: 'null' type: object title: KeyHealthResponse UserAPIKeyAuth: properties: token: anyOf: - type: string - type: 'null' title: Token key_name: anyOf: - type: string - type: 'null' title: Key Name key_alias: anyOf: - type: string - type: 'null' title: Key Alias spend: type: number title: Spend default: 0.0 max_budget: anyOf: - type: number - type: 'null' title: Max Budget expires: anyOf: - type: string - type: string format: date-time - type: 'null' title: Expires models: items: {} type: array title: Models default: [] aliases: additionalProperties: true type: object title: Aliases default: {} config: additionalProperties: true type: object title: Config default: {} user_id: anyOf: - type: string - type: 'null' title: User Id team_id: anyOf: - type: string - type: 'null' title: Team Id agent_id: anyOf: - type: string - type: 'null' title: Agent Id project_id: anyOf: - type: string - type: 'null' title: Project Id max_parallel_requests: anyOf: - type: integer - type: 'null' title: Max Parallel Requests metadata: additionalProperties: true type: object title: Metadata default: {} tpm_limit: anyOf: - type: integer - type: 'null' title: Tpm Limit rpm_limit: anyOf: - type: integer - type: 'null' title: Rpm Limit budget_duration: anyOf: - type: string - type: 'null' title: Budget Duration budget_reset_at: anyOf: - type: string format: date-time - type: 'null' title: Budget Reset At allowed_cache_controls: anyOf: - items: {} type: array - type: 'null' title: Allowed Cache Controls default: [] allowed_routes: anyOf: - items: {} type: array - type: 'null' title: Allowed Routes default: [] key_type: anyOf: - type: string - type: 'null' title: Key Type permissions: additionalProperties: true type: object title: Permissions default: {} model_spend: additionalProperties: true type: object title: Model Spend default: {} model_max_budget: additionalProperties: true type: object title: Model Max Budget default: {} budget_fallbacks: additionalProperties: items: type: string type: array type: object title: Budget Fallbacks default: {} soft_budget_cooldown: type: boolean title: Soft Budget Cooldown default: false blocked: anyOf: - type: boolean - type: 'null' title: Blocked litellm_budget_table: anyOf: - additionalProperties: true type: object - type: 'null' title: Litellm Budget Table budget_id: anyOf: - type: string - type: 'null' title: Budget Id org_id: anyOf: - type: string - type: 'null' title: Org Id created_at: anyOf: - type: string format: date-time - type: 'null' title: Created At created_by: anyOf: - type: string - type: 'null' title: Created By updated_at: anyOf: - type: string format: date-time - type: 'null' title: Updated At updated_by: anyOf: - type: string - type: 'null' title: Updated By settings_updated_at: anyOf: - type: string format: date-time - type: 'null' title: Settings Updated At last_active: anyOf: - type: string format: date-time - type: 'null' title: Last Active object_permission_id: anyOf: - type: string - type: 'null' title: Object Permission Id object_permission: anyOf: - $ref: '#/components/schemas/LiteLLM_ObjectPermissionTable' - type: 'null' access_group_ids: anyOf: - items: type: string type: array - type: 'null' title: Access Group Ids rotation_count: anyOf: - type: integer - type: 'null' title: Rotation Count default: 0 auto_rotate: anyOf: - type: boolean - type: 'null' title: Auto Rotate default: false rotation_interval: anyOf: - type: string - type: 'null' title: Rotation Interval last_rotation_at: anyOf: - type: string format: date-time - type: 'null' title: Last Rotation At key_rotation_at: anyOf: - type: string format: date-time - type: 'null' title: Key Rotation At router_settings: anyOf: - additionalProperties: true type: object - type: 'null' title: Router Settings budget_limits: anyOf: - items: additionalProperties: true type: object type: array - type: 'null' title: Budget Limits team_spend: anyOf: - type: number - type: 'null' title: Team Spend team_alias: anyOf: - type: string - type: 'null' title: Team Alias team_tpm_limit: anyOf: - type: integer - type: 'null' title: Team Tpm Limit team_rpm_limit: anyOf: - type: integer - type: 'null' title: Team Rpm Limit team_max_budget: anyOf: - type: number - type: 'null' title: Team Max Budget team_soft_budget: anyOf: - type: number - type: 'null' title: Team Soft Budget team_models: items: {} type: array title: Team Models default: [] team_blocked: type: boolean title: Team Blocked default: false soft_budget: anyOf: - type: number - type: 'null' title: Soft Budget team_model_aliases: anyOf: - additionalProperties: true type: object - type: 'null' title: Team Model Aliases team_member: anyOf: - $ref: '#/components/schemas/Member' - type: 'null' team_metadata: anyOf: - additionalProperties: true type: object - type: 'null' title: Team Metadata team_object_permission_id: anyOf: - type: string - type: 'null' title: Team Object Permission Id team_member_spend: anyOf: - type: number - type: 'null' title: Team Member Spend team_member_tpm_limit: anyOf: - type: integer - type: 'null' title: Team Member Tpm Limit team_member_rpm_limit: anyOf: - type: integer - type: 'null' title: Team Member Rpm Limit end_user_id: anyOf: - type: string - type: 'null' title: End User Id end_user_tpm_limit: anyOf: - type: integer - type: 'null' title: End User Tpm Limit end_user_rpm_limit: anyOf: - type: integer - type: 'null' title: End User Rpm Limit end_user_max_budget: anyOf: - type: number - type: 'null' title: End User Max Budget end_user_model_max_budget: anyOf: - additionalProperties: true type: object - type: 'null' title: End User Model Max Budget organization_alias: anyOf: - type: string - type: 'null' title: Organization Alias organization_max_budget: anyOf: - type: number - type: 'null' title: Organization Max Budget organization_tpm_limit: anyOf: - type: integer - type: 'null' title: Organization Tpm Limit organization_rpm_limit: anyOf: - type: integer - type: 'null' title: Organization Rpm Limit organization_metadata: anyOf: - additionalProperties: true type: object - type: 'null' title: Organization Metadata project_alias: anyOf: - type: string - type: 'null' title: Project Alias project_metadata: anyOf: - additionalProperties: true type: object - type: 'null' title: Project Metadata last_refreshed_at: anyOf: - type: number - type: 'null' title: Last Refreshed At api_key: anyOf: - type: string - type: 'null' title: Api Key user_role: anyOf: - $ref: '#/components/schemas/LitellmUserRoles' - type: 'null' allowed_model_region: anyOf: - type: string enum: - eu - us - type: 'null' title: Allowed Model Region parent_otel_span: anyOf: - {} - type: 'null' title: Parent Otel Span rpm_limit_per_model: anyOf: - additionalProperties: type: integer type: object - type: 'null' title: Rpm Limit Per Model tpm_limit_per_model: anyOf: - additionalProperties: type: integer type: object - type: 'null' title: Tpm Limit Per Model user_tpm_limit: anyOf: - type: integer - type: 'null' title: User Tpm Limit user_rpm_limit: anyOf: - type: integer - type: 'null' title: User Rpm Limit user_email: anyOf: - type: string - type: 'null' title: User Email user_spend: anyOf: - type: number - type: 'null' title: User Spend user_max_budget: anyOf: - type: number - type: 'null' title: User Max Budget user_model_max_budget: anyOf: - additionalProperties: true type: object - type: 'null' title: User Model Max Budget request_route: anyOf: - type: string - type: 'null' title: Request Route is_session_token: type: boolean title: Is Session Token default: false user: anyOf: - {} - type: 'null' title: User created_by_user: anyOf: - {} - type: 'null' title: Created By User end_user_object_permission: anyOf: - $ref: '#/components/schemas/LiteLLM_ObjectPermissionTable' - type: 'null' team_object_permission: anyOf: - $ref: '#/components/schemas/LiteLLM_ObjectPermissionTable' - type: 'null' jwt_claims: anyOf: - additionalProperties: true type: object - type: 'null' title: Jwt Claims type: object title: UserAPIKeyAuth description: Return the row in the db securitySchemes: APIKeyHeader: type: apiKey description: Bearer token in: header name: x-litellm-api-key