---
title: "Organization Member Add"
method: POST
path: "/organization/member_add"
tags: ["organization management"]
---

# Organization Member Add

`POST /organization/member_add`

[BETA]

Add new members (either via user_email or user_id) to an organization

If user doesn't exist, new user row will also be added to User Table

Only proxy_admin or org_admin of organization, allowed to access this endpoint.

# Parameters:

- organization_id: str (required)
- member: Union[List[Member], Member] (required)
    - role: Literal[LitellmUserRoles] (required)
    - user_id: Optional[str]
    - user_email: Optional[str]

Note: Either user_id or user_email must be provided for each member.

Example:
```
curl -X POST 'http://0.0.0.0:4000/organization/member_add'     -H 'Authorization: Bearer sk-1234'     -H 'Content-Type: application/json'     -d '{
    "organization_id": "45e3e396-ee08-4a61-a88e-16b3ce7e0849",
    "member": {
        "role": "internal_user",
        "user_id": "krrish247652@berri.ai"
    },
    "max_budget_in_organization": 100.0
}'
```

The following is executed in this function:

1. Check if organization exists
2. Creates a new Internal User if the user_id or user_email is not found in LiteLLM_UserTable
3. Add Internal User to the `LiteLLM_OrganizationMembership` table

## Request body

- OrganizationMemberAddRequest
  - `member` union, required
    - OrgMember[]
      - `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` 'org_admin' | 'internal_user' | 'internal_user_viewer', required
    - OrgMember
      - `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` 'org_admin' | 'internal_user' | 'internal_user_viewer', required
  - `organization_id` string, required
  - `max_budget_in_organization` number, nullable

## Response `200`

Successful Response

- OrganizationAddMemberResponse
  - `organization_id` string, required
  - `updated_users` LiteLLMUserTableOutput[], required
    - `user_id` string, required
    - `max_budget` number, nullable
    - `spend` number
    - `model_max_budget` object, nullable
    - `model_spend` object, nullable
    - `user_email` string, nullable
    - `user_alias` string, nullable
    - `models` unknown[]
      - unknown
    - `tpm_limit` integer, nullable
    - `rpm_limit` integer, nullable
    - `user_role` string, nullable
    - `organization_memberships` LiteLLMOrganizationMembershipTable[], nullable
      - `user_id` string, required
      - `organization_id` string, required
      - `user_role` string, nullable
      - `spend` number
      - `budget_id` string, nullable
      - `created_at` string, date-time, required
      - `updated_at` string, date-time, required
      - `user` unknown
      - `litellm_budget_table` LiteLLMBudgetTable — Represents user-controllable params for a LiteLLM_BudgetTable record
        - `budget_id` string, nullable
        - `soft_budget` number, nullable
        - `max_budget` number, nullable
        - `max_parallel_requests` integer, nullable
        - `tpm_limit` integer, nullable
        - `rpm_limit` integer, nullable
        - `model_max_budget` object, nullable
        - `budget_duration` string, nullable
      - `user_email` string, nullable
    - `teams` string[]
    - `sso_user_id` string, nullable
    - `budget_duration` string, nullable
    - `budget_reset_at` string, date-time, nullable
    - `metadata` object, nullable
    - `created_at` string, date-time, nullable
    - `updated_at` string, date-time, nullable
    - `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
  - `updated_organization_memberships` LiteLLMOrganizationMembershipTable[], required
    - `user_id` string, required
    - `organization_id` string, required
    - `user_role` string, nullable
    - `spend` number
    - `budget_id` string, nullable
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
    - `user` unknown
    - `litellm_budget_table` LiteLLMBudgetTable — Represents user-controllable params for a LiteLLM_BudgetTable record
      - `budget_id` string, nullable
      - `soft_budget` number, nullable
      - `max_budget` number, nullable
      - `max_parallel_requests` integer, nullable
      - `tpm_limit` integer, nullable
      - `rpm_limit` integer, nullable
      - `model_max_budget` object, nullable
      - `budget_duration` string, nullable
    - `user_email` string, nullable

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/sea-lion/apis/litellm-api.md) · [All operations](https://skmtc.net/sea-lion/apis/litellm-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/sea-lion/litellm-api/revisions/79928a3d37d3/schema)
