# List projects

`GET /app/projects`

The workspace's projects.

Scope: `assets:read`. Paged: `page`, `limit` (100 by default, at most 500); `X-Total-Count`, `X-Page`, `X-Limit` headers.

## Parameters

- `page` (query, integer): The page, from 1.
- `limit` (query, integer): Rows per page: an API key or OAuth token gets 100 when it sends none, at most 500.

## Example

```bash
curl -X GET "https://api.fortwatch.ai/app/projects?limit=100" \
  -H "Authorization: Bearer $FORTWATCH_API_KEY"
```

## Response 200

The request succeeded.

- `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.
