latestOpenAPI 3.1.02026-08-236994571.1 MB

79928a3d37d3

team management

New Team

Allow users to create a new team. Apply user permissions to their team.

👉 Detailed Doc on setting team budgets

Parameters:

  • team_alias: Optional[str] - User defined team alias
  • team_id: Optional[str] - The team id of the user. If none passed, we'll generate it.
  • members_with_roles: List[{"role": "admin" or "user", "user_id": "<user-id>"}] - A list of users and their roles in the team. Get user_id when making a new user via /user/new.
  • team_member_permissions: Optional[List[str]] - A list of routes that non-admin team members can access. example: ["/key/generate", "/key/update", "/key/delete"]
  • metadata: Optional[dict] - Metadata for team, store information for team. Example metadata = {"extra_info": "some info"}
  • model_rpm_limit: Optional[Dict[str, int]] - The RPM (Requests Per Minute) limit for this team - applied across all keys for this team.
  • model_tpm_limit: Optional[Dict[str, int]] - The TPM (Tokens Per Minute) limit for this team - applied across all keys for this team.
  • 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
  • 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
  • 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.
  • 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.
  • max_budget: Optional[float] - The maximum budget allocated to the team - all keys for this team_id will have at max this max_budget
  • 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.
  • budget_duration: Optional[str] - The duration of the budget for the team. Doc here
  • 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.
  • blocked: bool - Flag indicating if the team is blocked or not - will stop all calls from keys with this team_id.
  • members: Optional[List] - Control team members via /team/member/add and /team/member/delete.
  • tags: Optional[List[str]] - Tags for tracking spend and/or doing tag-based routing.
  • prompts: Optional[List[str]] - List of prompts that the team is allowed to use.
  • organization_id: Optional[str] - The organization id of the team. Default is None. Create via /organization/new.
  • model_aliases: Optional[dict] - Model aliases for the team. Docs
  • guardrails: Optional[List[str]] - Guardrails for the team. Docs
  • policies: Optional[List[str]] - Policies for the team. Docs
  • disable_global_guardrails: Optional[bool] - Whether to disable global guardrails for the key.
  • 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.
  • team_member_budget: Optional[float] - The maximum budget allocated to an individual team member.
  • team_member_rpm_limit: Optional[int] - The RPM (Requests Per Minute) limit for individual team members.
  • team_member_tpm_limit: Optional[int] - The TPM (Tokens Per Minute) limit for individual team members.
  • team_member_key_duration: Optional[str] - The duration for a team member's key. e.g. "1d", "1w", "1mo"
  • allowed_passthrough_routes: Optional[List[str]] - List of allowed pass through routes for the team.
  • 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.
  • secret_manager_settings: Optional[dict] - Secret manager settings for the team. Docs
  • router_settings: Optional[UpdateRouterConfig] - team-specific router settings. Example - {"model_group_retry_policy": {"max_retries": 5}}. IF null or {} then no router settings.
  • 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"].
  • 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}.
  • 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}.

Returns:

  • team_id: (str) Unique team id - used for tracking spend across multiple keys for same team id.

_deprecated_params:

  • admins: list - A list of user_id's for the admin role
  • users: list - A list of user_id's for the user role

Example Request:

curl --location 'http://0.0.0.0:4000/team/new'     --header 'Authorization: Bearer sk-1234'     --header 'Content-Type: application/json'     --data '{
  "team_alias": "my-new-team_2",
  "members_with_roles": [{"role": "admin", "user_id": "user-1234"},
    {"role": "user", "user_id": "user-2434"}]
}'

curl --location 'http://0.0.0.0:4000/team/new'     --header 'Authorization: Bearer sk-1234'     --header 'Content-Type: application/json'     --data '{
           "team_alias": "QA Prod Bot",
           "max_budget": 0.000000001,
           "budget_duration": "1d"
       }'
post/team/new

Headers

litellm-changed-bystring 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

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

team_aliasstring nullable
team_idstring nullable
organization_idstring nullable
team_member_permissionsstring[] nullable
metadataobject nullable
tpm_limitinteger nullable
rpm_limitinteger nullable
max_budgetnumber nullable
soft_budgetnumber nullable
budget_durationstring nullable
blockedboolean
router_settingsobject nullable
access_group_idsstring[] nullable
model_aliasesobject nullable
guardrailsstring[] nullable
policiesstring[] nullable
promptsstring[] nullable
secret_manager_settingsobject nullable
model_rpm_limitobject nullable
rpm_limit_type'guaranteed_throughput' | 'best_effort_throughput' nullable
tpm_limit_type'guaranteed_throughput' | 'best_effort_throughput' nullable
model_tpm_limitobject nullable
team_member_budgetnumber nullable
team_member_rpm_limitinteger nullable
team_member_tpm_limitinteger nullable
team_member_key_durationstring nullable
enforced_batch_output_expires_afterobject nullable
enforced_file_expires_afterobject nullable

Response

Successful Response

team_aliasstring nullable
team_idstring required
organization_idstring nullable
team_member_permissionsstring[] nullable
metadataobject nullable
tpm_limitinteger nullable
rpm_limitinteger nullable
max_budgetnumber nullable
soft_budgetnumber nullable
budget_durationstring nullable
blockedboolean
router_settingsobject nullable
access_group_idsstring[] nullable
spendnumber nullable
max_parallel_requestsinteger nullable
budget_reset_atstring date-time nullable
model_idinteger nullable
updated_atstring date-time nullable
created_atstring date-time nullable
object_permission_idstring nullable