---
title: "Search Reports"
method: GET
path: "/v1/report/"
tags: ["Reports"]
---

# Search Reports

`GET /v1/report/`

## Request

- Base URL: `https://developer.beta.salussafety.io`
- URL: `https://developer.beta.salussafety.io/v1/report/`
- Auth: one of:
  - HTTP bearer
  - OAuth 2
    - Client credentials
    - Token URL: `https://guardian.beta.salussafety.io/token`
  - OAuth 2
    - Authorization code: `https://guardian.beta.salussafety.io/authorize`
    - Token URL: `https://guardian.beta.salussafety.io/token`

Search reports, most recent first.

Returns summaries — the details bag and observation ids are omitted. Fetch
a single report to get those.

## Query parameters

- `status` string, nullable: Filter by lifecycle status.
- `site_id` integer, nullable: Filter to a specific site/project id.
- `observation_id` string, nullable: Only reports covering this observation UUID.
- `created_from` string, date-time, nullable: Lower bound on creation time.
- `created_to` string, date-time, nullable: Upper bound on creation time.
- `query` string: Keyword matched against title and summary.
- `limit` integer
- `skip` integer

## Response `200`

Successful Response

- ApiGenericResponsePaginatedResponseReportModel
  - `error` boolean: A boolean error indicator.
  - `message` string, nullable: Optional message.
  - `data` PaginatedResponseReportModel
    - `results` ReportModel[], required
      - `id` string, required: Report UUID.
      - `companyId` integer, required
      - `userId` integer, required
      - `siteId` integer, nullable
      - `aiAgentRunId` integer, nullable
      - `workflowId` string, nullable
      - `status` string, required
      - `startedAt` string, date-time, nullable
      - `completedAt` string, date-time, nullable
      - `errorDetail` string, nullable
      - `title` string, nullable
      - `summary` string, nullable
      - `details` object
      - `s3Key` string, nullable
      - `mimeType` string, nullable
      - `filename` string, nullable
      - `observationIds` string[]: UUIDs of the observations this report covers, in sort order. Populated by get_report; empty in search results, which return summaries only.
      - `createdAt` string, date-time, nullable
      - `updatedAt` string, date-time, nullable
    - `total` integer, required
    - `current_page` integer, required
    - `page_size` integer, required
    - `total_pages` integer, required
    - `has_more` boolean, required

## Other responses

- `400`: Business Logic Error
- `403`: Permission Error
- `409`: Integrity Error or Data Conflict
- `422`: Validation Error

## Changes

- **2026-11-03** `9ee72e046aa1`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/salussafety/apis/salus-developer-api/changes/v1/report/get.md)

---

[API](https://skmtc.dev/salussafety/apis/salus-developer-api.md) - [All operations](https://skmtc.dev/salussafety/apis/salus-developer-api/llms.txt) - [OpenAPI document](https://skmtc.dev/salussafety/apis/salus-developer-api/revisions/9ee72e046aa1?raw)
