---
title: "Create Project"
method: POST
path: "/api/projects/"
tags: ["projects"]
---

# Create Project

`POST /api/projects/`

## Request

- Base URL: `https://api.pcbgenerator.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.pcbgenerator.com/api/projects/`
- Auth: HTTP bearer

Create a new project (or upsert if ID already exists).

## Request body

- ProjectCreate: Request model for creating a project.
  - `id` string, required: Unique project ID (designId from frontend)
  - `name` string: Project name
  - `current_phase` integer: Current phase number
  - `completed_phases` integer[]: List of completed phase numbers
  - `phase_data` object: Phase data as JSONB
  - `progress` integer: Progress percentage
  - `created_at_local` string, nullable: Local timestamp without timezone
  - `updated_at_local` string, nullable: Local timestamp without timezone
  - `timezone` string, nullable: IANA timezone string (e.g., 'America/New_York')

## Response `200`

Successful Response

- ProjectResponse: Response model for project metadata (excludes phase_data for list views).
  - `id` string, required
  - `name` string, required
  - `current_phase` integer, required
  - `completed_phases` integer[], required
  - `progress` integer, required
  - `created_at` string, required
  - `updated_at` string, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/pcbgenerator/apis/pcb-stackup-generator-api.md) · [All operations](https://skmtc.dev/pcbgenerator/apis/pcb-stackup-generator-api/llms.txt) · [OpenAPI document](https://skmtc.dev/pcbgenerator/apis/pcb-stackup-generator-api/revisions/b6084b3ace32?raw)
