---
title: "Get the catalogue scope report."
method: GET
path: "/api/v1/scope/catalogue"
tags: ["Scope"]
---

# Get the catalogue scope report.

`GET /api/v1/scope/catalogue`

## Request

- Base URL: `https://app.tracepass.eu`
- URL: `https://app.tracepass.eu/api/v1/scope/catalogue`
- Auth: one of:
  - HTTP bearer
  - OAuth 2 (authorization code, authorization URL `https://app.tracepass.eu/api/oauth/authorize`, token URL `https://app.tracepass.eu/api/oauth/token`, scopes: `passports:read`)

Returns the most recent catalogue scope run results: for each
passport/product pair evaluated, whether it is in scope, the
applicable regulation article, and whether the scope status
changed since the last run.

Paginated via cursor. Each page counts as one v1 passport read
against the daily cap.

Auth: Bearer API key OR OAuth with `passports:read`. Requires the
Growth plan or higher (`scopeCatalogueEnabled`); returns 403 with
`error: plan_upgrade_required` when the plan gate is not met.

## Query parameters

- `classification` 'missing' | 'draft_only' | 'published_incomplete' | 'published' | 'not_required' | 'open_questions' | 'not_covered'
- `category` string
- `changed` boolean
- `cursor` string
- `limit` integer

## Headers

- `Authorization` string, required

## Response `200`

Catalogue scope report page.

- object
  - `run` object, required: Metadata of the most recent completed run.
    - `id` string, required
    - `finishedAt` string, date-time, required
    - `rulesFingerprint` string, required: Hash of the rule set used for this run.
  - `running` object, nullable, required: The currently active run when one is queued or running; `null` when no run is in progress.
    - `id` string
    - `status` 'queued' | 'running'
    - `trigger` 'manual' | 'nightly' | 'rules_change'
    - `createdAt` string, date-time
  - `totals` object, required
    - `rows` integer, required: Total number of product rows evaluated.
    - `byClassification` object, required: Product count per passport classification.
      - `missing` integer
      - `draft_only` integer
      - `published_incomplete` integer
      - `published` integer
      - `not_required` integer
      - `open_questions` integer
      - `not_covered` integer
    - `tiles` object, required: Product count per dashboard tile (includes `changed`).
      - `now` integer
      - `later` integer
      - `waiting` integer
      - `not_required` integer
      - `depends` integer
      - `not_covered` integer
      - `changed` integer
  - `items` object[], required
    - `productId` string, required
    - `productName` string, required
    - `category` string, required
    - `gtin` string, nullable, required
    - `passportIds` string[], required
    - `passportCount` integer, required
    - `publishedCount` integer, required
    - `summary` object, required: Condensed scope result for this product.
      - `status` 'answered' | 'needs_input' | 'not_covered'
      - `inScope` 'yes' | 'no' | 'depends' | 'pending' | 'null', nullable
      - `governing` object: Primary governing act (at minimum `celex`; may carry `appliesFrom`).
      - `alsoApplies` object[]
      - `openQuestions` string[]: Fact keys the answer still needs.
      - `ruleStatus` 'verified' | 'needs_recheck' | 'draft'
    - `classification` 'missing' | 'draft_only' | 'published_incomplete' | 'published' | 'not_required' | 'open_questions' | 'not_covered', required
    - `changed` boolean, required: Whether this product's classification changed in the last run.
    - `changedAt` string, date-time, nullable, required: Timestamp of the last classification change.
  - `nextCursor` string, nullable, required: Opaque pagination cursor for the next page; `null` on the last page.
  - `disclaimer` string, required

## Other responses

- `400`: Invalid query parameter. The `field` property names the offending parameter; `allowed` lists valid values for enums.
- `401`: Missing or invalid API key.
- `403`: Plan upgrade required. The catalogue scope check is available from the Growth plan.
- `429`: Daily passport-read cap reached.

---

[API](https://skmtc.dev/tracepass/apis/tracepass-api.md) · [All operations](https://skmtc.dev/tracepass/apis/tracepass-api/llms.txt) · [OpenAPI document](https://skmtc.dev/tracepass/apis/tracepass-api/revisions/60ddeb25638b?raw)
