---
title: "Get a report"
method: GET
path: "/v1/reports/{id}"
tags: ["Reports"]
---

# Get a report

`GET /v1/reports/{id}`

## Request

- Base URL: `https://api.squirrelscan.com`
- URL: `https://api.squirrelscan.com/v1/reports/{id}`
- Auth: one of:
  - HTTP bearer
  - none

Fetch report metadata. Public and unlisted reports are readable without auth; private reports require a bearer token belonging to the owner (a non-owner gets 404, never revealing existence).

## Path parameters

- `id` string, required

## Response `200`

Report metadata.

- Report
  - `id` string, required
  - `baseUrl` string, uri, required
  - `healthScore` integer, nullable
  - `pageCount` integer, nullable
  - `errorCount` integer, nullable
  - `warningCount` integer, nullable
  - `passedCount` integer, nullable
  - `visibility` 'public' | 'unlisted' | 'private', required
  - `viewCount` integer, nullable
  - `auditedAt` string, date-time, nullable
  - `createdAt` string, date-time, required
  - `url` string, uri, required

## Other responses

- `404`: Resource not found (or hidden from the caller).
- `429`: Too many requests. Retry after the window resets. (Rate limiting is planned — issue #69 — these headers document the intended contract.)

---

[API](https://skmtc.dev/squirrelscan/apis/squirrelscan-public-api.md) · [All operations](https://skmtc.dev/squirrelscan/apis/squirrelscan-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/squirrelscan/apis/squirrelscan-public-api/revisions/82c8183fe8bc?raw)
