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

# Create a project

`POST /api/v1/projects`

## Request

- Base URL: `https://api.past.dev`
- URL: `https://api.past.dev/api/v1/projects`
- Auth: HTTP bearer

Create a project from a display name. The slug is derived from the name and never changes.

## Request body

- CreateProjectRequest
  - `name` string, required: Display name with at least two letters or digits. The slug is derived from it.

## Response `201`

The created project.

- Project
  - `slug` string, required
  - `name` string, required
  - `description` string, required
  - `isArchived` boolean, required
  - `memoryCount` integer, required
  - `ingestionCap` integer, nullable, required: The project's monthly data-point cap. Null when the project carries none.
  - `monthIngestions` integer, required: Data points accepted this calendar month.
  - `creditCap` integer, nullable, required: The project's monthly credit cap. Null when the project carries none.
  - `monthCredits` number, required: Credits spent this calendar month.
  - `createdAt` string, date-time, required

## Other responses

- `400`: The request is malformed or violates a field constraint. Match behavior on the response code field.
- `401`: missing-api-key: no bearer. malformed-api-key: the header or the key has the wrong shape. unauthorized: the key is unknown, expired, revoked, or is a project key. These routes take the management key.
- `402`: The plan's projects are all in use, archived projects included.
- `default`: Any other failure uses the same JSON error envelope.

---

[API](https://skmtc.dev/past/apis/past-dev-memory-api.md) · [All operations](https://skmtc.dev/past/apis/past-dev-memory-api/llms.txt) · [OpenAPI document](https://skmtc.dev/past/apis/past-dev-memory-api/revisions/3ddccc19f0eb?raw)
