# List assessment reports

`GET /app/assessments`

The workspace's assessment reports, newest first, with their status and share link.

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

## Parameters

- `scopeType` (query, string | null, required) One of: `workspace`, `project`, `asset`.
- `scopeId` (query, integer)
- `limit` (query, string)
- `page` (query, number)

## Example

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

## Response 200

The request succeeded.

- `reports` (object[], required)
  - `id` (number, required)
  - `workspaceId` (number, required)
  - `scopeType` (string, required)
  - `scopeId` (number | null, required)
  - `scopeName` (string, required)
  - `status` (string, required)
  - `error` (string | null, required)
  - `trigger` (string, required)
  - `createdByUserId` (number | null, required)
  - `shareExpiresAt` (string (date-time) | null, required)
  - `shareRevokedAt` (string (date-time) | null, required)
  - `generatedAt` (string (date-time) | null, required)
  - `createdAt` (string (date-time), required)
  - `updatedAt` (string (date-time), required)
  - `createdByUser` (object)
    - `firstName` (string, required)
    - `lastName` (string, required)
  - `hasNarrative` (boolean, required)
  - `shareUrl` (object | null, required)
  - `sharePdfUrl` (object | null, required)
  - `shareLive` (boolean, required)
  - `data` (object | null)
  - `narrative` (object | null)

```json
{
  "reports": [
    {
      "id": 42,
      "workspaceId": 42,
      "scopeType": "string",
      "scopeId": 42,
      "scopeName": "string",
      "status": "string",
      "error": "string",
      "trigger": "string",
      "createdByUserId": 42,
      "shareExpiresAt": "2026-10-16T12:00:00.000Z",
      "shareRevokedAt": "2026-10-16T12:00:00.000Z",
      "generatedAt": "2026-10-16T12:00:00.000Z",
      "createdAt": "2026-10-16T12:00:00.000Z",
      "updatedAt": "2026-10-16T12:00:00.000Z",
      "createdByUser": {
        "firstName": null,
        "lastName": null
      },
      "hasNarrative": true,
      "shareUrl": {},
      "sharePdfUrl": {},
      "shareLive": true,
      "data": {},
      "narrative": {}
    }
  ]
}
```

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