---
title: "Create a project"
method: POST
path: "/api/v1/projects"
tags: ["workspace"]
---

# Create a project

`POST /api/v1/projects`

## Request

- Base URL: `https://mdtidy.com`
- URL: `https://mdtidy.com/api/v1/projects`
- Auth: HTTP bearer

## Request body

- CreateProjectRequest
  - `name` string, required
  - `description` string

## Response `201`

Project created.

- Project
  - `id` string, uuid, required
  - `type` 'project', required
  - `name` string, required
  - `description` string, nullable, required
  - `file_count` integer, required
  - `folder_count` integer, required
  - `archived` boolean, required
  - `visibility` 'private' | 'public' | 'restricted', required
  - `public_url` string, nullable, required: `https://mdtidy.com/p/{slug}` when public; null otherwise.
  - `shared_by` string, nullable: Owner display name; only on scope=shared items.
  - `created_at` string, required
  - `updated_at` string, required

## Other responses

- `401`: X-API-KEY is malformed, unknown, or revoked.
- `409`: Name collision, stale write, or a resource limit was reached.
- `422`: Request body failed validation.
- `429`: Per-key rate limit (60/min) exceeded.

---

[API](https://skmtc.dev/mdtidy/apis/markdown-tidy-api.md) · [All operations](https://skmtc.dev/mdtidy/apis/markdown-tidy-api/llms.txt) · [OpenAPI document](https://skmtc.dev/mdtidy/apis/markdown-tidy-api/revisions/caeec6fad155?raw)
