---
title: "Create a deployment"
method: POST
path: "/projects/{projectId}/deploys"
tags: ["Internal"]
---

# Create a deployment

`POST /projects/{projectId}/deploys`

## Request

- Base URL: `https://api.grapesjs.com/v1`
- URL: `https://api.grapesjs.com/v1/projects/{projectId}/deploys`
- Auth: HTTP bearer

Publishes the project's saved editor files to the specified deploy target and creates a deployment record. A deploy target must be created before a deployment can be requested.

## Request body

- CreateDeploymentRequest
  - `deployTargetId` string, required

## Response `201`

Deployment created successfully

- DeploymentResponse
  - `deployment` Deployment, required
    - `id` string, required: Deployment record ID.
    - `deployTargetId` string, required
    - `providerId` 'default', required: Deploy provider identifier. Omit this field to use the default provider.
    - `status` 'queued' | 'building' | 'ready' | 'error' | 'canceled' | 'unknown', required
    - `url` string, nullable, required
    - `inspectorUrl` string, nullable, required
    - `error` string, nullable, required
    - `createdAt` string, date-time, required

## Other responses

- `400`: Invalid request
- `401`: Unauthorized
- `404`: Resource not found
- `500`: Server error

---

[API](https://skmtc.dev/grapesjs/apis/studio-platform-api.md) - [All operations](https://skmtc.dev/grapesjs/apis/studio-platform-api/llms.txt) - [OpenAPI document](https://skmtc.dev/grapesjs/apis/studio-platform-api/revisions/acc4ffe35e2d?raw)
