---
title: "CreateProject"
method: POST
path: "/gitpod.v1.ProjectService/CreateProject"
tags: ["gitpod.v1.ProjectService"]
---

# CreateProject

`POST /gitpod.v1.ProjectService/CreateProject`

Creates a new project with specified configuration.

 Use this method to:
 - Set up development projects
 - Configure project environments
 - Define project settings
 - Initialize project content

 ### Examples

 - Create basic project:

   Creates a project with minimal configuration.

   ```yaml
   name: "Web Application"
   environmentClass:
     environmentClassId: "d2c94c27-3b76-4a42-b88c-95a85e392c68"
   initializer:
     specs:
       - git:
           remoteUri: "https://github.com/org/repo"
   ```

 - Create project with devcontainer:

   Creates a project with custom development container.

   ```yaml
   name: "Backend Service"
   environmentClass:
     environmentClassId: "d2c94c27-3b76-4a42-b88c-95a85e392c68"
   initializer:
     specs:
       - git:
           remoteUri: "https://github.com/org/backend"
   devcontainerFilePath: ".devcontainer/devcontainer.json"
   automationsFilePath: ".gitpod/automations.yaml"
   ```

## Request body

- GitpodV1CreateProjectRequest — unresolved $ref

## Response `200`

Success

- GitpodV1CreateProjectResponse
  - `project` GitpodV1Project — unresolved $ref

## Other responses

- `default` — Error

## Changes

- **2025-06-10** `ca9a49ac7fbb` — 2 warning, 2 info
  - added the new `PRINCIPAL_RUNNER_MANAGER` enum value to the `project/metadata/creator/principal` response property for the response status `200`
  - added the new `PRINCIPAL_RUNNER_MANAGER` enum value to the `project/usedBy/subjects/items/principal` response property for the response status `200`
  - added the new optional request property `technicalDescription`
  - added the optional property `project/technicalDescription` to the response with the `200` status
- **2025-02-21** `3655d5ad0ac3` — 3 breaking, 2 warning, 12 info
  - the `environmentClass` request property type/format changed from ``/`` to `object`/``
  - the `initializer` request property type/format changed from ``/`` to `object`/``
  - the `project` response's property type/format changed from ``/`` to `object`/`` for status `200`
  - removed `#/components/schemas/gitpod.v1.EnvironmentInitializer` from the `initializer` request property `allOf` list
  - …13 more
- **2025-02-18** `cd6a05ae99d2` — 1 warning
  - removed the optional property `detail` from the response with the `default` status

[Change history](https://skmtc.dev/gitpod-io/apis/gitpod-v1/changes/gitpod.v1.ProjectService/CreateProject/post.md)

---

[API](https://skmtc.dev/gitpod-io/apis/gitpod-v1.md) · [All operations](https://skmtc.dev/gitpod-io/apis/gitpod-v1/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/gitpod-io/gitpod-v1/revisions/ca9a49ac7fbb/schema)
