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

# Create Project

`POST /api/v1/projects`

## Request

- Base URL: `https://core.mnemoverse.com`
- URL: `https://core.mnemoverse.com/api/v1/projects`
- Auth: API key in header `X-Admin-Key`

Create a project OWNED by the authenticated account (owner derived from the
session, never the body). The portal gatekeeper enforces the per-tier project
count before calling this.

Refuses a banned owner (core#633 adversarial review round 6, 2026-09-26):
belt-and-suspenders only — a project minted here still cannot escape the
owner's ban (SubscriptionGuardMiddleware/vault_routes resolve the ban via
the owner regardless of when the project was created), but there is no
reason to let a banned owner keep provisioning new buckets either.

## Request body

- CreateProjectRequest
  - `name` string, required: Project name (unique within the account).
  - `description` string, nullable

## Response `200`

Successful Response

- ProjectInfo
  - `project_id` string, required
  - `name` string, required
  - `storage_org_id` string, required
  - `is_archived` boolean, required

## Other responses

- `400`: Validation error
- `401`: Unauthorized
- `403`: Forbidden
- `404`: Not found
- `422`: Validation Error
- `429`: Rate limited
- `500`: Internal server error
- `503`: Service unavailable

---

[API](https://skmtc.dev/mnemoverse/apis/mnemoverse-core.md) · [All operations](https://skmtc.dev/mnemoverse/apis/mnemoverse-core/llms.txt) · [OpenAPI document](https://skmtc.dev/mnemoverse/apis/mnemoverse-core/revisions/1f5e0048f017?raw)
