<!-- https://developers.silktide.com/v1/governance/reports/list-reports | Governance / Reports -->

# List reports

`GET /v1/reports`

Returns every report the API key's user can see, with no paging. It lists live reports (dashboards) and snapshots together; tell them apart by `isLive`.

Snapshots a [report schedule](https://developers.silktide.com/v1/governance/report-schedules.md) made are here too, with that schedule's `reportScheduleId`.

`context` is `[]`, not `{}`, when a report has no context of its own. Its shape for each `contextTypeId` is in [Context](https://developers.silktide.com/v1/concepts/context.md). `creatorAssigneeId` is an [assignee](https://developers.silktide.com/v1/platform/assignees.md) id.

To read what a report shows, use [Get a report's results](https://developers.silktide.com/v1/governance/reports/get-report-results.md).

## Response

Status `200`.

- `reports` (list of objects, required): Every report the API key's user can see, live reports and snapshots alike.
  - `reportId` (integer, required, at least 1): The report.
  - `reportTemplateId` (string, required, 1 to 16 characters): The report template it is made from.
  - `reportScheduleId` (integer, required): The report schedule that made it. `0` when it was not made by a schedule.
  - `contextTypeId` (string, required): What kind of thing it covers, copied from its template: `website`, `websites`, `account` or `property`. One of: `website`, `websites`, `account`, `property`.
  - `name` (string, required, at least 1 characters): Its name.
  - `thumbnailUrl` (string, required): A small screenshot of it. Empty until one is made, a few minutes after a snapshot is created.
  - `startTime` (integer, required): For a snapshot, the start of the dates it covers. `0` for a live report.
  - `endTime` (integer, required): For a snapshot, the end of the dates it covers. `0` for a live report.
  - `durationInterval` (string, required): The unit of how far back it looks. One of: `day`, `week`, `month`, `year`.
  - `durationPeriod` (integer, required, 0 to 90): How many `durationInterval`s back it looks. `week` and `4` cover the last four weeks.
  - `created` (integer, required): When it was created.
  - `creatorAssigneeId` (string, required): The assignee who created it: a user (`u:`), an API key (`a:`), or `system` for those Silktide made itself.
  - `context` (object or map of any JSON or empty list, required): What it covers, in the shape its `contextTypeId` takes: `{"websiteId": 3, "sectionId": 0}` for one website, `{"criteria": {...}}` for several. `[]` when it has none.
    - `websiteId` (integer, required, at least 1): The website.
    - `sectionId` (integer, required): One of its sections. `0` for the whole website.
  - `isLive` (boolean, required): `true` for a live report (a dashboard), which is built afresh each time it is read. `false` for a snapshot, built once when it is created.
  - `version` (integer, required, at least 1): The version of the format it is stored in, which Silktide uses to upgrade older reports. Nothing to act on.

## Errors

| Status | Type | When |
| --- | --- | --- |
| 403 | `EditionNotAvailable` | The account does not have Silktide 4. Reports, report schedules and report templates are Silktide 4's, so an account with only Silktide 5 cannot use them. |
| 401 | `NotLoggedIn` | No API key was sent, or it is not a key for this region. |
| 429 | `TooManyRequests` | Too many requests to this path in five seconds. Retry after the number of seconds in the `Retry-After` header, which `properties.retryAfter` repeats. |
| 503 | - | Silktide is busy. Retry after the number of seconds in the `Retry-After` header. |

## Access

- Permission: any user of the account
- Plan feature: none
- Edition: Silktide 4 only
- Cost: free
- Stability: stable, since 1.0.0

## Example: A live report and a snapshot

```bash
curl "https://api.eu.silktide.com/v1/reports" \
  -H "Authorization: silktide token=$SILKTIDE_API_KEY"
```

Response:

```json
{
  "reports": [
    {
      "reportId": 1,
      "reportTemplateId": "websites",
      "reportScheduleId": 0,
      "contextTypeId": "websites",
      "name": "Websites dashboard",
      "thumbnailUrl": "",
      "startTime": 0,
      "endTime": 0,
      "durationInterval": "day",
      "durationPeriod": 90,
      "created": 1790402302,
      "creatorAssigneeId": "system",
      "context": [],
      "isLive": true,
      "version": 3
    },
    {
      "reportId": 6,
      "reportTemplateId": "spelling",
      "reportScheduleId": 0,
      "contextTypeId": "website",
      "name": "Spelling report for Wine Barrel",
      "thumbnailUrl": "https://example-bucket.s3.amazonaws.com/reports/6/thumb.webp",
      "startTime": 1791643553,
      "endTime": 1794235553,
      "durationInterval": "day",
      "durationPeriod": 30,
      "created": 1794235553,
      "creatorAssigneeId": "u:eu-12",
      "context": {
        "websiteId": 3,
        "sectionId": 0
      },
      "isLive": false,
      "version": 3
    }
  ]
}
```
