---
title: Kataloglauf starten
description: Einen neuen Katalog-Scope-Lauf auslösen — wertet alle Produkte neu aus. Ab Growth. Idempotency-Key unterstützt. Status abfragen mit GET runs/{id}.
canonical: "https://www.tracepass.eu/de/docs/start-catalogue-run"
locale: de
source: "https://www.tracepass.eu/de/docs/start-catalogue-run"
---

# Kataloglauf starten

> Einen neuen Katalog-Scope-Lauf auslösen — wertet alle Produkte neu aus. Ab Growth. Idempotency-Key unterstützt. Status abfragen mit GET runs/{id}.

```http
POST /api/v1/scope/catalogue/runs
```

Löst einen neuen Katalog-Scope-Lauf aus, der den ganzen Katalog gegen die aktuellen Regeln neu prüft. Der Lauf reiht sich sofort ein und wird asynchron ausgeführt; die Antwort ist 202 mit einer `runId` zum Abfragen. Der Katalog wird auch automatisch jede Nacht aktualisiert.

Erfordert Growth oder höher. Idempotency-Key wird berücksichtigt: Denselben Schlüssel innerhalb von 24 Stunden wiederverwenden, um den ursprünglichen Lauf zurückzubekommen. 409 `run_in_progress` wenn ein Lauf bereits läuft. 429 `run_cooldown` mit `retryAfter` wenn ein Lauf weniger als 10 Minuten zurückliegt.

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `Authorization` | header | string | yes | `Bearer <token>` — entweder ein `tp_` API-Schlüssel (Developer → API Keys; am einfachsten, für Server-zu-Server) oder ein OAuth-2.0-Access-Token (Developer → OAuth Apps; für nutzerautorisierte Apps, scoped und widerrufbar). Die Authentication-Seite enthält den vollständigen OAuth-Flow und die Scope-Liste. |
| `Idempotency-Key` | header | string | no | UUID v4 pro logischer Laufanforderung. Wiederverwendung innerhalb 24 Stunden gibt denselben Lauf zurück. |

## Examples

```bash
curl -sS -X POST https://app.tracepass.eu/api/v1/scope/catalogue/runs \
  -H "Authorization: Bearer tp_REDACTED_xxxxxxxxxxxx" \
  -H "Idempotency-Key: 7b4f1e2c-9a3d-4e5b-8c1a-2d3e4f5a6b7c"
```

```typescript
import { randomUUID } from "node:crypto";
const res = await fetch("https://app.tracepass.eu/api/v1/scope/catalogue/runs", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.TRACEPASS_API_KEY}`,
    "Idempotency-Key": randomUUID(),
  },
});
const { runId, status } = await res.json();
// Poll GET /api/v1/scope/catalogue/runs/{runId} until status === "done"
```

```python
import os, uuid, requests
resp = requests.post(
    "https://app.tracepass.eu/api/v1/scope/catalogue/runs",
    headers={
        "Authorization": f"Bearer {os.environ['TRACEPASS_API_KEY']}",
        "Idempotency-Key": str(uuid.uuid4()),
    },
)
run = resp.json()  # { runId, status }
```

## Responses

### 202 — Lauf eingereiht

```json
{ "runId": "6acbb533c5553f06d833479e", "status": "queued" }
```

### 409 — Lauf bereits aktiv

```json
{ "error": "run_in_progress", "message": "A catalogue run is already queued or running.", "runId": "6acbb533c5553f06d833479e", "run": null }
```

### 429 — Lauf-Abkühlzeit

```json
{ "error": "run_cooldown", "message": "A catalogue run finished a few minutes ago. Try again shortly.", "retryAfter": 600, "run": { "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 } }
```

### 403 — Plan-Upgrade erforderlich

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

## Related

- [GET Laufstatus](https://www.tracepass.eu/de/docs/get-catalogue-run.md)
- [GET Katalogbericht](https://www.tracepass.eu/de/docs/scope-catalogue.md)
