---
title: "Patch Team"
method: PATCH
path: "/team/{team_id}"
tags: ["team management"]
---

# Patch Team

`PATCH /team/{team_id}`

## Request

- Base URL: `https://api.sea-lion.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.sea-lion.ai/team/{team_id}`
- Auth: API key in header `x-litellm-api-key`

Partially update a team using RFC 7386 JSON Merge Patch semantics.

`team_id` is taken from the path; a `team_id` in the body is accepted only when it
matches. `metadata` is merged with the team's stored metadata rather than replacing
it: an omitted key is preserved, `key: null` deletes it, and any other value
overwrites (recursing into nested objects). Every other field behaves exactly like
`POST /team/update` (omitted preserves, a value overwrites). Returns the full
updated team.

```
curl --location --request PATCH 'http://0.0.0.0:4000/team/8d916b1c-510d-4894-a334-1c16a93344f5'     --header "Authorization: Bearer $LITELLM_MASTER_KEY"     --header 'Content-Type: application/json'     --data-raw '{
    "metadata": {"cost_center": "1234", "deprecated_key": null}
}'
```

## Path parameters

- `team_id` string, required

## Headers

- `litellm-changed-by` string, nullable: The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability

## Request body

- PatchTeamRequest: 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.
  - `team_id` string, nullable
  - `team_alias` string, nullable
  - `organization_id` string, nullable
  - `metadata` object, nullable
  - `tpm_limit` integer, nullable
  - `rpm_limit` integer, nullable
  - `tpd_limit` integer, nullable
  - `max_budget` number, nullable
  - `soft_budget` number, nullable
  - `models` unknown[], nullable
    - unknown
  - `blocked` boolean, nullable
  - `budget_duration` string, nullable
  - `tags` unknown[], nullable
    - unknown
  - `model_aliases` object, nullable
  - `guardrails` string[], nullable
  - `policies` string[], nullable
  - `object_permission` LiteLLMObjectPermissionBase
    - `mcp_servers` string[], nullable
    - `mcp_access_groups` string[], nullable
    - `mcp_tool_permissions` object, nullable
    - `mcp_toolsets` string[], nullable
    - `blocked_tools` string[], nullable
    - `vector_stores` string[], nullable
    - `agents` string[], nullable
    - `agent_access_groups` string[], nullable
    - `models` string[], nullable
    - `search_tools` string[], nullable
    - `mcp_tool_search_enabled` boolean, nullable
    - `skills` string[], nullable
  - `disable_global_guardrails` boolean, nullable
  - `team_member_budget` number, nullable
  - `team_member_budget_duration` string, nullable
  - `team_member_rpm_limit` integer, nullable
  - `team_member_tpm_limit` integer, nullable
  - `team_member_key_duration` string, nullable
  - `allowed_passthrough_routes` unknown[], nullable
    - unknown
  - `denied_passthrough_routes` string[], nullable
  - `secret_manager_settings` object, nullable
  - `prompts` string[], nullable
  - `model_rpm_limit` object, nullable
  - `model_tpm_limit` object, nullable
  - `default_estimated_output_tokens` integer, nullable
  - `default_estimated_output_tokens_per_model` object, nullable
  - `mcp_rpm_limit` object, nullable
  - `allowed_vector_store_indexes` AllowedVectorStoreIndexItem[], nullable
    - `index_name` string, required
    - `index_permissions` string[], required
  - `enforced_batch_output_expires_after` object, nullable
  - `enforced_file_expires_after` object, nullable
  - `router_settings` UpdateRouterConfig: Set of params that you can modify via `router.update_settings()`.
    - `routing_strategy_args` object, nullable
    - `routing_strategy` string, nullable
    - `routing_groups` RoutingGroup[], nullable
      - `group_name` string, required
      - `models` string[], required
      - `routing_strategy` string, required
      - `routing_strategy_args` object, nullable
      - `model_priorities` object, nullable: For priority groups, every model's priority. Lower numbers are tried first; equal numbers share traffic.
    - `retry_policy` RetryPolicy: Use this to set a custom number of retries per exception type If RateLimitErrorRetries = 3, then 3 retries will be made for RateLimitError Mapping of Exception type to number of retries https://docs.litellm.ai/docs/exception_mapping
      - `BadRequestErrorRetries` integer, nullable
      - `AuthenticationErrorRetries` integer, nullable
      - `TimeoutErrorRetries` integer, nullable
      - `RateLimitErrorRetries` integer, nullable
      - `ContentPolicyViolationErrorRetries` integer, nullable
      - `InternalServerErrorRetries` integer, nullable
      - `ServiceUnavailableErrorRetries` integer, nullable
      - `NotFoundErrorRetries` integer, nullable
      - `DefaultRetries` integer, nullable
    - `model_group_retry_policy` object, nullable
    - `model_group_affinity_config` object, nullable
    - `allowed_fails` integer, nullable
    - `cooldown_time` number, nullable
    - `num_retries` integer, nullable
    - `timeout` number, nullable
    - `max_retries` integer, nullable
    - `retry_after` number, nullable
    - `fallbacks` object[], nullable
    - `context_window_fallbacks` object[], nullable
    - `model_group_alias` object, nullable
    - `enable_tag_filtering` boolean, nullable
    - `weights` object, nullable
    - `tag_routing_prefix` string, nullable
    - `optional_pre_call_checks` string[], nullable
  - `access_group_ids` string[], nullable
  - `budget_limits` BudgetLimitEntry[], nullable
    - `budget_duration` string, required
    - `max_budget` number, required
    - `reset_at` string, date-time, nullable
  - `default_team_member_models` string[], nullable
  - `model_max_budget` object, nullable: Max budget per model for every key on the team, overridable per key (e.g. {'gpt-4o': {'max_budget': 10, 'budget_duration': '1d'}})

## Response `200`

Successful Response

- LiteLLMTeamTable
  - `team_alias` string, nullable
  - `team_id` string, required
  - `organization_id` string, nullable
  - `admins` string[]
  - `members` string[]
  - `members_with_roles` Member[]
    - `user_id` string, nullable: The unique ID of the user to add. Either user_id or user_email must be provided
    - `user_email` string, nullable: The email address of the user to add. Either user_id or user_email must be provided
    - `role` 'admin' | 'user', required: The role of the user within the team. 'admin' users can manage team settings and members, 'user' is a regular team member
  - `team_member_permissions` string[], nullable
  - `metadata` object, nullable
  - `tpm_limit` integer, nullable
  - `rpm_limit` integer, nullable
  - `tpd_limit` integer, nullable
  - `max_budget` number, nullable
  - `soft_budget` number, nullable
  - `budget_duration` string, nullable
  - `budget_limits` BudgetLimitEntry[], nullable
    - `budget_duration` string, required
    - `max_budget` number, required
    - `reset_at` string, date-time, nullable
  - `models` string[]
  - `blocked` boolean
  - `router_settings` object, nullable
  - `access_group_ids` string[], nullable
  - `default_team_member_models` string[], nullable
  - `spend` number, nullable
  - `max_parallel_requests` integer, nullable
  - `budget_reset_at` string, date-time, nullable
  - `model_id` integer, nullable
  - `model_spend` object, nullable
  - `model_max_budget` object, nullable
  - `policies` string[], nullable
  - `allow_team_guardrail_config` boolean, nullable
  - `litellm_model_table` LiteLLMModelTable
    - `id` integer, nullable
    - `model_aliases` union
      - string
      - object
    - `created_by` string, required
    - `updated_by` string, required
    - `team` LiteLLMTeamTable (recursive)
  - `object_permission` LiteLLMObjectPermissionTable: Represents a LiteLLM_ObjectPermissionTable record
    - `object_permission_id` string, required
    - `mcp_servers` string[], nullable
    - `mcp_access_groups` string[], nullable
    - `mcp_tool_permissions` object, nullable
    - `vector_stores` string[], nullable
    - `agents` string[], nullable
    - `agent_access_groups` string[], nullable
    - `models` string[], nullable
    - `mcp_toolsets` string[], nullable
    - `blocked_tools` string[], nullable
    - `search_tools` string[], nullable
    - `mcp_tool_search_enabled` boolean, nullable
    - `skills` string[], nullable
  - `object_permission_id` string, nullable
  - `updated_at` string, date-time, nullable
  - `created_at` string, date-time, nullable

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-21** `f2fb14eab3f5`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/sea-lion/apis/litellm-api/changes/team/:team_id/patch.md)

---

[API](https://skmtc.dev/sea-lion/apis/litellm-api.md) · [All operations](https://skmtc.dev/sea-lion/apis/litellm-api/llms.txt) · [OpenAPI document](https://skmtc.dev/sea-lion/apis/litellm-api/revisions/1ba9123c189a?raw)
