---
title: "Create new empty project"
method: POST
path: "/api/organizations/{organizationId}/new-project"
tags: ["OrganizationCreateProject"]
---

# Create new empty project

`POST /api/organizations/{organizationId}/new-project`

## Request

- Base URL: `https://studio.edgeimpulse.com/v1`
- URL: `https://studio.edgeimpulse.com/v1/api/organizations/{organizationId}/new-project`
- Auth: one of:
  - API key in header `x-api-key`
  - API key in cookie `jwt`
  - API key in header `x-jwt-token`
  - OAuth 2
    - Authorization code: `/v1/oauth/authorize`
    - Client credentials
    - Implicit: `/v1/oauth/authorize`
    - Password
    - Token URL: `/v1/oauth/token`
- TypeScript: <https://skmtc.dev/edgeimpulse/apis/edge-impulse-api/docs/api/organizations/:organizationId/new-project/post.ts> (a function with typed inputs; its response is checked against the schema)

Create a new empty project within an organization.

## Path parameters

- `organizationId` integer, required

## Request body

- UpdateOrganizationCreateEmptyProjectRequest
  - `projectName` string, required: The name of the project.
  - `projectVisibility` 'public' | 'private': The visibility of the project, either public or private. Public projects can be viewed by anyone on the internet and edited by collaborators. Private projects can only be viewed and edited by collaborators.
  - `projectOwnerUsernameOrEmail` string: The username or email of the owner of the project. This field is mandatory when authenticating via API key. If no email is provided when authenticating via JWT, the user ID attached to the JWT will be user as project owner.
  - `showGettingStartedWizard` boolean: Whether to show the getting started wizard use-case chooser screen after the project is created
  - `tutorialKey` 'kws' | 'cv': The type of in-product guided tutorial to show in the getting started wizard
  - `createApiKey` boolean: Whether to create an API key. If set to FALSE, the "apiKey" property on the response will be empty. If this field is not set, it will default to TRUE.

## Response `200`

OK

- CreateProjectResponse
  - `success` boolean, required: Whether the operation succeeded
  - `error` string: Optional error description (set if 'success' was false)
  - `id` integer, required: Project ID for the new project
  - `apiKey` string, required: API key for the new project

---

[API](https://skmtc.dev/edgeimpulse/apis/edge-impulse-api.md) - [All operations](https://skmtc.dev/edgeimpulse/apis/edge-impulse-api/llms.txt) - [OpenAPI document](https://skmtc.dev/edgeimpulse/apis/edge-impulse-api/revisions/e2a976d38427?raw)
