---
title: "Create new project"
method: POST
path: "/api/projects/create"
tags: ["Projects"]
---

# Create new project

`POST /api/projects/create`

## Request

- Base URL: `https://studio.edgeimpulse.com/v1`
- URL: `https://studio.edgeimpulse.com/v1/api/projects/create`
- 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/projects/create/post.ts> (a function with typed inputs; its response is checked against the schema)

Create a new project. By default this endpoint creates and returns a project API key. When authenticated via OAuth, API key creation and API key return in the response are disabled.

## Request body

- CreateProjectRequest
  - `projectName` string, required: The name of the first 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.
  - `originalProjectVersionId` integer: The ID of the version that was used to restore this project.
  - `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)
