---
title: "Create project"
method: POST
path: "/applications/v1/projects"
tags: ["Applications Projects"]
---

# Create project

`POST /applications/v1/projects`

Creates a new application project, validates GitHub access, provisions a default case.dev domain, and starts the deployment workflow. The initial response returns as soon as the workflow is queued so clients can poll for progress.

## Request body

- object
  - `name` string, required — Human-readable project name
  - `gitRepo` string, required — GitHub repository URL or owner/repo identifier
  - `gitBranch` string — Git branch to deploy. Defaults to main.
  - `framework` string — Framework preset for the hosting project, such as nextjs or remix
  - `buildCommand` string — Custom build command to override the framework default
  - `installCommand` string — Custom install command to override the framework default
  - `outputDirectory` string — Build output directory relative to the project root
  - `rootDirectory` string — Repository subdirectory that contains the app to deploy
  - `environmentVariables` object[] — Environment variables to create before the first deployment
    - `key` string, required — Environment variable name
    - `value` string, required — Environment variable value
    - `target` string[], required — Deployment targets that should receive this variable
    - `type` 'plain' | 'encrypted' | 'secret' — Storage mode for the environment variable value

## Response `200`

Project created and deployment workflow started

## Other responses

- `400` — Project input is invalid or GitHub is not connected
- `401` — Invalid API key
- `403` — API key does not have access to compute service
- `404` — GitHub repository not found or not accessible

---

[API](https://skmtc.dev/casemark/apis/case-dev-api.md) · [All operations](https://skmtc.dev/casemark/apis/case-dev-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/casemark/case-dev-api/revisions/d6e66a8fa14e/schema)
