---
title: "New Organization"
method: POST
path: "/organization/new"
tags: ["organization management"]
---

# New Organization

`POST /organization/new`

Allow orgs to own teams

Set org level budgets + model access.

Only admins can create orgs.

# Parameters

- organization_alias: *str* - The name of the organization.
- models: *List* - The models the organization has access to.
- budget_id: *Optional[str]* - The id for a budget (tpm/rpm/max budget) for the organization.
### IF NO BUDGET ID - CREATE ONE WITH THESE PARAMS ###
- max_budget: *Optional[float]* - Max budget for org
- tpm_limit: *Optional[int]* - Max tpm limit for org
- rpm_limit: *Optional[int]* - Max rpm limit for org
- model_rpm_limit: *Optional[Dict[str, int]]* - The RPM (Requests Per Minute) limit per model for this organization.
- model_tpm_limit: *Optional[Dict[str, int]]* - The TPM (Tokens Per Minute) limit per model for this organization.
- max_parallel_requests: *Optional[int]* - [Not Implemented Yet] Max parallel requests for org
- soft_budget: *Optional[float]* - [Not Implemented Yet] Get a slack alert when this soft budget is reached. Don't block requests.
- model_max_budget: *Optional[dict]* - Max budget for a specific model
- budget_duration: *Optional[str]* - Frequency of reseting org budget
- metadata: *Optional[dict]* - Metadata for organization, store information for organization. Example metadata - {"extra_info": "some info"}
- blocked: *bool* - Flag indicating if the org is blocked or not - will stop all calls from keys with this org_id.
- 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).
- 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](https://docs.litellm.ai/docs/proxy/team_based_routing#create-team-with-model-alias)
- object_permission: Optional[LiteLLM_ObjectPermissionBase] - organization-specific object permission. Example - {"vector_stores": ["vector_store_1", "vector_store_2"]}. IF null or {} then no object permission.
- allowed_models: Optional[List[str]] - List of models the organization is allowed to access. If not set, defaults to the models field.
Case 1: Create new org **without** a budget_id

```bash
curl --location 'http://0.0.0.0:4000/organization/new' 
--header 'Authorization: Bearer sk-1234' 
--header 'Content-Type: application/json' 
--data '{
    "organization_alias": "my-secret-org",
    "models": ["model1", "model2"],
    "max_budget": 100
}'


```

Case 2: Create new org **with** a budget_id

```bash
curl --location 'http://0.0.0.0:4000/organization/new' 
--header 'Authorization: Bearer sk-1234' 
--header 'Content-Type: application/json' 
--data '{
    "organization_alias": "my-secret-org",
    "models": ["model1", "model2"],
    "budget_id": "428eeaa8-f3ac-4e85-a8fb-7dc8d7aa8689"
}'
```

## Request body

- NewOrganizationRequest
  - `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
  - `allowed_models` string[], nullable
  - `organization_id` string, nullable
  - `organization_alias` string, required
  - `models` unknown[]
    - unknown
  - `metadata` object, nullable
  - `model_rpm_limit` object, nullable
  - `model_tpm_limit` object, 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

## Response `200`

Successful Response

- NewOrganizationResponse
  - `organization_id` string, required
  - `organization_alias` string, nullable
  - `budget_id` string, required
  - `spend` number
  - `metadata` object, nullable
  - `models` string[], required
  - `created_by` string, required
  - `updated_by` string, required
  - `users` LiteLLMUserTable[], nullable
    - `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-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.
        - `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
        - `allowed_models` 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
      - `mcp_toolsets` string[], nullable
      - `blocked_tools` string[], nullable
      - `search_tools` string[], nullable
  - `litellm_budget_table` LiteLLMBudgetTable — 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.
    - `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
    - `allowed_models` string[], 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
    - `mcp_toolsets` string[], nullable
    - `blocked_tools` string[], nullable
    - `search_tools` string[], nullable
  - `object_permission_id` string, nullable
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required

## Other responses

- `422` — Validation Error

---

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