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

# Create a project

`POST /api/v1/projects`

## Request

- Base URL: `https://index365.co`
- URL: `https://index365.co/api/v1/projects`
- Auth: HTTP bearer

Create a domain-anchored project in the key's organization. Requires projects:write. Idempotent by domain: re-creating an active or paused domain returns the existing project. Re-creating an archived domain restores the original project row to active with its history and keys intact, returning restored=true. A brand-new project returns 201. Project-pinned keys cannot create.

## Request body

- object
  - `domain` string, required
  - `name` string

## Response `200`

Idempotent: a project for that domain already existed (idempotent=true). An archived project was reactivated when restored=true.

## Other responses

- `201`: Project created.
- `400`: invalid_json | invalid_domain.
- `401`: Missing/unknown/revoked API key.
- `403`: insufficient_scope | project_scoped_key.
- `409`: project_limit_reached | project_exists.
- `429`: Rate limit exceeded (60 req/min per key). Honor Retry-After.

---

[API](https://skmtc.dev/index365/apis/index365-api.md) · [All operations](https://skmtc.dev/index365/apis/index365-api/llms.txt) · [OpenAPI document](https://skmtc.dev/index365/apis/index365-api/revisions/87dd7b85edcb?raw)
