---
title: Get catalogue run status
description: Poll a catalogue scope run for its status (queued, running, done, failed) and evaluation counts. Growth and up.
canonical: "https://www.tracepass.eu/docs/get-catalogue-run"
locale: en
source: "https://www.tracepass.eu/docs/get-catalogue-run"
---

# Get catalogue run status

> Poll a catalogue scope run for its status (queued, running, done, failed) and evaluation counts. Growth and up.

```http
GET /api/v1/scope/catalogue/runs/{id}
```

Returns the status and evaluation counts for one catalogue scope run. Poll this endpoint after `POST /api/v1/scope/catalogue/runs` until `status` is `done` or `failed`. Once done, the fresh results are available via `GET /api/v1/scope/catalogue`. A run belonging to another company returns 404.

Requires Growth or higher (`scopeCatalogueEnabled`). Does not count against daily caps.

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `Authorization` | header | string | yes | `Bearer <token>` — either a `tp_` API key (Developer → API Keys; simplest, for server-to-server) or an OAuth 2.0 access token (Developer → OAuth Apps; for user-authorized apps, scoped + revocable). The Authentication page has the full OAuth flow and scope list. |
| `id` | path | string | yes | The run ID from `POST /api/v1/scope/catalogue/runs`. |

## Examples

```bash
curl -sS https://app.tracepass.eu/api/v1/scope/catalogue/runs/6728abc123def456789abcde \
  -H "Authorization: Bearer tp_REDACTED_xxxxxxxxxxxx"
```

```typescript
const res = await fetch(
  `https://app.tracepass.eu/api/v1/scope/catalogue/runs/${runId}`,
  { headers: { Authorization: `Bearer ${process.env.TRACEPASS_API_KEY}` } },
);
const { status, counts } = await res.json();
```

```python
import os, requests
resp = requests.get(
    f"https://app.tracepass.eu/api/v1/scope/catalogue/runs/{run_id}",
    headers={"Authorization": f"Bearer {os.environ['TRACEPASS_API_KEY']}"},
)
run = resp.json()
```

## Responses

### 200 — Run status

```json
{
  "id": "6acbb533c5553f06d833479e",
  "trigger": "manual",
  "status": "done",
  "rulesFingerprint": "86a23cce6480bffb91d360b7a199b473",
  "counts": { "evaluated": 1, "distinctFactSets": 1, "changed": 1, "removed": 0, "answersChanged": 0 },
  "createdAt": "2026-10-11T16:11:31.583Z",
  "startedAt": "2026-10-11T16:11:31.588Z",
  "finishedAt": "2026-10-11T16:11:31.619Z",
  "error": null
}
```

### 404 — Run not found

```json
{ "error": "not_found" }
```

### 403 — Plan upgrade required

```json
{ "error": "plan_upgrade_required", "feature": "scopeCatalogueEnabled", "message": "The catalogue scope check is available from the Growth plan." }
```

## Related

- [POST Start catalogue run](https://www.tracepass.eu/docs/start-catalogue-run.md)
- [GET Catalogue report](https://www.tracepass.eu/docs/scope-catalogue.md)
