---
title: "Create a new project"
method: POST
path: "/api/v3.1/org/owner/project/new"
tags: ["Projects", "Organization"]
---

# Create a new project

`POST /api/v3.1/org/owner/project/new`

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.

## Request body

- object
  - `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` '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
    - `oauth_callback_verifier_url` string, uri, nullable — Developer-hosted OAuth callback verifier URL. Setting it enables per-user callback identity verification; null disables it. Must be https and pass SSRF checks.

## Response `200`

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

- object
  - `id` string, projectId, required — Unique identifier for the project
  - `name` string — Name of the project
  - `api_key` string, nullable, required — API key for the project

## Other responses

- `400` — Bad request. This may occur if the project name format is invalid, too short, or contains invalid characters.
- `401` — Unauthorized. Authentication is required or the provided credentials are invalid.
- `500` — Internal server error. An unexpected error occurred while processing the request.

---

[API](https://skmtc.net/composiohq/apis/composio-platform-api-v3-1.md) · [All operations](https://skmtc.net/composiohq/apis/composio-platform-api-v3-1/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/composiohq/composio-platform-api-v3-1/versions/4239836857f8/schema)
