---
title: "Projects"
description: "<p>Launch Projects provide a fully managed front-end hosting and deployment solution within Contentstack. It enables you to connect your Git repository, configure build settings, and automatically deploy web projects with seamless integration, scalability, and minimal downtime.</p>"
url: "https://www.contentstack.com/docs/developers/apis/launch-api/projects"
product: "Contentstack"
doc_type: "guide"
audience:
  - developers
  - admins
version: "current"
last_updated: "2026-01-13"
---

# Projects

Launch Projects provide a fully managed front-end hosting and deployment solution within Contentstack. It enables you to connect your Git repository, configure build settings, and automatically deploy web projects with seamless integration, scalability, and minimal downtime.

## Get all Projects

### Get all Projects

**GET** `/projects`

The Get all Projects request fetches the list of all projects in your organization.

#### Query Parameters

- **skip** (optional)
  The "skip" parameter will skip a specific number of projects in the output. For example, if there are 20 projects and you want to skip the first 2 to get only the last 12 in the response body, you need to specify "2" here.
- **limit** (optional)
  The "limit" parameter will return a specific number of projects (in between 0-100) in your response based on the value you provide. If there are 20 projects and you want to fetch only 10 projects, set the limit as 10.

#### Headers

- **authorization** (optional)
  Use a bearer token to authenticate if you're not using the authtoken header. Format: Bearer . If provided, the organization\_uid header isn't required.
- **authtoken** (optional)
  Use an authentication token if the Authorization header isn't provided. \*\*Requires the organization\_uid header.\*\* When using authtoken authentication, you must explicitly provide the organization\_uid header. The organization\_uid cannot be derived from project\_uid for Launch REST APIs.
- **x-cs-api-version** (optional)
  Enter the API version. Default is 1.0
- **organization_uid** (optional)
  ⚠️ \*\*REQUIRED when using authtoken authentication\*\* - you must explicitly provide this header. Optional with Authorization Bearer token (organization\_uid can be derived from the token).

#### Sample Response

```json
{
  "pagination": {
    "count": 3,
    "limit": 10,
    "skip": 0
  },
  "projects": [
    {
      "uid": "68a327xxxxxxxx9d0d3",
      "name": "Sample Project",
      "organizationUid": "blt483xxxxxxx3589",
      "repository": {
        "repositoryName": "test/Calculator",
        "username": "test",
        "repositoryUrl": "https://github.com/test/Calculator"
      },
      "deletedAt": null,
      "createdBy": "blt731xxxxxdc963",
      "updatedBy": "blt731xxxxxdc963",
      "deletedBy": null,
      "createdAt": "2025-08-18T13:17:18.261Z",
      "updatedAt": "2025-10-09T09:36:16.484Z",
      "projectType": "GITPROVIDER"
    },
    {
      "uid": "68b02f0xxxxxd6461d",
      "name": "music",
      "organizationUid": "blt483xxxxx83589",
      "repository": {
        "repositoryName": "test/music",
        "username": "test",
        "repositoryUrl": "https://github.com/test/music"
      },
      "deletedAt": null,
      "createdBy": "blt731xxxxxdc963",
      "updatedBy": "blt731xxxxxdc963",
      "deletedBy": null,
      "createdAt": "2025-08-28T10:27:15.850Z",
      "updatedAt": "2025-08-28T10:27:31.065Z",
      "projectType": "GITPROVIDER"
    },
    {
      "uid": "689597axxxxxx47673",
      "name": "nextjs-ssr-isr",
      "organizationUid": "blt483xxxxx83589",
      "repository": {
        "repositoryName": "test/nextjs-ssr-isr",
        "username": "test",
        "repositoryUrl": "https://github.com/test/nextjs-ssr-isr"
      },
      "deletedAt": null,
      "createdBy": "blt7315xxxxxxdc963",
      "updatedBy": "blt7315xxxxxxdc963",
      "deletedBy": null,
      "createdAt": "2025-08-08T06:22:25.536Z",
      "updatedAt": "2025-08-08T06:23:58.338Z",
      "projectType": "GITPROVIDER"
    }
  ]
}
```

## Create a Project

### Create a Project

**POST** `/projects`

The Create Project request creates a project in Launch using either a Git Provider or File Upload.

The examples below explain how to create projects using a Git Provider or the File Upload option.  
  

##### Create a Project by FileUpload:

```
{
  "name": "Sample file upload project",
  "environment": {
    "name": "Test Environment",
    "outputDirectory": "./_site",
    "frameworkPreset": "OTHER",
    "description": "It is a test environment.",
    "buildCommand": "npx @11ty/eleventy",
    "environmentVariables": [],
    "autoDeployOnPush": true
  },
  "projectType": "FILEUPLOAD",
  "description": "Sample description",
  "fileUpload": {
    "uploadUid": "50xxxxa8"
  }
}
```

To create a project using FileUpload, you must run the following APIs step-by-step:

1\. [Get a Signed Upload URL for a Project](https://www.contentstack.com/docs/developers/apis/launch-api#get-a-signed-upload-url-for-a-project).

2\. [Upload your ZIP file to Launch](https://www.contentstack.com/docs/developers/launch/upload-your-deployment-zip-file-to-launch) (The signed URL is valid only for 10 minutes).

#### Headers

- **authorization** (optional)
  Use a bearer token to authenticate if you're not using the authtoken header. Format: Bearer . If provided, the organization\_uid header isn't required.
- **authtoken** (optional)
  Use an authentication token if the Authorization header isn't provided. \*\*Requires the organization\_uid header.\*\* When using authtoken authentication, you must explicitly provide the organization\_uid header. The organization\_uid cannot be derived from project\_uid for Launch REST APIs.
- **x-cs-api-version** (optional)
  Enter the API version. Default is 1.0
- **organization_uid** (optional)
  ⚠️ \*\*REQUIRED when using authtoken authentication\*\* - you must explicitly provide this header. Optional with Authorization Bearer token (organization\_uid can be derived from the token).

#### Sample Response

```json
{
  "project": {
    "uid": "68a327xxxxxxxx9d0d3",
    "name": "Sample Project",
    "organizationUid": "blt483xxxxxxx3589",
    "repository": {
      "repositoryName": "TestUser20/eleventy-base-blog",
      "username": "TestUser20",
      "repositoryUrl": "https://github.com/TestUser20/eleventy-base-blog"
    },
    "deletedAt": null,
    "createdBy": "blt731xxxxxdc963",
    "updatedBy": "blt731xxxxxdc963",
    "deletedBy": null,
    "createdAt": "2025-08-18T13:17:18.261Z",
    "updatedAt": "2025-10-09T09:36:16.484Z",
    "projectType": "GITPROVIDER"
  }
}
```

## Get a Project

### Get a Project

**GET** `/projects/{project_uid}`

The Get a Project request fetches a specific project in Launch using the project\_uid path parameter.

#### URL Parameters

- **project_uid** (required)
  Enter the project\_uid of the project that you want to retrieve

#### Headers

- **authorization** (optional)
  Use a bearer token to authenticate if you're not using the authtoken header. Format: Bearer . If provided, the organization\_uid header isn't required.
- **authtoken** (optional)
  Use an authentication token if the Authorization header isn't provided. \*\*Requires the organization\_uid header.\*\* When using authtoken authentication, you must explicitly provide the organization\_uid header. The organization\_uid cannot be derived from project\_uid for Launch REST APIs.
- **x-cs-api-version** (optional)
  Enter the API version. Default is 1.0
- **organization_uid** (optional)
  ⚠️ \*\*REQUIRED when using authtoken authentication\*\* - you must explicitly provide this header. Optional with Authorization Bearer token (organization\_uid can be derived from the token).

#### Sample Response

```json
{
  "project": {
    "uid": "68a327xxxxxxxx9d0d3",
    "name": "Sample Project",
    "organizationUid": "blt483xxxxxxx3589",
    "repository": {
      "repositoryName": "TestUser20/eleventy-base-blog",
      "username": "TestUser20",
      "repositoryUrl": "https://github.com/TestUser20/eleventy-base-blog"
    },
    "deletedAt": null,
    "createdBy": "blt731xxxxxdc963",
    "updatedBy": "blt731xxxxxdc963",
    "deletedBy": null,
    "createdAt": "2025-08-18T13:17:18.261Z",
    "updatedAt": "2025-10-09T09:36:16.484Z",
    "projectType": "GITPROVIDER"
  }
}
```

## Update a Project

### Update a Project

**PUT** `/projects/{project_uid}`

The Update a Project request lets you update an existing project in your organization.

#### URL Parameters

- **project_uid** (required)
  Enter the project\_uid of the project that you want to update.

#### Headers

- **authorization** (optional)
  Use a bearer token to authenticate if you're not using the authtoken header. Format: Bearer . If provided, the organization\_uid header isn't required.
- **authtoken** (optional)
  Use an authentication token if the Authorization header isn't provided. \*\*Requires the organization\_uid header.\*\* When using authtoken authentication, you must explicitly provide the organization\_uid header. The organization\_uid cannot be derived from project\_uid for Launch REST APIs.
- **x-cs-api-version** (optional)
  Enter the API version. Default is 1.0
- **organization_uid** (optional)
  ⚠️ \*\*REQUIRED when using authtoken authentication\*\* - you must explicitly provide this header. Optional with Authorization Bearer token (organization\_uid can be derived from the token).

#### Sample Response

```json
{
  "project": {
    "uid": "68a327xxxxxxxx9d0d3",
    "name": "test",
    "organizationUid": "blt483xxxxxxx3589",
    "repository": {
      "repositoryName": "TestUser20/eleventy-base-blog",
      "username": "TestUser20",
      "repositoryUrl": "https://github.com/TestUser20/eleventy-base-blog"
    },
    "deletedAt": null,
    "createdBy": "blt731xxxxxdc963",
    "updatedBy": "blt731xxxxxdc963",
    "deletedBy": null,
    "createdAt": "2025-08-18T13:17:18.261Z",
    "updatedAt": "2025-10-09T09:36:16.484Z",
    "projectType": "GITPROVIDER",
    "description": "This is a test project."
  }
}
```

## Delete a Project

### Delete a Project

**DELETE** `/projects/{project_uid}`

The Delete a Project request lets you delete an existing project in your organization.

#### URL Parameters

- **project_uid** (required)
  Enter the project\_uid of the project that you want to delete.

#### Headers

- **authorization** (optional)
  Use a bearer token to authenticate if you're not using the authtoken header. Format: Bearer . If provided, the organization\_uid header isn't required.
- **authtoken** (optional)
  Use an authentication token if the Authorization header isn't provided. \*\*Requires the organization\_uid header.\*\* When using authtoken authentication, you must explicitly provide the organization\_uid header. The organization\_uid cannot be derived from project\_uid for Launch REST APIs.
- **x-cs-api-version** (optional)
  Enter the API version. Default is 1.0
- **organization_uid** (optional)
  ⚠️ \*\*REQUIRED when using authtoken authentication\*\* - you must explicitly provide this header. Optional with Authorization Bearer token (organization\_uid can be derived from the token).

#### Sample Response

```json
Project deleted successfully.
```

## Default

**PATCH** `/projects/{project_uid}/git-repository`

undefined

#### Headers

- **authorization** (optional)
  Use a bearer token to authenticate if you're not using the authtoken header. Format: Bearer . If provided, the organization\_uid header isn't required.
- **authtoken** (optional)
  Use an authentication token if the Authorization header isn't provided. \*\*Requires the organization\_uid header.\*\* When using authtoken authentication, you must explicitly provide the organization\_uid header. The organization\_uid cannot be derived from project\_uid for Launch REST APIs.
- **x-cs-api-version** (optional)
  Enter the API version. Default is 1.0
- **organization_uid** (optional)
  ⚠️ \*\*REQUIRED when using authtoken authentication\*\* - you must explicitly provide this header. Optional with Authorization Bearer token (organization\_uid can be derived from the token).

#### Sample Response

```json
200 response
```