openapi: 3.2.0 info: title: LiteLLM team 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: team management paths: /team/new: post: tags: - team management summary: New Team description: "Allow users to create a new team. Apply user permissions to their team.\n\n\U0001F449 [Detailed Doc on setting team budgets](https://docs.litellm.ai/docs/proxy/team_budgets)\n\n\nParameters:\n- team_alias: Optional[str] - User defined team alias\n- team_id: Optional[str] - The team id of the user. If none passed, we'll generate it.\n- members_with_roles: List[{\"role\": \"admin\" or \"user\", \"user_id\": \"\"}] - A list of users and their roles in the team. Get user_id when making a new user via `/user/new`.\n- team_member_permissions: Optional[List[str]] - A list of routes that non-admin team members can access. example: [\"/key/generate\", \"/key/update\", \"/key/delete\"]\n- metadata: Optional[dict] - Metadata for team, store information for team. Example metadata = {\"extra_info\": \"some info\"}\n- model_rpm_limit: Optional[Dict[str, int]] - The RPM (Requests Per Minute) limit for this team - applied across all keys for this team.\n- model_tpm_limit: Optional[Dict[str, int]] - The TPM (Tokens Per Minute) limit for this team - applied across all keys for this team.\n- mcp_rpm_limit: Optional[Dict[str, int]] - Per-MCP-server RPM limit for this team, keyed by MCP server name (alias if set, else the configured name). Example: {\"github\": 100, \"slack\": 200}. Applied across all keys for this team.\n- tpm_limit: Optional[int] - The TPM (Tokens Per Minute) limit for this team - all keys with this team_id will have at max this TPM limit\n- rpm_limit: Optional[int] - The RPM (Requests Per Minute) limit for this team - all keys associated with this team_id will have at max this RPM limit\n- rpm_limit_type: Optional[Literal[\"guaranteed_throughput\", \"best_effort_throughput\"]] - The type of RPM limit enforcement. Use \"guaranteed_throughput\" to raise an error if overallocating RPM, or \"best_effort_throughput\" for best effort enforcement.\n- tpm_limit_type: Optional[Literal[\"guaranteed_throughput\", \"best_effort_throughput\"]] - The type of TPM limit enforcement. Use \"guaranteed_throughput\" to raise an error if overallocating TPM, or \"best_effort_throughput\" for best effort enforcement.\n- max_budget: Optional[float] - The maximum budget allocated to the team - all keys for this team_id will have at max this max_budget\n- soft_budget: Optional[float] - The soft budget threshold for the team. If max_budget is set, soft_budget must be strictly lower than max_budget. Can be set independently if max_budget is not set.\n- budget_duration: Optional[str] - The duration of the budget for the team. Doc [here](https://docs.litellm.ai/docs/proxy/team_budgets)\n- models: Optional[list] - A list of models associated with the team - all keys for this team_id will have at most, these models. If empty, assumes all models are allowed.\n- blocked: bool - Flag indicating if the team is blocked or not - will stop all calls from keys with this team_id.\n- members: Optional[List] - Control team members via `/team/member/add` and `/team/member/delete`.\n- tags: Optional[List[str]] - Tags for [tracking spend](https://litellm.vercel.app/docs/proxy/enterprise#tracking-spend-for-custom-tags) and/or doing [tag-based routing](https://litellm.vercel.app/docs/proxy/tag_routing).\n- prompts: Optional[List[str]] - List of prompts that the team is allowed to use.\n- organization_id: Optional[str] - The organization id of the team. Default is None. Create via `/organization/new`.\n- model_aliases: Optional[dict] - Model aliases for the team. [Docs](https://docs.litellm.ai/docs/proxy/team_based_routing#create-team-with-model-alias)\n- guardrails: Optional[List[str]] - Guardrails for the team. [Docs](https://docs.litellm.ai/docs/proxy/guardrails)\n- policies: Optional[List[str]] - Policies for the team. [Docs](https://docs.litellm.ai/docs/proxy/guardrails/guardrail_policies)\n- disable_global_guardrails: Optional[bool] - Whether to disable global guardrails for the key.\n- object_permission: Optional[LiteLLM_ObjectPermissionBase] - team-specific object permission. Example - {\"vector_stores\": [\"vector_store_1\", \"vector_store_2\"], \"agents\": [\"agent_1\", \"agent_2\"], \"agent_access_groups\": [\"dev_group\"]}. IF null or {} then no object permission.\n- team_member_budget: Optional[float] - The maximum budget allocated to an individual team member.\n- team_member_budget_duration: Optional[str] - The duration of the budget for the team member. Doc [here](https://docs.litellm.ai/docs/proxy/team_budgets)\n- team_member_rpm_limit: Optional[int] - The RPM (Requests Per Minute) limit for individual team members.\n- team_member_tpm_limit: Optional[int] - The TPM (Tokens Per Minute) limit for individual team members.\n- team_member_key_duration: Optional[str] - The duration for a team member's key. e.g. \"1d\", \"1w\", \"1mo\"\n- allowed_passthrough_routes: Optional[List[str]] - List of allowed pass through routes for the team.\n- allowed_vector_store_indexes: Optional[List[dict]] - List of allowed vector store indexes for the key. Example - [{\"index_name\": \"my-index\", \"index_permissions\": [\"write\", \"read\"]}]. If specified, the key will only be able to use these specific vector store indexes. Create index, using `/v1/indexes` endpoint.\n- secret_manager_settings: Optional[dict] - Secret manager settings for the team. [Docs](https://docs.litellm.ai/docs/secret_managers/overview)\n- router_settings: Optional[UpdateRouterConfig] - team-specific router settings. Example - {\"model_group_retry_policy\": {\"gpt-4\": {\"RateLimitErrorRetries\": 5}}}. IF null or {} then no router settings.\n- access_group_ids: Optional[List[str]] - List of access group IDs to associate with the team. Access groups define which models the team can access. Example - [\"access_group_1\", \"access_group_2\"].\n- enforced_file_expires_after: Optional[dict] - Enforced file expiration policy for the team. Keys created under this team will inherit this policy for file uploads. Example - {\"anchor\": \"created_at\", \"days\": 30}.\n- enforced_batch_output_expires_after: Optional[dict] - Enforced batch output file expiration policy for the team. Keys created under this team will inherit this policy for batch output files. Example - {\"anchor\": \"created_at\", \"days\": 30}.\n- budget_limits: Optional[list] - List of concurrent budget windows for the team. Each window specifies a budget_limit, time_period, and optional budget_duration. Example - [{\"budget_limit\": 10.0, \"time_period\": \"1d\"}, {\"budget_limit\": 50.0, \"time_period\": \"7d\"}].\n- default_team_member_models: Optional[List[str]] - Default models assigned to new team members when they join this team. Must be a subset of the team's models.\n\nReturns:\n- team_id: (str) Unique team id - used for tracking spend across multiple keys for same team id.\n\n_deprecated_params:\n- admins: list - A list of user_id's for the admin role\n- users: list - A list of user_id's for the user role\n\nExample Request:\n```\ncurl --location 'http://0.0.0.0:4000/team/new' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{\n \"team_alias\": \"my-new-team_2\",\n \"members_with_roles\": [{\"role\": \"admin\", \"user_id\": \"user-1234\"},\n {\"role\": \"user\", \"user_id\": \"user-2434\"}]\n}'\n\n```\n\n ```\ncurl --location 'http://0.0.0.0:4000/team/new' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{\n \"team_alias\": \"QA Prod Bot\",\n \"max_budget\": 0.000000001,\n \"budget_duration\": \"1d\"\n }'\n```" operationId: new_team_team_new_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/NewTeamRequest' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/LiteLLM_TeamTable' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /team/update: post: tags: - team management summary: Update Team description: "Use `/team/member_add` AND `/team/member/delete` to add/remove new team members\n\nYou can now update team budget / rate limits via /team/update\n\nParameters:\n- team_id: str - The team id of the user. Required param.\n- team_alias: Optional[str] - User defined team alias\n- team_member_permissions: Optional[List[str]] - A list of routes that non-admin team members can access. example: [\"/key/generate\", \"/key/update\", \"/key/delete\"]\n- metadata: Optional[dict] - Metadata for team, store information for team. Example metadata = {\"team\": \"core-infra\", \"app\": \"app2\", \"email\": \"ishaan@berri.ai\" }\n- tpm_limit: Optional[int] - The TPM (Tokens Per Minute) limit for this team - all keys with this team_id will have at max this TPM limit\n- rpm_limit: Optional[int] - The RPM (Requests Per Minute) limit for this team - all keys associated with this team_id will have at max this RPM limit\n- max_budget: Optional[float] - The maximum budget allocated to the team - all keys for this team_id will have at max this max_budget\n- soft_budget: Optional[float] - The soft budget threshold for the team. If max_budget is set (either in the request or existing), soft_budget must be strictly lower than max_budget. Can be set independently if max_budget is not set.\n- budget_duration: Optional[str] - The duration of the budget for the team. Doc [here](https://docs.litellm.ai/docs/proxy/team_budgets)\n- models: Optional[list] - A list of models associated with the team - all keys for this team_id will have at most, these models. If empty, assumes all models are allowed.\n- prompts: Optional[List[str]] - List of prompts that the team is allowed to use.\n- blocked: bool - Flag indicating if the team is blocked or not - will stop all calls from keys with this team_id.\n- tags: Optional[List[str]] - Tags for [tracking spend](https://litellm.vercel.app/docs/proxy/enterprise#tracking-spend-for-custom-tags) and/or doing [tag-based routing](https://litellm.vercel.app/docs/proxy/tag_routing).\n- organization_id: Optional[str] - The organization id of the team. Default is None. Create via `/organization/new`.\n- model_aliases: Optional[dict] - Model aliases for the team. [Docs](https://docs.litellm.ai/docs/proxy/team_based_routing#create-team-with-model-alias)\n- guardrails: Optional[List[str]] - Guardrails for the team. [Docs](https://docs.litellm.ai/docs/proxy/guardrails)\n- policies: Optional[List[str]] - Policies for the team. [Docs](https://docs.litellm.ai/docs/proxy/guardrails/guardrail_policies)\n- disable_global_guardrails: Optional[bool] - Whether to disable global guardrails for the key.\n- object_permission: Optional[LiteLLM_ObjectPermissionBase] - team-specific object permission. Example - {\"vector_stores\": [\"vector_store_1\", \"vector_store_2\"], \"agents\": [\"agent_1\", \"agent_2\"], \"agent_access_groups\": [\"dev_group\"]}. IF null or {} then no object permission.\n- team_member_budget: Optional[float] - The maximum budget allocated to an individual team member.\n- team_member_budget_duration: Optional[str] - The duration of the budget for the team member. Doc [here](https://docs.litellm.ai/docs/proxy/team_budgets)\n- team_member_rpm_limit: Optional[int] - The RPM (Requests Per Minute) limit for individual team members.\n- team_member_tpm_limit: Optional[int] - The TPM (Tokens Per Minute) limit for individual team members.\n- team_member_key_duration: Optional[str] - The duration for a team member's key. e.g. \"1d\", \"1w\", \"1mo\"\n- allowed_passthrough_routes: Optional[List[str]] - List of allowed pass through routes for the team.\n- model_rpm_limit: Optional[Dict[str, int]] - The RPM (Requests Per Minute) limit per model for this team. Example: {\"gpt-4\": 100, \"gpt-3.5-turbo\": 200}\n- model_tpm_limit: Optional[Dict[str, int]] - The TPM (Tokens Per Minute) limit per model for this team. Example: {\"gpt-4\": 10000, \"gpt-3.5-turbo\": 20000}\n- mcp_rpm_limit: Optional[Dict[str, int]] - Per-MCP-server RPM limit for this team, keyed by MCP server name (alias if set, else the configured name). Example: {\"github\": 100, \"slack\": 200}. Applied across all keys for this team.\nExample - update team TPM Limit\n- allowed_vector_store_indexes: Optional[List[dict]] - List of allowed vector store indexes for the key. Example - [{\"index_name\": \"my-index\", \"index_permissions\": [\"write\", \"read\"]}]. If specified, the key will only be able to use these specific vector store indexes. Create index, using `/v1/indexes` endpoint.\n- secret_manager_settings: Optional[dict] - Secret manager settings for the team. [Docs](https://docs.litellm.ai/docs/secret_managers/overview)\n- router_settings: Optional[UpdateRouterConfig] - team-specific router settings. Example - {\"model_group_retry_policy\": {\"gpt-4\": {\"RateLimitErrorRetries\": 5}}}. IF null or {} then no router settings.\n- access_group_ids: Optional[List[str]] - List of access group IDs to associate with the team. Access groups define which models the team can access. Example - [\"access_group_1\", \"access_group_2\"].\n- enforced_file_expires_after: Optional[dict] - Enforced file expiration policy for the team. Keys created under this team will inherit this policy for file uploads. Example - {\"anchor\": \"created_at\", \"days\": 30}.\n- enforced_batch_output_expires_after: Optional[dict] - Enforced batch output file expiration policy for the team. Keys created under this team will inherit this policy for batch output files. Example - {\"anchor\": \"created_at\", \"days\": 30}.\n- budget_limits: Optional[list] - List of concurrent budget windows for the team. Each window specifies a budget_limit, time_period, and optional budget_duration. Example - [{\"budget_limit\": 10.0, \"time_period\": \"1d\"}, {\"budget_limit\": 50.0, \"time_period\": \"7d\"}].\n- default_team_member_models: Optional[List[str]] - Default models assigned to new team members when they join this team. Must be a subset of the team's models.\n\n```\ncurl --location 'http://0.0.0.0:4000/team/update' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data-raw '{\n \"team_id\": \"8d916b1c-510d-4894-a334-1c16a93344f5\",\n \"tpm_limit\": 100\n}'\n```\n\nExample - Update Team `max_budget` budget\n```\ncurl --location 'http://0.0.0.0:4000/team/update' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data-raw '{\n \"team_id\": \"8d916b1c-510d-4894-a334-1c16a93344f5\",\n \"max_budget\": 10\n}'\n```" operationId: update_team_team_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/UpdateTeamRequest' responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /team/{team_id}: patch: tags: - team management summary: Patch Team description: "Partially update a team using RFC 7386 JSON Merge Patch semantics.\n\n`team_id` is taken from the path; a `team_id` in the body is accepted only when it\nmatches. `metadata` is merged with the team's stored metadata rather than replacing\nit: an omitted key is preserved, `key: null` deletes it, and any other value\noverwrites (recursing into nested objects). Every other field behaves exactly like\n`POST /team/update` (omitted preserves, a value overwrites). Returns the full\nupdated team.\n\n```\ncurl --location --request PATCH 'http://0.0.0.0:4000/team/8d916b1c-510d-4894-a334-1c16a93344f5' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data-raw '{\n \"metadata\": {\"cost_center\": \"1234\", \"deprecated_key\": null}\n}'\n```" operationId: patch_team_team__team_id__patch security: - APIKeyHeader: [] parameters: - name: team_id in: path required: true schema: type: string title: Team Id - 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/PatchTeamRequest' responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/LiteLLM_TeamTable' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /team/member_add: post: tags: - team management summary: Team Member Add description: 'Add new members (either via user_email or user_id) to a team If user doesn''t exist, new user row will also be added to User Table Only proxy_admin or admin of team, allowed to access this endpoint. ``` curl -X POST ''http://0.0.0.0:4000/team/member_add'' -H ''Authorization: Bearer sk-1234'' -H ''Content-Type: application/json'' -d ''{"team_id": "45e3e396-ee08-4a61-a88e-16b3ce7e0849", "member": {"role": "user", "user_id": "krrish247652@berri.ai"}}'' ```' operationId: team_member_add_team_member_add_post requestBody: content: application/json: schema: $ref: '#/components/schemas/TeamMemberAddRequest' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/TeamAddMemberResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] /team/member_delete: post: tags: - team management summary: Team Member Delete description: "[BETA]\n\ndelete members (either via user_email or user_id) from a team\n\nIf user doesn't exist, an exception will be raised\n```\ncurl -X POST 'http://0.0.0.0:8000/team/member_delete' \n-H 'Authorization: Bearer sk-1234' \n-H 'Content-Type: application/json' \n-d '{\n \"team_id\": \"45e3e396-ee08-4a61-a88e-16b3ce7e0849\",\n \"user_id\": \"krrish247652@berri.ai\"\n}'\n```" operationId: team_member_delete_team_member_delete_post requestBody: content: application/json: schema: $ref: '#/components/schemas/TeamMemberDeleteRequest' required: true responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] /team/member_update: post: tags: - team management summary: Team Member Update description: '[BETA] Update team member budgets and team member role' operationId: team_member_update_team_member_update_post requestBody: content: application/json: schema: $ref: '#/components/schemas/TeamMemberUpdateRequest' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/TeamMemberUpdateResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] /team/bulk_member_add: post: tags: - team management summary: Bulk Team Member Add description: "Bulk add multiple members to a team at once.\n\nThis endpoint reuses the same logic as /team/member_add but provides a bulk-friendly response format.\n\nParameters:\n- team_id: str - The ID of the team to add members to\n- members: List[Member] - List of members to add to the team\n- all_users: Optional[bool] - Flag to add all users on Proxy to the team\n- max_budget_in_team: Optional[float] - Maximum budget allocated to each user within the team\n\nReturns:\n- results: List of individual member addition results\n- total_requested: Total number of members requested for addition\n- successful_additions: Number of successful additions \n- failed_additions: Number of failed additions\n- updated_team: The updated team object\n\nExample request:\n```bash\ncurl --location 'http://0.0.0.0:4000/team/bulk_member_add' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{\n \"team_id\": \"team-1234\",\n \"members\": [\n {\n \"user_id\": \"user1\",\n \"role\": \"user\"\n },\n {\n \"user_email\": \"user2@example.com\",\n \"role\": \"admin\"\n }\n ],\n \"max_budget_in_team\": 100.0\n}'\n```" operationId: bulk_team_member_add_team_bulk_member_add_post requestBody: content: application/json: schema: $ref: '#/components/schemas/BulkTeamMemberAddRequest' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/BulkTeamMemberAddResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] /team/delete: post: tags: - team management summary: Delete Team description: "delete team and associated team keys\n\nParameters:\n- team_ids: List[str] - Required. List of team IDs to delete. Example: [\"team-1234\", \"team-5678\"]\n\n```\ncurl --location 'http://0.0.0.0:4000/team/delete' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data-raw '{\n \"team_ids\": [\"8d916b1c-510d-4894-a334-1c16a93344f5\"]\n}'\n```" operationId: delete_team_team_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/DeleteTeamRequest' responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /team/info: get: tags: - team management summary: Team Info description: 'get info on team + related keys Parameters: - team_id: str - Required. The unique identifier of the team to get info on. ``` curl --location ''http://localhost:4000/team/info?team_id=your_team_id_here'' --header ''Authorization: Bearer your_api_key_here'' ```' operationId: team_info_team_info_get security: - APIKeyHeader: [] parameters: - name: team_id in: query required: false schema: type: string description: Team ID in the request parameters title: Team Id description: Team ID in the request parameters - name: key_limit in: query required: false schema: anyOf: - type: integer exclusiveMinimum: 0 - type: 'null' description: Limit the number of keys returned title: Key Limit description: Limit the number of keys returned responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /team/{team_id}/members/me: get: tags: - team management summary: Team Member Me description: 'Get the caller''s own team-membership row for the given team. Used by internal users to view their own spend, budget, budget reset date, rate limits, and role within a team — without exposing other members'' data. The caller is resolved from their API key; the path `/members/me` always refers to that caller. Returns 404 if the caller is not a member of the team. ``` curl --location ''http://localhost:4000/team/your_team_id/members/me'' --header ''Authorization: Bearer your_api_key_here'' ```' operationId: team_member_me_team__team_id__members_me_get security: - APIKeyHeader: [] parameters: - name: team_id in: path required: true schema: type: string title: Team Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/TeamMemberInfoResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /team/block: post: tags: - team management summary: Block Team description: "Blocks all calls from keys with this team id.\n\nParameters:\n- team_id: str - Required. The unique identifier of the team to block.\n\nExample:\n```\ncurl --location 'http://0.0.0.0:4000/team/block' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{\n \"team_id\": \"team-1234\"\n}'\n```\n\nReturns:\n- The updated team record with blocked=True" operationId: block_team_team_block_post requestBody: content: application/json: schema: $ref: '#/components/schemas/BlockTeamRequest' required: true responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] /team/unblock: post: tags: - team management summary: Unblock Team description: "Unblocks a previously blocked team, re-enabling calls from keys with this team id.\n\nParameters:\n- team_id: str - Required. The unique identifier of the team to unblock.\n\nExample:\n```\ncurl --location 'http://0.0.0.0:4000/team/unblock' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{\n \"team_id\": \"team-1234\"\n}'\n```" operationId: unblock_team_team_unblock_post requestBody: content: application/json: schema: $ref: '#/components/schemas/BlockTeamRequest' required: true responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] /v2/team/list: get: tags: - team management summary: List Team V2 description: "Get a paginated list of teams with filtering and sorting options.\n\nParameters:\n user_id: Optional[str]\n Only return teams which this user belongs to\n organization_id: Optional[str]\n Only return teams which belong to this organization\n team_id: Optional[str]\n Filter teams by exact team_id match\n team_alias: Optional[str]\n Filter teams by partial team_alias match\n page: int\n The page number to return\n page_size: int\n The number of items per page\n sort_by: Optional[str]\n Column to sort by (e.g. 'team_id', 'team_alias', 'created_at')\n sort_order: str\n Sort order ('asc' or 'desc')\n status: Optional[str]\n Filter by status. Currently supports \"deleted\" to query deleted teams." operationId: list_team_v2_v2_team_list_get security: - APIKeyHeader: [] parameters: - name: user_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Only return teams which this 'user_id' belongs to title: User Id description: Only return teams which this 'user_id' belongs to - name: organization_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Only return teams which this 'organization_id' belongs to title: Organization Id description: Only return teams which this 'organization_id' belongs to - name: team_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Only return teams which this 'team_id' belongs to title: Team Id description: Only return teams which this 'team_id' belongs to - name: team_alias in: query required: false schema: anyOf: - type: string - type: 'null' description: Only return teams which this 'team_alias' belongs to. Supports partial matching. title: Team Alias description: Only return teams which this 'team_alias' belongs to. Supports partial matching. - name: search in: query required: false schema: anyOf: - type: string - type: 'null' description: 'Combined search: matches teams whose ''team_id'' equals the value OR whose ''team_alias'' contains it (case-insensitive).' title: Search description: 'Combined search: matches teams whose ''team_id'' equals the value OR whose ''team_alias'' contains it (case-insensitive).' - name: page in: query required: false schema: type: integer minimum: 1 description: Page number for pagination default: 1 title: Page description: Page number for pagination - name: page_size in: query required: false schema: type: integer maximum: 100 minimum: 1 description: Number of teams per page default: 10 title: Page Size description: Number of teams per page - name: sort_by in: query required: false schema: anyOf: - type: string - type: 'null' description: Column to sort by (e.g. 'team_id', 'team_alias', 'created_at') title: Sort By description: Column to sort by (e.g. 'team_id', 'team_alias', 'created_at') - name: sort_order in: query required: false schema: type: string description: Sort order ('asc' or 'desc') default: asc title: Sort Order description: Sort order ('asc' or 'desc') - 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') responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/TeamListResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /team/list: get: tags: - team management summary: List Team description: '``` curl --location --request GET ''http://0.0.0.0:4000/team/list'' --header ''Authorization: Bearer sk-1234'' ``` Parameters: - user_id: str - Optional. If passed will only return teams that the user_id is a member of. - organization_id: str - Optional. If passed will only return teams that belong to the organization_id. Pass ''default_organization'' to get all teams without organization_id.' operationId: list_team_team_list_get security: - APIKeyHeader: [] parameters: - name: user_id in: query required: false schema: anyOf: - type: string - type: 'null' description: Only return teams which this 'user_id' belongs to title: User Id description: Only return teams which this 'user_id' belongs to - name: organization_id in: query required: false schema: anyOf: - type: string - type: 'null' title: Organization Id responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /team/model/add: post: tags: - team management summary: Team Model Add description: "Add models to a team's allowed model list. Only proxy admin or team admin can add models.\n\nParameters:\n- team_id: str - Required. The team to add models to\n- models: List[str] - Required. List of models to add to the team\n\nExample Request:\n```\ncurl --location 'http://0.0.0.0:4000/team/model/add' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{\n \"team_id\": \"team-1234\",\n \"models\": [\"gpt-4\", \"claude-2\"]\n}'\n```" operationId: team_model_add_team_model_add_post requestBody: content: application/json: schema: $ref: '#/components/schemas/TeamModelAddRequest' required: true responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] /team/model/delete: post: tags: - team management summary: Team Model Delete description: "Remove models from a team's allowed model list. Only proxy admin or team admin can remove models.\n\nParameters:\n- team_id: str - Required. The team to remove models from\n- models: List[str] - Required. List of models to remove from the team\n\nExample Request:\n```\ncurl --location 'http://0.0.0.0:4000/team/model/delete' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{\n \"team_id\": \"team-1234\",\n \"models\": [\"gpt-4\"]\n}'\n```" operationId: team_model_delete_team_model_delete_post requestBody: content: application/json: schema: $ref: '#/components/schemas/TeamModelDeleteRequest' required: true responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] /team/permissions_list: get: tags: - team management summary: Team Member Permissions description: Get the team member permissions for a team operationId: team_member_permissions_team_permissions_list_get security: - APIKeyHeader: [] parameters: - name: team_id in: query required: false schema: type: string description: Team ID in the request parameters title: Team Id description: Team ID in the request parameters responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/GetTeamMemberPermissionsResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /team/permissions_update: post: tags: - team management summary: Update Team Member Permissions description: Update the team member permissions for a team operationId: update_team_member_permissions_team_permissions_update_post requestBody: content: application/json: schema: $ref: '#/components/schemas/UpdateTeamMemberPermissionsRequest' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/LiteLLM_TeamTable' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] /team/permissions_bulk_update: post: tags: - team management summary: Bulk Update Team Member Permissions description: 'Append permissions to existing teams. Either pass team_ids to target specific teams, or set apply_to_all_teams=True to update every team. For each team, the provided permissions are merged with the team''s existing permissions (duplicates are skipped).' operationId: bulk_update_team_member_permissions_team_permissions_bulk_update_post requestBody: content: application/json: schema: $ref: '#/components/schemas/BulkUpdateTeamMemberPermissionsRequest' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/BulkUpdateTeamMemberPermissionsResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' security: - APIKeyHeader: [] /team/daily/activity: get: tags: - team management summary: Get Team Daily Activity description: "Get daily activity for specific teams or all teams.\n\nArgs:\n team_ids (Optional[str]): Comma-separated list of team IDs to filter by. If not provided, returns data for all teams.\n start_date (Optional[str]): Start date for the activity period (YYYY-MM-DD).\n end_date (Optional[str]): End date for the activity period (YYYY-MM-DD).\n model (Optional[str]): Filter by model name.\n api_key (Optional[str]): Filter by API key.\n page (int): Page number for pagination.\n page_size (int): Number of items per page.\n exclude_team_ids (Optional[str]): Comma-separated list of team IDs to exclude.\nReturns:\n SpendAnalyticsPaginatedResponse: Paginated response containing daily activity data." operationId: get_team_daily_activity_team_daily_activity_get security: - APIKeyHeader: [] parameters: - name: team_ids in: query required: false schema: anyOf: - type: string - type: 'null' title: Team Ids - name: start_date in: query required: false schema: anyOf: - type: string - type: 'null' title: Start Date - name: end_date in: query required: false schema: anyOf: - type: string - type: 'null' title: End Date - name: model in: query required: false schema: anyOf: - type: string - type: 'null' title: Model - name: api_key in: query required: false schema: anyOf: - type: string - type: 'null' title: Api Key - name: page in: query required: false schema: type: integer default: 1 title: Page - name: page_size in: query required: false schema: type: integer default: 10 title: Page Size - name: exclude_team_ids in: query required: false schema: anyOf: - type: string - type: 'null' title: Exclude Team Ids responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/SpendAnalyticsPaginatedResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /team/{team_id}/callback: post: tags: - team management summary: Add Team Callbacks description: "Add a success/failure callback to a team\n\nUse this if if you want different teams to have different success/failure callbacks\n\nParameters:\n- callback_name (Literal[\"langfuse\", \"langsmith\", \"gcs\"], required): The name of the callback to add\n- callback_type (Literal[\"success\", \"failure\", \"success_and_failure\"], required): The type of callback to add. One of:\n - \"success\": Callback for successful LLM calls\n - \"failure\": Callback for failed LLM calls\n - \"success_and_failure\": Callback for both successful and failed LLM calls\n- callback_vars (StandardCallbackDynamicParams, required): A dictionary of variables to pass to the callback\n - langfuse_public_key: The public key for the Langfuse callback\n - langfuse_secret_key: The secret key for the Langfuse callback\n - langfuse_secret: The secret for the Langfuse callback\n - langfuse_host: The host for the Langfuse callback\n - gcs_bucket_name: The name of the GCS bucket\n - gcs_path_service_account: The path to the GCS service account\n - langsmith_api_key: The API key for the Langsmith callback\n - langsmith_project: The project for the Langsmith callback\n - langsmith_base_url: The base URL for the Langsmith callback\n\nExample curl:\n```\ncurl -X POST 'http:/localhost:4000/team/dbe2f686-a686-4896-864a-4c3924458709/callback' -H 'Content-Type: application/json' -H 'Authorization: Bearer sk-1234' -d '{\n \"callback_name\": \"langfuse\",\n \"callback_type\": \"success\",\n \"callback_vars\": {\"langfuse_public_key\": \"pk-lf-xxxx1\", \"langfuse_secret_key\": \"sk-xxxxx\"}\n \n}'\n```\n\nThis means for the team where team_id = dbe2f686-a686-4896-864a-4c3924458709, all LLM calls will be logged to langfuse using the public key pk-lf-xxxx1 and the secret key sk-xxxxx" operationId: add_team_callbacks_team__team_id__callback_post security: - APIKeyHeader: [] parameters: - name: team_id in: path required: true schema: type: string title: Team Id - 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/AddTeamCallback' responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' get: tags: - team management summary: Get Team Callbacks description: "Get the success/failure callbacks and variables for a team\n\nParameters:\n- team_id (str, required): The unique identifier for the team\n\nExample curl:\n```\ncurl -X GET 'http://localhost:4000/team/dbe2f686-a686-4896-864a-4c3924458709/callback' -H 'Authorization: Bearer sk-1234'\n```\n\nThis will return the callback settings for the team with id dbe2f686-a686-4896-864a-4c3924458709\n\nReturns {\n \"status\": \"success\",\n \"data\": {\n \"team_id\": team_id,\n \"success_callbacks\": team_callback_settings_obj.success_callback,\n \"failure_callbacks\": team_callback_settings_obj.failure_callback,\n \"callback_vars\": team_callback_settings_obj.callback_vars,\n },\n }" operationId: get_team_callbacks_team__team_id__callback_get security: - APIKeyHeader: [] parameters: - name: team_id in: path required: true schema: type: string title: Team Id responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /team/{team_id}/disable_logging: post: tags: - team management summary: Disable Team Logging description: 'Disable all logging callbacks for a team Parameters: - team_id (str, required): The unique identifier for the team Example curl: ``` curl -X POST ''http://localhost:4000/team/dbe2f686-a686-4896-864a-4c3924458709/disable_logging'' -H ''Authorization: Bearer sk-1234'' ```' operationId: disable_team_logging_team__team_id__disable_logging_post security: - APIKeyHeader: [] parameters: - name: team_id in: path required: true schema: type: string title: Team Id - 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 responses: '200': description: Successful Response content: application/json: schema: {} '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' components: schemas: LiteLLM_BudgetTable: properties: budget_id: anyOf: - type: string - type: 'null' title: Budget Id soft_budget: anyOf: - type: number - type: 'null' title: Soft Budget max_budget: anyOf: - type: number - type: 'null' title: Max Budget max_parallel_requests: anyOf: - type: integer - type: 'null' title: Max Parallel Requests tpm_limit: anyOf: - type: integer - type: 'null' title: Tpm Limit rpm_limit: anyOf: - type: integer - type: 'null' title: Rpm Limit model_max_budget: anyOf: - additionalProperties: true type: object - type: 'null' title: Model Max Budget budget_duration: anyOf: - type: string - type: 'null' title: Budget Duration allowed_models: anyOf: - items: type: string type: array - type: 'null' title: Allowed Models type: object title: LiteLLM_BudgetTable description: 'Represents user-controllable params for a LiteLLM_BudgetTable record. Budget-write paths use `model_fields.keys()` on this class as an allowlist for user input. Keep server-managed fields (e.g. `budget_reset_at`) on `LiteLLM_BudgetTableFull` so they aren''t user-settable.' DeleteTeamRequest: properties: team_ids: items: type: string type: array title: Team Ids type: object required: - team_ids title: DeleteTeamRequest TeamAddMemberResponse: properties: team_alias: anyOf: - type: string - type: 'null' title: Team Alias team_id: type: string title: Team Id organization_id: anyOf: - type: string - type: 'null' title: Organization Id admins: items: {} type: array title: Admins default: [] members: items: {} type: array title: Members default: [] members_with_roles: items: $ref: '#/components/schemas/Member' type: array title: Members With Roles default: [] team_member_permissions: anyOf: - items: type: string type: array - type: 'null' title: Team Member Permissions 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 max_budget: anyOf: - type: number - type: 'null' title: Max Budget soft_budget: anyOf: - type: number - type: 'null' title: Soft Budget 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 models: items: {} type: array title: Models default: [] blocked: type: boolean title: Blocked default: false router_settings: anyOf: - additionalProperties: true type: object - type: 'null' title: Router Settings access_group_ids: anyOf: - items: type: string type: array - type: 'null' title: Access Group Ids default_team_member_models: anyOf: - items: type: string type: array - type: 'null' title: Default Team Member Models spend: anyOf: - type: number - type: 'null' title: Spend max_parallel_requests: anyOf: - type: integer - type: 'null' title: Max Parallel Requests budget_reset_at: anyOf: - type: string format: date-time - type: 'null' title: Budget Reset At model_id: anyOf: - type: integer - type: 'null' title: Model Id model_spend: anyOf: - additionalProperties: true type: object - type: 'null' title: Model Spend default: {} model_max_budget: anyOf: - additionalProperties: true type: object - type: 'null' title: Model Max Budget default: {} policies: anyOf: - items: type: string type: array - type: 'null' title: Policies allow_team_guardrail_config: anyOf: - type: boolean - type: 'null' title: Allow Team Guardrail Config default: false litellm_model_table: anyOf: - $ref: '#/components/schemas/LiteLLM_ModelTable' - type: 'null' object_permission: anyOf: - $ref: '#/components/schemas/LiteLLM_ObjectPermissionTable' - type: 'null' object_permission_id: anyOf: - type: string - type: 'null' title: Object Permission Id updated_at: anyOf: - type: string format: date-time - type: 'null' title: Updated At created_at: anyOf: - type: string format: date-time - type: 'null' title: Created At updated_users: items: $ref: '#/components/schemas/LiteLLM_UserTable' type: array title: Updated Users updated_team_memberships: items: $ref: '#/components/schemas/LiteLLM_TeamMembership' type: array title: Updated Team Memberships type: object required: - team_id - updated_users - updated_team_memberships title: TeamAddMemberResponse TeamMemberAddResult: properties: user_id: anyOf: - type: string - type: 'null' title: User Id user_email: anyOf: - type: string - type: 'null' title: User Email success: type: boolean title: Success error: anyOf: - type: string - type: 'null' title: Error updated_user: anyOf: - additionalProperties: true type: object - type: 'null' title: Updated User updated_team_membership: anyOf: - additionalProperties: true type: object - type: 'null' title: Updated Team Membership type: object required: - success title: TeamMemberAddResult description: Result of a single team member add operation 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 DailySpendMetadata: properties: total_spend: type: number title: Total Spend default: 0.0 total_prompt_tokens: type: integer title: Total Prompt Tokens default: 0 total_completion_tokens: type: integer title: Total Completion Tokens default: 0 total_tokens: type: integer title: Total Tokens default: 0 total_api_requests: type: integer title: Total Api Requests default: 0 total_successful_requests: type: integer title: Total Successful Requests default: 0 total_failed_requests: type: integer title: Total Failed Requests default: 0 total_cache_read_input_tokens: type: integer title: Total Cache Read Input Tokens default: 0 total_cache_creation_input_tokens: type: integer title: Total Cache Creation Input Tokens default: 0 total_compression_saved_tokens: type: integer title: Total Compression Saved Tokens default: 0 total_compression_savings_spend: type: number title: Total Compression Savings Spend default: 0.0 total_prompt_caching_savings_spend: type: number title: Total Prompt Caching Savings Spend default: 0.0 page: type: integer title: Page default: 1 total_pages: type: integer title: Total Pages default: 1 has_more: type: boolean title: Has More default: false type: object title: DailySpendMetadata LiteLLM_DeletedTeamTable: properties: team_alias: anyOf: - type: string - type: 'null' title: Team Alias team_id: type: string title: Team Id organization_id: anyOf: - type: string - type: 'null' title: Organization Id admins: items: {} type: array title: Admins default: [] members: items: {} type: array title: Members default: [] members_with_roles: items: $ref: '#/components/schemas/Member' type: array title: Members With Roles default: [] team_member_permissions: anyOf: - items: type: string type: array - type: 'null' title: Team Member Permissions 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 max_budget: anyOf: - type: number - type: 'null' title: Max Budget soft_budget: anyOf: - type: number - type: 'null' title: Soft Budget 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 models: items: {} type: array title: Models default: [] blocked: type: boolean title: Blocked default: false router_settings: anyOf: - additionalProperties: true type: object - type: 'null' title: Router Settings access_group_ids: anyOf: - items: type: string type: array - type: 'null' title: Access Group Ids default_team_member_models: anyOf: - items: type: string type: array - type: 'null' title: Default Team Member Models spend: anyOf: - type: number - type: 'null' title: Spend max_parallel_requests: anyOf: - type: integer - type: 'null' title: Max Parallel Requests budget_reset_at: anyOf: - type: string format: date-time - type: 'null' title: Budget Reset At model_id: anyOf: - type: integer - type: 'null' title: Model Id model_spend: anyOf: - additionalProperties: true type: object - type: 'null' title: Model Spend default: {} model_max_budget: anyOf: - additionalProperties: true type: object - type: 'null' title: Model Max Budget default: {} policies: anyOf: - items: type: string type: array - type: 'null' title: Policies allow_team_guardrail_config: anyOf: - type: boolean - type: 'null' title: Allow Team Guardrail Config default: false litellm_model_table: anyOf: - $ref: '#/components/schemas/LiteLLM_ModelTable' - type: 'null' object_permission: anyOf: - $ref: '#/components/schemas/LiteLLM_ObjectPermissionTable' - type: 'null' object_permission_id: anyOf: - type: string - type: 'null' title: Object Permission Id updated_at: anyOf: - type: string format: date-time - type: 'null' title: Updated At created_at: anyOf: - type: string format: date-time - type: 'null' title: Created At 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 required: - team_id title: LiteLLM_DeletedTeamTable description: Audit record for deleted teams; mirrors the team plus deletion metadata. GetTeamMemberPermissionsResponse: properties: team_id: type: string title: Team Id team_member_permissions: anyOf: - items: type: string type: array - type: 'null' title: Team Member Permissions default: [] all_available_permissions: items: type: string type: array title: All Available Permissions type: object required: - team_id - all_available_permissions title: GetTeamMemberPermissionsResponse description: Response to get the team member permissions for a team TeamMemberUpdateRequest: properties: user_id: anyOf: - type: string - type: 'null' title: User Id user_email: anyOf: - type: string - type: 'null' title: User Email team_id: type: string title: Team Id max_budget_in_team: anyOf: - type: number - type: 'null' title: Max Budget In Team role: anyOf: - type: string enum: - admin - user - type: 'null' title: Role tpm_limit: anyOf: - type: integer - type: 'null' title: Tpm Limit description: Tokens per minute limit for this team member rpm_limit: anyOf: - type: integer - type: 'null' title: Rpm Limit description: Requests per minute limit for this team member budget_duration: anyOf: - type: string - type: 'null' title: Budget Duration description: Duration after which this team member's budget resets (e.g. '1h', '24h', '7d', '30d'). If not set, the budget never resets. allowed_models: anyOf: - items: type: string type: array - type: 'null' title: Allowed Models description: List of models this team member can access. Pass an empty list to remove per-member model restrictions. type: object required: - team_id title: TeamMemberUpdateRequest NewTeamRequest: properties: team_alias: anyOf: - type: string - type: 'null' title: Team Alias team_id: anyOf: - type: string - type: 'null' title: Team Id organization_id: anyOf: - type: string - type: 'null' title: Organization Id admins: items: {} type: array title: Admins default: [] members: items: {} type: array title: Members default: [] members_with_roles: items: $ref: '#/components/schemas/Member' type: array title: Members With Roles default: [] team_member_permissions: anyOf: - items: type: string type: array - type: 'null' title: Team Member Permissions 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 max_budget: anyOf: - type: number - type: 'null' title: Max Budget soft_budget: anyOf: - type: number - type: 'null' title: Soft Budget 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 models: items: {} type: array title: Models default: [] blocked: type: boolean title: Blocked default: false router_settings: anyOf: - additionalProperties: true type: object - type: 'null' title: Router Settings access_group_ids: anyOf: - items: type: string type: array - type: 'null' title: Access Group Ids default_team_member_models: anyOf: - items: type: string type: array - type: 'null' title: Default Team Member Models model_aliases: anyOf: - additionalProperties: true type: object - type: 'null' title: Model Aliases tags: anyOf: - items: {} type: array - type: 'null' title: Tags 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 object_permission: anyOf: - $ref: '#/components/schemas/LiteLLM_ObjectPermissionBase' - type: 'null' allowed_passthrough_routes: anyOf: - items: {} type: array - type: 'null' title: Allowed Passthrough Routes disable_global_guardrails: anyOf: - type: boolean - type: 'null' title: Disable Global Guardrails secret_manager_settings: anyOf: - additionalProperties: true type: object - type: 'null' title: Secret Manager Settings model_rpm_limit: anyOf: - additionalProperties: type: integer type: object - type: 'null' title: Model Rpm Limit rpm_limit_type: anyOf: - type: string enum: - guaranteed_throughput - best_effort_throughput - type: 'null' title: Rpm Limit Type tpm_limit_type: anyOf: - type: string enum: - guaranteed_throughput - best_effort_throughput - type: 'null' title: Tpm Limit Type model_tpm_limit: anyOf: - additionalProperties: type: integer type: object - type: 'null' title: Model Tpm Limit mcp_rpm_limit: anyOf: - additionalProperties: type: integer type: object - type: 'null' title: Mcp Rpm Limit team_member_budget: anyOf: - type: number - type: 'null' title: Team Member Budget team_member_rpm_limit: anyOf: - type: integer - type: 'null' title: Team Member Rpm Limit team_member_tpm_limit: anyOf: - type: integer - type: 'null' title: Team Member Tpm Limit team_member_key_duration: anyOf: - type: string - type: 'null' title: Team Member Key Duration team_member_budget_duration: anyOf: - type: string - type: 'null' title: Team Member Budget Duration allowed_vector_store_indexes: anyOf: - items: $ref: '#/components/schemas/AllowedVectorStoreIndexItem' type: array - type: 'null' title: Allowed Vector Store Indexes enforced_batch_output_expires_after: anyOf: - additionalProperties: true type: object - type: 'null' title: Enforced Batch Output Expires After enforced_file_expires_after: anyOf: - additionalProperties: true type: object - type: 'null' title: Enforced File Expires After type: object title: NewTeamRequest UpdateTeamRequest: properties: team_id: type: string title: Team Id team_alias: anyOf: - type: string - type: 'null' title: Team Alias organization_id: anyOf: - type: string - type: 'null' title: Organization Id 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 max_budget: anyOf: - type: number - type: 'null' title: Max Budget soft_budget: anyOf: - type: number - type: 'null' title: Soft Budget models: anyOf: - items: {} type: array - type: 'null' title: Models blocked: anyOf: - type: boolean - type: 'null' title: Blocked budget_duration: anyOf: - type: string - type: 'null' title: Budget Duration tags: anyOf: - items: {} type: array - type: 'null' title: Tags model_aliases: anyOf: - additionalProperties: true type: object - type: 'null' title: Model Aliases guardrails: anyOf: - items: type: string type: array - type: 'null' title: Guardrails policies: anyOf: - items: type: string type: array - type: 'null' title: Policies object_permission: anyOf: - $ref: '#/components/schemas/LiteLLM_ObjectPermissionBase' - type: 'null' disable_global_guardrails: anyOf: - type: boolean - type: 'null' title: Disable Global Guardrails team_member_budget: anyOf: - type: number - type: 'null' title: Team Member Budget team_member_budget_duration: anyOf: - type: string - type: 'null' title: Team Member Budget Duration team_member_rpm_limit: anyOf: - type: integer - type: 'null' title: Team Member Rpm Limit team_member_tpm_limit: anyOf: - type: integer - type: 'null' title: Team Member Tpm Limit team_member_key_duration: anyOf: - type: string - type: 'null' title: Team Member Key Duration allowed_passthrough_routes: anyOf: - items: {} type: array - type: 'null' title: Allowed Passthrough Routes secret_manager_settings: anyOf: - additionalProperties: true type: object - type: 'null' title: Secret Manager Settings prompts: anyOf: - items: type: string type: array - type: 'null' title: Prompts model_rpm_limit: anyOf: - additionalProperties: type: integer type: object - type: 'null' title: Model Rpm Limit model_tpm_limit: anyOf: - additionalProperties: type: integer type: object - type: 'null' title: Model Tpm Limit mcp_rpm_limit: anyOf: - additionalProperties: type: integer type: object - type: 'null' title: Mcp Rpm Limit allowed_vector_store_indexes: anyOf: - items: $ref: '#/components/schemas/AllowedVectorStoreIndexItem' type: array - type: 'null' title: Allowed Vector Store Indexes enforced_batch_output_expires_after: anyOf: - additionalProperties: true type: object - type: 'null' title: Enforced Batch Output Expires After enforced_file_expires_after: anyOf: - additionalProperties: true type: object - type: 'null' title: Enforced File Expires After router_settings: anyOf: - additionalProperties: true type: object - type: 'null' title: Router Settings access_group_ids: anyOf: - items: type: string type: array - type: 'null' title: Access Group Ids budget_limits: anyOf: - items: $ref: '#/components/schemas/BudgetLimitEntry' type: array - type: 'null' title: Budget Limits default_team_member_models: anyOf: - items: type: string type: array - type: 'null' title: Default Team Member Models type: object required: - team_id title: UpdateTeamRequest description: 'UpdateTeamRequest, used by /team/update when you need to update a team team_id: str team_alias: Optional[str] = None organization_id: Optional[str] = None metadata: Optional[dict] = None tpm_limit: Optional[int] = None rpm_limit: Optional[int] = None max_budget: Optional[float] = None models: Optional[list] = None blocked: Optional[bool] = None budget_duration: Optional[str] = None guardrails: Optional[List[str]] = None policies: Optional[List[str]] = None' LiteLLM_BudgetTableFull: properties: budget_id: anyOf: - type: string - type: 'null' title: Budget Id soft_budget: anyOf: - type: number - type: 'null' title: Soft Budget max_budget: anyOf: - type: number - type: 'null' title: Max Budget max_parallel_requests: anyOf: - type: integer - type: 'null' title: Max Parallel Requests tpm_limit: anyOf: - type: integer - type: 'null' title: Tpm Limit rpm_limit: anyOf: - type: integer - type: 'null' title: Rpm Limit model_max_budget: anyOf: - additionalProperties: true type: object - type: 'null' title: Model Max Budget budget_duration: anyOf: - type: string - type: 'null' title: Budget Duration allowed_models: anyOf: - items: type: string type: array - type: 'null' title: Allowed Models budget_reset_at: anyOf: - type: string format: date-time - type: 'null' title: Budget Reset At created_at: type: string format: date-time title: Created At type: object required: - created_at title: LiteLLM_BudgetTableFull description: LiteLLM_BudgetTable + server-managed fields returned on API responses. AddTeamCallback: properties: callback_name: type: string title: Callback Name callback_type: anyOf: - type: string enum: - success - failure - success_and_failure - type: 'null' title: Callback Type default: success_and_failure callback_vars: additionalProperties: type: string type: object title: Callback Vars type: object required: - callback_name - callback_vars title: AddTeamCallback DailySpendData: properties: date: type: string format: date title: Date metrics: $ref: '#/components/schemas/SpendMetrics' breakdown: $ref: '#/components/schemas/BreakdownMetrics' type: object required: - date - metrics title: DailySpendData MetricWithMetadata: properties: metrics: $ref: '#/components/schemas/SpendMetrics' metadata: additionalProperties: true type: object title: Metadata api_key_breakdown: additionalProperties: $ref: '#/components/schemas/KeyMetricWithMetadata' type: object title: Api Key Breakdown type: object required: - metrics title: MetricWithMetadata BlockTeamRequest: properties: team_id: type: string title: Team Id type: object required: - team_id title: BlockTeamRequest TeamListItem: properties: team_alias: anyOf: - type: string - type: 'null' title: Team Alias team_id: type: string title: Team Id organization_id: anyOf: - type: string - type: 'null' title: Organization Id admins: items: {} type: array title: Admins default: [] members: items: {} type: array title: Members default: [] members_with_roles: items: $ref: '#/components/schemas/Member' type: array title: Members With Roles default: [] team_member_permissions: anyOf: - items: type: string type: array - type: 'null' title: Team Member Permissions 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 max_budget: anyOf: - type: number - type: 'null' title: Max Budget soft_budget: anyOf: - type: number - type: 'null' title: Soft Budget 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 models: items: {} type: array title: Models default: [] blocked: type: boolean title: Blocked default: false router_settings: anyOf: - additionalProperties: true type: object - type: 'null' title: Router Settings access_group_ids: anyOf: - items: type: string type: array - type: 'null' title: Access Group Ids default_team_member_models: anyOf: - items: type: string type: array - type: 'null' title: Default Team Member Models spend: anyOf: - type: number - type: 'null' title: Spend max_parallel_requests: anyOf: - type: integer - type: 'null' title: Max Parallel Requests budget_reset_at: anyOf: - type: string format: date-time - type: 'null' title: Budget Reset At model_id: anyOf: - type: integer - type: 'null' title: Model Id model_spend: anyOf: - additionalProperties: true type: object - type: 'null' title: Model Spend default: {} model_max_budget: anyOf: - additionalProperties: true type: object - type: 'null' title: Model Max Budget default: {} policies: anyOf: - items: type: string type: array - type: 'null' title: Policies allow_team_guardrail_config: anyOf: - type: boolean - type: 'null' title: Allow Team Guardrail Config default: false litellm_model_table: anyOf: - $ref: '#/components/schemas/LiteLLM_ModelTable' - type: 'null' object_permission: anyOf: - $ref: '#/components/schemas/LiteLLM_ObjectPermissionTable' - type: 'null' object_permission_id: anyOf: - type: string - type: 'null' title: Object Permission Id updated_at: anyOf: - type: string format: date-time - type: 'null' title: Updated At created_at: anyOf: - type: string format: date-time - type: 'null' title: Created At members_count: type: integer title: Members Count default: 0 keys_count: type: integer title: Keys Count default: 0 access_group_models: anyOf: - items: type: string type: array - type: 'null' title: Access Group Models access_group_mcp_server_ids: anyOf: - items: type: string type: array - type: 'null' title: Access Group Mcp Server Ids access_group_agent_ids: anyOf: - items: type: string type: array - type: 'null' title: Access Group Agent Ids type: object required: - team_id title: TeamListItem description: A team item in the paginated list response, enriched with computed fields. KeyManagementRoutes: type: string enum: - /key/generate - /key/update - /key/delete - /key/regenerate - /key/service-account/generate - /key/{key_id}/regenerate - /key/block - /key/unblock - /key/bulk_update - /team/key/bulk_update - /key/{key_id}/reset_spend - /key/access_group_assignment - /key/info - /key/health - /key/list - /key/aliases - /team/daily/activity - /spend/logs - /spend/logs/v2 title: KeyManagementRoutes description: Enum for key management routes TeamMemberUpdateResponse: properties: user_id: type: string title: User Id user_email: anyOf: - type: string - type: 'null' title: User Email team_id: type: string title: Team Id max_budget_in_team: anyOf: - type: number - type: 'null' title: Max Budget In Team 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 allowed_models: anyOf: - items: type: string type: array - type: 'null' title: Allowed Models type: object required: - user_id - team_id title: TeamMemberUpdateResponse BreakdownMetrics: properties: mcp_servers: additionalProperties: $ref: '#/components/schemas/MetricWithMetadata' type: object title: Mcp Servers models: additionalProperties: $ref: '#/components/schemas/MetricWithMetadata' type: object title: Models model_groups: additionalProperties: $ref: '#/components/schemas/MetricWithMetadata' type: object title: Model Groups providers: additionalProperties: $ref: '#/components/schemas/MetricWithMetadata' type: object title: Providers endpoints: additionalProperties: $ref: '#/components/schemas/MetricWithMetadata' type: object title: Endpoints api_keys: additionalProperties: $ref: '#/components/schemas/KeyMetricWithMetadata' type: object title: Api Keys entities: additionalProperties: $ref: '#/components/schemas/MetricWithMetadata' type: object title: Entities type: object title: BreakdownMetrics description: Breakdown of spend by different dimensions BulkTeamMemberAddRequest: properties: team_id: type: string title: Team Id members: anyOf: - items: $ref: '#/components/schemas/Member' type: array - type: 'null' title: Members all_users: anyOf: - type: boolean - type: 'null' title: All Users default: false max_budget_in_team: anyOf: - type: number - type: 'null' title: Max Budget In Team type: object required: - team_id title: BulkTeamMemberAddRequest description: Request for bulk team member addition TeamModelDeleteRequest: properties: team_id: type: string title: Team Id models: items: type: string type: array title: Models type: object required: - team_id - models title: TeamModelDeleteRequest description: Request to delete models from a team KeyMetadata: properties: key_alias: anyOf: - type: string - type: 'null' title: Key Alias team_id: anyOf: - type: string - type: 'null' title: Team Id type: object title: KeyMetadata description: Metadata for a key TeamMemberInfoResponse: properties: user_id: type: string title: User Id team_id: type: string title: Team Id budget_id: anyOf: - type: string - type: 'null' title: Budget Id spend: anyOf: - type: number - type: 'null' title: Spend default: 0.0 total_spend: anyOf: - type: number - type: 'null' title: Total Spend default: 0.0 litellm_budget_table: anyOf: - $ref: '#/components/schemas/LiteLLM_BudgetTableFull' - $ref: '#/components/schemas/LiteLLM_BudgetTable' - type: 'null' title: Litellm Budget Table role: anyOf: - type: string - type: 'null' title: Role user_email: anyOf: - type: string - type: 'null' title: User Email team_alias: anyOf: - type: string - type: 'null' title: Team Alias type: object required: - user_id - team_id title: TeamMemberInfoResponse description: Response for GET /team/{team_id}/members/me — caller's own membership row. SpendMetrics: properties: spend: type: number title: Spend default: 0.0 prompt_tokens: type: integer title: Prompt Tokens default: 0 completion_tokens: type: integer title: Completion Tokens default: 0 cache_read_input_tokens: type: integer title: Cache Read Input Tokens default: 0 cache_creation_input_tokens: type: integer title: Cache Creation Input Tokens default: 0 compression_saved_tokens: type: integer title: Compression Saved Tokens default: 0 compression_savings_spend: type: number title: Compression Savings Spend default: 0.0 prompt_caching_savings_spend: type: number title: Prompt Caching Savings Spend default: 0.0 total_tokens: type: integer title: Total Tokens default: 0 successful_requests: type: integer title: Successful Requests default: 0 failed_requests: type: integer title: Failed Requests default: 0 api_requests: type: integer title: Api Requests default: 0 type: object title: SpendMetrics LiteLLM_OrganizationMembershipTable: properties: user_id: type: string title: User Id organization_id: type: string title: Organization Id user_role: anyOf: - type: string - type: 'null' title: User Role spend: type: number title: Spend default: 0.0 budget_id: anyOf: - type: string - type: 'null' title: Budget Id created_at: type: string format: date-time title: Created At updated_at: type: string format: date-time title: Updated At user: anyOf: - {} - type: 'null' title: User litellm_budget_table: anyOf: - $ref: '#/components/schemas/LiteLLM_BudgetTable' - type: 'null' user_email: anyOf: - type: string - type: 'null' title: User Email type: object required: - user_id - organization_id - created_at - updated_at title: LiteLLM_OrganizationMembershipTable description: Tracks which organizations a user belongs to and their spend within it. TeamMemberAddRequest: properties: member: anyOf: - items: $ref: '#/components/schemas/Member' type: array - $ref: '#/components/schemas/Member' title: Member description: Member object or list of member objects to add. Each member must include either user_id or user_email, and a role team_id: type: string title: Team Id description: The ID of the team to add the member to max_budget_in_team: anyOf: - type: number - type: 'null' title: Max Budget In Team description: Maximum budget allocated to this user within the team. If not set, user has unlimited budget within team limits budget_duration: anyOf: - type: string - type: 'null' title: Budget Duration description: Duration after which this team member's budget resets (e.g. '1h', '24h', '7d', '30d'). If not set, the budget never resets. allowed_models: anyOf: - items: type: string type: array - type: 'null' title: Allowed Models description: List of models this team member can access. If not set, inherits the team's default_team_member_models or all team models. type: object required: - member - team_id title: TeamMemberAddRequest description: "Request body for adding members to a team.\n\nExample:\n```json\n{\n \"team_id\": \"45e3e396-ee08-4a61-a88e-16b3ce7e0849\",\n \"member\": {\n \"role\": \"user\",\n \"user_id\": \"user123\"\n },\n \"max_budget_in_team\": 100.0\n}\n```" BulkUpdateTeamMemberPermissionsRequest: properties: permissions: items: $ref: '#/components/schemas/KeyManagementRoutes' type: array title: Permissions team_ids: anyOf: - items: type: string type: array - type: 'null' title: Team Ids apply_to_all_teams: type: boolean title: Apply To All Teams default: false type: object required: - permissions title: BulkUpdateTeamMemberPermissionsRequest description: Request to bulk-update team member permissions across teams. TeamMemberDeleteRequest: properties: user_id: anyOf: - type: string - type: 'null' title: User Id user_email: anyOf: - type: string - type: 'null' title: User Email team_id: type: string title: Team Id type: object required: - team_id title: TeamMemberDeleteRequest 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 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 type: object required: - object_permission_id title: LiteLLM_ObjectPermissionTable description: Represents a LiteLLM_ObjectPermissionTable record 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 TeamListResponse: properties: teams: items: anyOf: - $ref: '#/components/schemas/TeamListItem' - $ref: '#/components/schemas/LiteLLM_TeamTable' - $ref: '#/components/schemas/LiteLLM_DeletedTeamTable' type: array title: Teams total: type: integer title: Total page: type: integer title: Page page_size: type: integer title: Page Size total_pages: type: integer title: Total Pages type: object required: - teams - total - page - page_size - total_pages title: TeamListResponse description: Response to get the list of teams LiteLLM_UserTable: properties: user_id: type: string title: User Id user_alias: anyOf: - type: string - type: 'null' title: User Alias team_id: anyOf: - type: string - type: 'null' title: Team Id sso_user_id: anyOf: - type: string - type: 'null' title: Sso User Id organization_id: anyOf: - type: string - type: 'null' title: Organization Id object_permission_id: anyOf: - type: string - type: 'null' title: Object Permission Id teams: items: type: string type: array title: Teams default: [] user_role: anyOf: - type: string - type: 'null' title: User Role max_budget: anyOf: - type: number - type: 'null' title: Max Budget spend: type: number title: Spend default: 0.0 user_email: anyOf: - type: string - type: 'null' title: User Email models: items: {} type: array title: Models default: [] metadata: anyOf: - additionalProperties: true type: object - type: 'null' title: Metadata max_parallel_requests: anyOf: - type: integer - type: 'null' title: Max Parallel Requests 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: items: type: string type: array title: Allowed Cache Controls default: [] policies: items: type: string type: array title: Policies default: [] model_spend: anyOf: - additionalProperties: true type: object - type: 'null' title: Model Spend default: {} model_max_budget: anyOf: - additionalProperties: true type: object - type: 'null' title: Model Max Budget default: {} 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 organization_memberships: anyOf: - items: $ref: '#/components/schemas/LiteLLM_OrganizationMembershipTable' type: array - type: 'null' title: Organization Memberships object_permission: anyOf: - $ref: '#/components/schemas/LiteLLM_ObjectPermissionTable' - type: 'null' type: object required: - user_id title: LiteLLM_UserTable BulkUpdateTeamMemberPermissionsResponse: properties: message: type: string title: Message teams_updated: type: integer title: Teams Updated permissions_appended: anyOf: - items: type: string type: array - type: 'null' title: Permissions Appended type: object required: - message - teams_updated title: BulkUpdateTeamMemberPermissionsResponse description: Response for bulk team member permissions update. HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError BulkTeamMemberAddResponse: properties: team_id: type: string title: Team Id results: items: $ref: '#/components/schemas/TeamMemberAddResult' type: array title: Results total_requested: type: integer title: Total Requested successful_additions: type: integer title: Successful Additions failed_additions: type: integer title: Failed Additions updated_team: anyOf: - additionalProperties: true type: object - type: 'null' title: Updated Team type: object required: - team_id - results - total_requested - successful_additions - failed_additions title: BulkTeamMemberAddResponse description: Response for bulk team member add operations 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 type: object title: LiteLLM_ObjectPermissionBase SpendAnalyticsPaginatedResponse: properties: results: items: $ref: '#/components/schemas/DailySpendData' type: array title: Results metadata: $ref: '#/components/schemas/DailySpendMetadata' type: object required: - results title: SpendAnalyticsPaginatedResponse 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. UpdateTeamMemberPermissionsRequest: properties: team_id: type: string title: Team Id team_member_permissions: items: type: string type: array title: Team Member Permissions type: object required: - team_id - team_member_permissions title: UpdateTeamMemberPermissionsRequest description: Request to update the team member permissions for a team KeyMetricWithMetadata: properties: metrics: $ref: '#/components/schemas/SpendMetrics' metadata: $ref: '#/components/schemas/KeyMetadata' type: object required: - metrics title: KeyMetricWithMetadata description: Base class for metrics with additional metadata LiteLLM_ModelTable: properties: id: anyOf: - type: integer - type: 'null' title: Id model_aliases: anyOf: - type: string - additionalProperties: true type: object - type: 'null' title: Model Aliases created_by: type: string title: Created By updated_by: type: string title: Updated By team: anyOf: - $ref: '#/components/schemas/LiteLLM_TeamTable' - type: 'null' type: object required: - created_by - updated_by title: LiteLLM_ModelTable TeamModelAddRequest: properties: team_id: type: string title: Team Id models: items: type: string type: array title: Models type: object required: - team_id - models title: TeamModelAddRequest description: Request to add models to a team LiteLLM_TeamTable: properties: team_alias: anyOf: - type: string - type: 'null' title: Team Alias team_id: type: string title: Team Id organization_id: anyOf: - type: string - type: 'null' title: Organization Id admins: items: {} type: array title: Admins default: [] members: items: {} type: array title: Members default: [] members_with_roles: items: $ref: '#/components/schemas/Member' type: array title: Members With Roles default: [] team_member_permissions: anyOf: - items: type: string type: array - type: 'null' title: Team Member Permissions 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 max_budget: anyOf: - type: number - type: 'null' title: Max Budget soft_budget: anyOf: - type: number - type: 'null' title: Soft Budget 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 models: items: {} type: array title: Models default: [] blocked: type: boolean title: Blocked default: false router_settings: anyOf: - additionalProperties: true type: object - type: 'null' title: Router Settings access_group_ids: anyOf: - items: type: string type: array - type: 'null' title: Access Group Ids default_team_member_models: anyOf: - items: type: string type: array - type: 'null' title: Default Team Member Models spend: anyOf: - type: number - type: 'null' title: Spend max_parallel_requests: anyOf: - type: integer - type: 'null' title: Max Parallel Requests budget_reset_at: anyOf: - type: string format: date-time - type: 'null' title: Budget Reset At model_id: anyOf: - type: integer - type: 'null' title: Model Id model_spend: anyOf: - additionalProperties: true type: object - type: 'null' title: Model Spend default: {} model_max_budget: anyOf: - additionalProperties: true type: object - type: 'null' title: Model Max Budget default: {} policies: anyOf: - items: type: string type: array - type: 'null' title: Policies allow_team_guardrail_config: anyOf: - type: boolean - type: 'null' title: Allow Team Guardrail Config default: false litellm_model_table: anyOf: - $ref: '#/components/schemas/LiteLLM_ModelTable' - type: 'null' object_permission: anyOf: - $ref: '#/components/schemas/LiteLLM_ObjectPermissionTable' - type: 'null' object_permission_id: anyOf: - type: string - type: 'null' title: Object Permission Id updated_at: anyOf: - type: string format: date-time - type: 'null' title: Updated At created_at: anyOf: - type: string format: date-time - type: 'null' title: Created At type: object required: - team_id title: LiteLLM_TeamTable PatchTeamRequest: properties: team_id: anyOf: - type: string - type: 'null' title: Team Id team_alias: anyOf: - type: string - type: 'null' title: Team Alias organization_id: anyOf: - type: string - type: 'null' title: Organization Id 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 max_budget: anyOf: - type: number - type: 'null' title: Max Budget soft_budget: anyOf: - type: number - type: 'null' title: Soft Budget models: anyOf: - items: {} type: array - type: 'null' title: Models blocked: anyOf: - type: boolean - type: 'null' title: Blocked budget_duration: anyOf: - type: string - type: 'null' title: Budget Duration tags: anyOf: - items: {} type: array - type: 'null' title: Tags model_aliases: anyOf: - additionalProperties: true type: object - type: 'null' title: Model Aliases guardrails: anyOf: - items: type: string type: array - type: 'null' title: Guardrails policies: anyOf: - items: type: string type: array - type: 'null' title: Policies object_permission: anyOf: - $ref: '#/components/schemas/LiteLLM_ObjectPermissionBase' - type: 'null' disable_global_guardrails: anyOf: - type: boolean - type: 'null' title: Disable Global Guardrails team_member_budget: anyOf: - type: number - type: 'null' title: Team Member Budget team_member_budget_duration: anyOf: - type: string - type: 'null' title: Team Member Budget Duration team_member_rpm_limit: anyOf: - type: integer - type: 'null' title: Team Member Rpm Limit team_member_tpm_limit: anyOf: - type: integer - type: 'null' title: Team Member Tpm Limit team_member_key_duration: anyOf: - type: string - type: 'null' title: Team Member Key Duration allowed_passthrough_routes: anyOf: - items: {} type: array - type: 'null' title: Allowed Passthrough Routes secret_manager_settings: anyOf: - additionalProperties: true type: object - type: 'null' title: Secret Manager Settings prompts: anyOf: - items: type: string type: array - type: 'null' title: Prompts model_rpm_limit: anyOf: - additionalProperties: type: integer type: object - type: 'null' title: Model Rpm Limit model_tpm_limit: anyOf: - additionalProperties: type: integer type: object - type: 'null' title: Model Tpm Limit mcp_rpm_limit: anyOf: - additionalProperties: type: integer type: object - type: 'null' title: Mcp Rpm Limit allowed_vector_store_indexes: anyOf: - items: $ref: '#/components/schemas/AllowedVectorStoreIndexItem' type: array - type: 'null' title: Allowed Vector Store Indexes enforced_batch_output_expires_after: anyOf: - additionalProperties: true type: object - type: 'null' title: Enforced Batch Output Expires After enforced_file_expires_after: anyOf: - additionalProperties: true type: object - type: 'null' title: Enforced File Expires After router_settings: anyOf: - additionalProperties: true type: object - type: 'null' title: Router Settings access_group_ids: anyOf: - items: type: string type: array - type: 'null' title: Access Group Ids budget_limits: anyOf: - items: $ref: '#/components/schemas/BudgetLimitEntry' type: array - type: 'null' title: Budget Limits default_team_member_models: anyOf: - items: type: string type: array - type: 'null' title: Default Team Member Models type: object title: PatchTeamRequest description: 'Body of PATCH /team/{team_id}. Identical to UpdateTeamRequest except team_id is optional, because PATCH takes it from the path. A team_id in the body is still accepted when it matches the path.' LiteLLM_TeamMembership: properties: user_id: type: string title: User Id team_id: type: string title: Team Id budget_id: anyOf: - type: string - type: 'null' title: Budget Id spend: anyOf: - type: number - type: 'null' title: Spend default: 0.0 total_spend: anyOf: - type: number - type: 'null' title: Total Spend default: 0.0 litellm_budget_table: anyOf: - $ref: '#/components/schemas/LiteLLM_BudgetTableFull' - $ref: '#/components/schemas/LiteLLM_BudgetTable' - type: 'null' title: Litellm Budget Table type: object required: - user_id - team_id title: LiteLLM_TeamMembership securitySchemes: APIKeyHeader: type: apiKey description: Bearer token in: header name: x-litellm-api-key