# Create a project

`POST /app/projects`

A name unique in the workspace (1 to 255 characters), an optional description and color.

Scope: `assets:write`.

## Request body

- `name` (string, required)
- `description` (string | null)
- `color` (string | null)

## Example

```bash
curl -X POST "https://api.fortwatch.ai/app/projects" \
  -H "Authorization: Bearer $FORTWATCH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Production",
  "description": "string",
  "color": "string"
}'
```

## Response 201

Created.

- `id` (number, required)
- `workspaceId` (number, required)
- `name` (string, required)
- `description` (string | null, required)
- `color` (string, required)
- `createdAt` (string (date-time), required)
- `updatedAt` (string (date-time), required)
- `_count` (object, required)
  - `assets` (number, required)

```json
{
  "id": 42,
  "workspaceId": 42,
  "name": "Production",
  "description": "string",
  "color": "string",
  "createdAt": "2026-10-16T12:00:00.000Z",
  "updatedAt": "2026-10-16T12:00:00.000Z",
  "_count": {
    "assets": 1
  }
}
```

## Errors

- 400: The request is not valid: a field is missing or has the wrong shape (the message names it).
- 401: No valid credentials: the API key or access token is missing, revoked or expired (INVALID_API_KEY, INVALID_TOKEN).
- 403: Not allowed: the key or token lacks this scope (SCOPE_REQUIRED), the route is dashboard-only (SESSION_REQUIRED), or a plan limit applies.
- 429: Too many requests (RATE_LIMITED): wait the seconds Retry-After gives.
