# Create a new project

**Documentation:** /reference/api-reference/projects/postOrgOwnerProjectNew

Creates a new project within the authenticated user's organization using the specified name. Projects are isolated environments within your organization, each with their own API keys, webhook configurations, and resources. Use this endpoint to create additional projects for different environments (e.g., development, staging, production) or for separate applications.

---

## POST `/api/v3/org/owner/project/new`

**Endpoint:** `https://backend.composio.dev/api/v3/org/owner/project/new`

**Summary:** Create a new project

Creates a new project within the authenticated user's organization using the specified name. Projects are isolated environments within your organization, each with their own API keys, webhook configurations, and resources. Use this endpoint to create additional projects for different environments (e.g., development, staging, production) or for separate applications.

### Authentication

**OrgApiKeyAuth** - API Key in `header` header `x-org-api-key`

### Request Body

**Schema:**

- `name` (string) *(required)*: A unique name for your project that follows the required format rules
- `should_create_api_key` (boolean): Whether to create an API key for the project. If true, the API key will be created and returned in the response.
- `config` (object): Configuration for the project
  - `is_2FA_enabled` (boolean) *(required)*
  - `logo_url` (string)
  - `display_name` (string)
  - `mask_secret_keys_in_connected_account` (boolean) *(required)*
  - `log_visibility_setting` (enum: "show_all" | "dont_store_data") *(required)*
  - `require_mcp_api_key` (boolean)
  - `is_composio_link_enabled_for_managed_auth` (boolean): Whether to enable composio link for managed authentication. This key will be deprecated in the future. Please don't use this key.
  - `signed_url_file_expiry_in_seconds` (number)

**Example:**

```json
{
  "name": "string",
  "should_create_api_key": false,
  "config": {
    "is_2FA_enabled": true,
    "logo_url": "string",
    "display_name": "string",
    "mask_secret_keys_in_connected_account": true,
    "log_visibility_setting": "show_all",
    "require_mcp_api_key": true,
    "is_composio_link_enabled_for_managed_auth": true,
    "signed_url_file_expiry_in_seconds": 1
  }
}
```

### Responses

#### 200 - Project successfully created. Returns the complete project object with generated IDs, webhook secrets, and configuration.

**Response Schema:**

- `id` (string (projectId)) *(required)*: Unique identifier for the project
- `name` (string): Name of the project
- `api_key` (string,null) *(required)*: API key for the project

**Example Response:**

```json
{
  "id": "string",
  "name": "string",
  "api_key": null
}
```

#### 400 - Bad request. This may occur if the project name format is invalid, too short, or contains invalid characters.

**Response Schema:**

- `error` (object) *(required)*
  - `message` (string) *(required)*
  - `code` (number) *(required)*
  - `slug` (string) *(required)*
  - `status` (number) *(required)*
  - `request_id` (string)
  - `suggested_fix` (string)
  - `errors` (array<string>)

#### 401 - Unauthorized. Authentication is required or the provided credentials are invalid.

**Response Schema:**

- `error` (object) *(required)*
  - `message` (string) *(required)*
  - `code` (number) *(required)*
  - `slug` (string) *(required)*
  - `status` (number) *(required)*
  - `request_id` (string)
  - `suggested_fix` (string)
  - `errors` (array<string>)

#### 500 - Internal server error. An unexpected error occurred while processing the request.

**Response Schema:**

- `error` (object) *(required)*
  - `message` (string) *(required)*
  - `code` (number) *(required)*
  - `slug` (string) *(required)*
  - `status` (number) *(required)*
  - `request_id` (string)
  - `suggested_fix` (string)
  - `errors` (array<string>)

### Example cURL Request

```bash
curl -X POST "https://backend.composio.dev/api/v3/org/owner/project/new" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "string",
    "should_create_api_key": false,
    "config": {
      "is_2FA_enabled": true,
      "logo_url": "string",
      "display_name": "string",
      "mask_secret_keys_in_connected_account": true,
      "log_visibility_setting": "show_all",
      "require_mcp_api_key": true,
      "is_composio_link_enabled_for_managed_auth": true,
      "signed_url_file_expiry_in_seconds": 1
    }
  }'
```