---
title: Deine Compliance-Integration entwerfen
url: https://platform.claude.com/docs/de/manage-claude/compliance-integration-patterns
description: Wähle zwischen Polling und cursorgesteuerter Nutzung des Activity Feeds, korreliere Compliance-API-Ereignisse mit deinem SIEM und plane die Aufbewahrung.
---

<Note>
  Wie du die Compliance API aktivierst, erfährst du unter [Compliance API einrichten](https://platform.claude.com/docs/de/manage-claude/compliance-api-access).
</Note>

<Check>
  **Erforderlicher Scope:** `read:compliance_activities` auf dem Compliance Access Key oder Admin-API-Key.
</Check>

Eine produktive Compliance-API-Integration trifft drei Designentscheidungen: wie sie den Activity Feed konsumiert, wie ihre Ausgabe mit deinem „security information and event management“-System (Sicherheitsinformations- und Ereignismanagement), oder SIEM, korreliert und wo langfristige Kopien von Aktivitäten und Inhalten liegen. Diese Entscheidungen sind unabhängig von den Endpunkten selbst; diese Seite hilft dir, die Abwägungen zu bewerten.

Diese Seite setzt voraus, dass du die folgenden Seiten gelesen hast:

* [Den Activity Feed abfragen](https://platform.claude.com/docs/de/manage-claude/compliance-activity-feed), die die Parameter und den Paginierungsvertrag definiert, auf die hier durchgehend verwiesen wird.
* [Chats, Dateien und Projekte abrufen und löschen](https://platform.claude.com/docs/de/manage-claude/compliance-content-data), die die Chat-, Datei- und Projekt-Endpunkte sowie die `deleted_at`-Semantik definiert, auf die in [Aufbewahrung von Inhalten planen](https://platform.claude.com/docs/de/manage-claude/compliance-integration-patterns#plan-content-retention) verwiesen wird.
* [Sitzungstranskripte abrufen](https://platform.claude.com/docs/de/manage-claude/compliance-sessions), die die Endpunkte für lokale und Remote-Sitzungen definiert.

## Ein Muster für die Feed-Nutzung wählen

Der Activity Feed unterstützt zwei Nutzungsmuster: periodisches „window polling“ (Fenster-Polling), begrenzt durch `created_at.gte` und `created_at.lt`, sowie cursorgesteuerte inkrementelle Lesevorgänge, die einen Cursor aus einer Antwort persistieren und ihn bei der nächsten Anfrage übergeben. Beide liefern identische `Activity`-Objekte; der Unterschied liegt im Zustand, den dein Client zwischen den Aufrufen persistiert.

Beide Muster teilen diese Einschränkungen:

* Aktivitäten sind innerhalb von 1 Minute nach ihrem Auftreten abfragbar und werden 6 Jahre lang aufbewahrt. Die Aufzeichnung erfolgt nicht rückwirkend: Sie beginnt, wenn die Compliance API erstmals für deine Organisation aktiviert wird, und Aktivitäten aus der Zeit vor der Aktivierung werden nicht nachträglich aufgefüllt.
* Das maximale `limit` pro Seite beträgt 5.000.
* Cursor-Werte sind opake Zeichenketten, die du nicht parsen darfst.
* Anfragen sind auf 600 pro Minute pro [übergeordneter Organisation](https://platform.claude.com/docs/de/manage-claude/compliance-api#how-the-compliance-api-works) begrenzt, geteilt über alle Keys, alle verknüpften Organisationen und alle `/v1/compliance/*`-Endpunkte hinweg; anders als die Endpunkte für lokale Sitzungen tragen die Endpunkte für Remote-Sitzungen zusätzlich ein zweites Anfragebudget. Siehe [429 Too Many Requests](https://platform.claude.com/docs/de/manage-claude/compliance-errors#429-too-many-requests) für die Antwort-Header und den Retry-Vertrag.

| Muster                                      | Wähle es, wenn                                                                                                                                                                                                                                                                |
| ------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Fenster-Polling                             | Deine Pipeline nach einem festen Zeitplan läuft, du zustandslose Worker bevorzugst und du das erneute Abspielen oder Überlappen von Fenstern tolerieren kannst                                                                                                                |
| Cursorgesteuerte inkrementelle Lesevorgänge | Du die geringste Latenz zwischen dem Auftreten einer Aktivität und ihrer Aufnahme durch deine Pipeline möchtest, du das erneute Lesen bereits abgearbeiteter Seiten vermeiden möchtest und du einen dauerhaften Ort hast, um einen Cursor zwischen den Läufen zu persistieren |

### Fenster-Polling

Setze `created_at.lt` mindestens 1 Minute in die Vergangenheit, damit jede Aktivität im Fenster bereits abfragbar ist. Verwende `created_at.gte` für die untere Grenze und `created_at.lt` für die obere Grenze, damit aufeinanderfolgende Fenster lückenlos und ohne Überlappung aneinander anschließen; verwende den `lt`-Wert des vorherigen Fensters als `gte` des nächsten Fensters wieder.

```bash cURL
curl --fail-with-body -sS -G \
  "https://api.anthropic.com/v1/compliance/activities" \
  --header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
  --header "anthropic-version: 2023-06-01" \
  --data-urlencode "created_at.gte=2026-04-20T07:00:00Z" \
  --data-urlencode "created_at.lt=2026-04-20T08:00:00Z" \
  --data-urlencode "limit=5000"
```

Wenn die Antwort `has_more: true` enthält, umfasst das Fenster mehr als eine Seite an Aktivitäten. Paginiere entweder innerhalb des Fensters, indem du die `last_id` der Antwort als `after_id` bei der nächsten Anfrage übergibst (und aufhörst, wenn `has_more` `false` ist), oder wähle ein kleineres Zeitfenster. Siehe [Ergebnisse paginieren](https://platform.claude.com/docs/de/manage-claude/compliance-activity-feed#paginate-results) für den vollständigen Vertrag.

Selbst bei sauberem Aneinanderreihen erscheint eine Aktivität, die erst indexiert wird, nachdem ihr Fenster geschlossen wurde, nie in einem späteren Fenster. Dedupliziere anhand der Aktivitäts-`id` und erweitere entweder jedes neue Fenster so, dass es das vorherige um einige Minuten überlappt, oder führe einen periodischen Abgleichslauf durch, der ein älteres Fenster erneut abfragt.

<Warning>
  Eine `created_at.lt`-Grenze, die zu nah an der Gegenwart liegt, verwirft spät indexierte Aktivitäten stillschweigend und dauerhaft: Sobald `created_at.gte` über sie hinaus fortschreitet, kann kein späteres Fenster sie wiederherstellen. Behandle die Angabe von 1 Minute bis zur Abfragbarkeit als die dokumentierte Indexierungsverzögerung, nicht als weiche Empfehlung.
</Warning>

### Cursorgesteuerte inkrementelle Lesevorgänge

```bash cURL
first_id="activity_01XyDMpzjS89pFZXqSFUBDr6"  # first_id from a previous response

curl --fail-with-body -sS -G \
  "https://api.anthropic.com/v1/compliance/activities" \
  --header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
  --header "anthropic-version: 2023-06-01" \
  --data-urlencode "limit=5000" \
  --data-urlencode "before_id=$first_id"
```

Blättere durch, bis `has_more` `false` ist, persistiere dann `first_id` aus der letzten Antwort und übergib sie unverändert als `before_id` beim nächsten Lauf, um Aktivitäten abzurufen, die neuer als der gespeicherte Cursor sind. Um für ein Backfill in die entgegengesetzte Richtung zu gehen, persistiere stattdessen `last_id` und übergib sie als `after_id`. Die vollständige Referenz zu Cursor vs. Page-Token und die Retry-Semantik findest du unter [Ergebnisse paginieren](https://platform.claude.com/docs/de/manage-claude/compliance-activity-feed#paginate-results).

Eine produktive **Catch-up**-Schleife ruft die seit deinem letzten Poll aufgezeichneten Aktivitäten ab, indem sie die Iteration über `has_more` und `first_id` steuert:

```text
cursor = stored_cursor
loop:
  page = GET /v1/compliance/activities?before_id={cursor}&limit=5000
  store(page.data)
  if page.first_id is not null:
    cursor = page.first_id
  if not page.has_more: break
persist(cursor)
```

Cursor überstehen die Key-Rotation; siehe [Keys verwalten und rotieren](https://platform.claude.com/docs/de/manage-claude/compliance-api-access#manage-and-rotate-keys).

<Warning>
  Jede Seite grenzt an den Cursor an, den du übergibst: Die Schleife bewegt sich vorwärts in Richtung Gegenwart, eine Seite nach der anderen. Behandle eine einzelne Antwort nicht als aufgeholt, solange `has_more` `true` ist. Persistiere den Cursor erst, nachdem `has_more` `false` ist; die nicht abgerufenen Seiten sind die neueren zwischen der `first_id` dieser Antwort und der Gegenwart, und sie bleiben ungelesen, bis du die Schleife beendest oder erneut ausführst.
</Warning>

## Mit deinem SIEM korrelieren

Jede `Activity` trägt Felder, die du mit bereits in deinem SIEM (Splunk, Datadog, Microsoft Sentinel, Cribl oder ähnlich) vorhandenen Ereignissen verknüpfen kannst:

| Compliance-API-Feld   | Verknüpfungsziel                                                                |
| --------------------- | ------------------------------------------------------------------------------- |
| `actor.user_id`       | Die stabile Benutzerkennung deines Identitätsanbieters                          |
| `actor.email_address` | Verzeichnis-E-Mail, wenn keine stabile ID verfügbar ist                         |
| `actor.ip_address`    | Netzwerk-, VPN- und Endpunkt-Logs                                               |
| `actor.user_agent`    | Endpunkt- und Geräteinventar sowie die Client-App, die die Anfrage gestellt hat |
| `created_at`          | Zeitfenster-Korrelation über beliebige Quellen hinweg                           |

`actor.user_id` und `actor.email_address` sind vorhanden, wenn `actor.type` `user_actor` ist. `actor.ip_address` und `actor.user_agent` fehlen bei einigen Akteurtypen, etwa `anthropic_actor` und `scim_directory_sync_actor`. Prüfe den Diskriminator, bevor du eines dieser Felder liest. `user_id` ist eine stabile, opake Kennung für das Benutzerkonto: Sie ist über alle Compliance-API-Endpunkte und Aktivitäts-Payloads hinweg konsistent und ändert sich nicht, wenn sich die E-Mail oder der Anzeigename des Benutzers ändert. Verwende `user_id`, nicht `email_address`, als primären Verknüpfungsschlüssel.

Aufrufe der Compliance API selbst erzeugen `compliance_api_accessed`-Aktivitäten. Nimm diese zusammen mit anderen Aktivitätstypen auf, damit dein SIEM aufzeichnet, wer wann Compliance-Daten abgefragt hat. Übergib `activity_types[]=compliance_api_accessed`, um die Abfrage einzugrenzen, und lies dann in deinem Client `actor.api_key_id` aus jeder Aktivität, deren `actor.type` `api_actor` ist, um den Zugriff einem bestimmten Compliance Access Key oder Admin-API-Key zuzuordnen.

## Aufbewahrung von Inhalten planen

Fünf Aufbewahrungshorizonte bestimmen, was du später abrufen kannst:

| Daten                                                                   | Aufbewahrt für                                                                                                                                                                                                  | Gesteuert von                                                                                     |
| ----------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- |
| Activity-Feed-Einträge                                                  | 6 Jahre                                                                                                                                                                                                         | Anthropic                                                                                         |
| Chat-, Datei- und Projektinhalte                                        | Die claude.ai-Aufbewahrungsrichtlinie deiner Organisation, sofern ein Benutzer sie nicht früher löscht                                                                                                          | Deine Organisation                                                                                |
| Transkripte lokaler Sitzungen (Sitzungen auf den Rechnern der Benutzer) | Standardmäßig 6 Jahre oder der benutzerdefinierte Aufbewahrungszeitraum für Unterhaltungen deiner Organisation, wenn ein endlicher festgelegt ist; 30 Tage in Organisationen mit aktivierter HIPAA-Bereitschaft | Standardmäßig Anthropic; deine Organisation, wenn sie einen benutzerdefinierten Zeitraum festlegt |
| Transkripte von Remote-Sitzungen (Sitzungen in der Cloud)               | 6 Jahre, sofern ein Benutzer die Sitzung nicht früher löscht                                                                                                                                                    | Anthropic                                                                                         |
| Über die Compliance API endgültig gelöschte Inhalte                     | Nicht aufbewahrt; die Löschung erfolgt sofort und dauerhaft                                                                                                                                                     | Der Aufrufer des `DELETE`-Endpunkts                                                               |

Wie der Rest der Claude Platform mit Aufbewahrung umgeht, erfährst du unter [API und Datenaufbewahrung](https://platform.claude.com/docs/de/manage-claude/api-and-data-retention).

Entscheide wie folgt zwischen Export-und-Archivierung und API-Abruf bei Bedarf:

* Wenn dein „legal hold" (rechtliche Aufbewahrungspflicht) oder dein Audit-Horizont für Aktivitätsmetadaten oder Sitzungstranskripte 6 Jahre überschreitet, exportiere Activity-Feed-Seiten und Sitzungstranskripte bei der Aufnahme in dein eigenes Archiv.
* Wenn deine Aufbewahrungsrichtlinie für Inhalte kürzer ist als dein eDiscovery-Horizont, exportiere Chat- und Dateiinhalte, bevor das Aufbewahrungsfenster abläuft; die Compliance API kann keine Inhalte zurückgeben, die durch die Aufbewahrung bereits entfernt wurden. Dasselbe gilt für lokale Sitzungstranskripte, die dem benutzerdefinierten Aufbewahrungszeitraum für Unterhaltungen deiner Organisation folgen, wenn ein endlicher Zeitraum festgelegt ist, selbst wenn dieser Zeitraum kürzer als 6 Jahre ist. Die Endpunkte für lokale Sitzungen geben keine Nachrichten mehr zurück, die älter als der aktuelle Zeitraum deiner Organisation sind, sobald sich die Einstellung ändert, und eine spätere Verlängerung des Zeitraums stellt bereits abgelaufene Transkripte nicht wieder her. Exportiere daher jedes Transkript, das du darüber hinaus aufbewahren musst.
* Wenn du Chat-Inhalte oder Remote-Sitzungstranskripte aufbewahren musst, nachdem Benutzer sie in claude.ai gelöscht haben (zum Beispiel im Rahmen eines Legal Hold), exportiere Chat-, Datei-, Artefakt- und Remote-Sitzungsinhalte bei der Aufnahme in dein eigenes Archiv; die Compliance API kann keine Inhalte zurückgeben, die ein Benutzer bereits gelöscht hat.
* Wenn ein Workflow eine endgültige Löschung über die Compliance API auslösen könnte (zum Beispiel bei der DLP-Durchsetzung), rufe die Zielinhalte zuerst ab und archiviere sie. Nach einer endgültigen Löschung gibt es kein Wiederherstellungsfenster.

In allen anderen Fällen verlasse dich auf den direkten API-Abruf und vermeide es, eine parallele Kopie zu pflegen.

### Zustellgarantien und Vollständigkeit

Behandle den Activity Feed als **at-least-once** (mindestens einmal): Ein korrekt paginierter Durchlauf liefert jede Aktivität mindestens einmal, aber ein Retry nach einem Teilausfall kann Aktivitäten erneut zustellen, die du bereits gespeichert hast. Dedupliziere anhand des `id`-Felds der Aktivität.

Die List-Endpunkte geben weder ein `total_count`-Feld noch eine Prüfsumme zurück. Um zu belegen, dass ein Exportlauf vollständig ist, protokolliere:

* Den Start-Cursor und die abschließende `last_id`.
* Die Anzahl der exportierten Datensätze.
* Den Zeitstempel des Laufs und die `request-id` der letzten Seite.

Das Aktivitätsvolumen ist keine Vollständigkeitsprüfung. Die `claude_*_viewed`-Aktivitätstypen, etwa `claude_chat_viewed`, folgen dem Lademuster der jeweiligen App (siehe [Das Activity-Objekt verstehen](https://platform.claude.com/docs/de/manage-claude/compliance-activity-feed#understand-the-activity-object)). Ein Zeitraum mit Chat-Nachrichten, aber ohne `claude_chat_viewed`-Aktivitäten, deutet für sich allein nicht auf fehlende Daten hin. Verlasse dich stattdessen auf den Durchlauf und den unter [Fenster-Polling](https://platform.claude.com/docs/de/manage-claude/compliance-integration-patterns#window-polling) beschriebenen Überlappungs- oder Abgleichslauf.

Die Inhalts-Endpunkte (Chats, Dateien, Projekte, Projektanhänge sowie Transkripte lokaler und Remote-Sitzungen) liefern ausschließlich Claude-Enterprise-Daten. Der Activity Feed zeigt administrative und Ressourcen-Ereignisse organisationsweit an. Die Compliance API umfasst nicht:

* Prompt-Texte oder Modellantworten aus der Claude Console oder aus Claude-API-Workloads, die mit einem API-Key authentifiziert sind.
* Aktivitäten auf dem Gerät in lokalen Sitzungen, die nie an Anthropic gesendet werden, etwa lokale Dateien, die Claude nicht gelesen hat.
* Claude Code-Nutzung, die mit einem Claude Console-API-Key authentifiziert ist, über eine Cloud-Plattform eines Drittanbieters (Amazon Bedrock, Google Cloud oder Microsoft Foundry) ausgeführt wird oder in einer [Claude Code-Cloud-Sitzung](https://code.claude.com/docs/de/claude-code-on-the-web) läuft, die auf Cloud-Infrastruktur statt auf dem Rechner des Benutzers ausgeführt wird.
* Lokale Sitzungen von anderen Produkten als Cowork und Claude Code in Organisationen mit aktivierter [HIPAA-Bereitschaft](https://platform.claude.com/docs/de/manage-claude/api-and-data-retention#hipaa-readiness) sowie lokale Sitzungen, für die [„zero data retention" (Null-Datenaufbewahrung)](https://platform.claude.com/docs/de/manage-claude/api-and-data-retention#zero-data-retention-zdr-scope) gilt.
* Thinking-Blöcke sowie Bilder oder andere Binärinhalte innerhalb von Sitzungstranskripten (Transkripte enthalten nur Benutzer-Prompts, Assistentenantworten und Tool-Aktivitäten; Transkripte lokaler Sitzungen zeigen einen Platzhalter-`text`-Block an der Stelle, an der Binärinhalte ausgelassen wurden).
* Die Originaldatei eines Chat-Anhangs, den claude.ai als extrahierten Text gespeichert hat, etwa bei einigen Word-, PowerPoint- und PDF-Uploads (der Endpunkt für Dateiinhalte gibt den extrahierten Text zurück; siehe [Dateien und Artifacts abrufen](https://platform.claude.com/docs/de/manage-claude/compliance-content-data#retrieve-files-and-artifacts)).
* Den System-Prompt lokaler Sitzungen (eine Markierungsnachricht steht stellvertretend dafür).
* Tool-Definitionen und MCP-Serverkonfiguration in Sitzungstranskripten (lokal oder remote) sowie Zitationsmetadaten in `text`-Blöcken in Transkripten lokaler Sitzungen.
* Transkriptinhalte lokaler Sitzungen in einer Organisation, deren [„customer-managed encryption key" (kundenverwalteter Verschlüsselungsschlüssel)](https://platform.claude.com/docs/de/manage-claude/cmek) derzeit nicht verwendet werden kann. Diese Anfragen geben [503 Service Unavailable](https://platform.claude.com/docs/de/manage-claude/compliance-errors#local-sessions-temporarily-unavailable) zurück, und Sitzungsmetadaten werden weiterhin aufgelistet.
* Inhalte, die durch die Aufbewahrungsrichtlinie deiner Organisation entfernt wurden.
* Inhalte von Chats, die Benutzer in claude.ai löschen (die Chats werden weiterhin aufgelistet, wobei `deleted_at` befüllt ist).
* Remote-Sitzungen, die Benutzer löschen (gelöschte Sitzungen werden nicht mehr aufgelistet, und der Nachrichten-Endpunkt gibt für sie 404 zurück).
* Über die Compliance API endgültig gelöschte Inhalte.

Mehr dazu, was die Compliance API erfasst und was nicht, findest du in den [Compliance-API-FAQ](https://platform.claude.com/docs/de/manage-claude/compliance-faq#data-coverage-and-retention).

Für die Beweiskette (Chain of Custody) speichere die exportierten Datensätze mit Herkunftsmetadaten: Quell-Endpunkt, Abfrageparameter, Zeitstempel des Laufs und einen Inhalts-Hash jedes Datensatzes.

## Nächste Schritte

<CardGroup cols={2}>
  <Card title="Den Activity Feed abfragen" href="https://platform.claude.com/docs/de/manage-claude/compliance-activity-feed">
    Filterparameter, Paginierung und das Schema des `Activity`-Objekts.
  </Card>

  <Card title="Chats, Dateien und Projekte abrufen und löschen" href="https://platform.claude.com/docs/de/manage-claude/compliance-content-data">
    Die Chat-, Datei- und Projekt-Endpunkte, einschließlich harter Löschung.
  </Card>

  <Card title="Sitzungstranskripte abrufen" href="https://platform.claude.com/docs/de/manage-claude/compliance-sessions">
    Liste die Sitzungen auf, die deine Benutzer in Claude-Apps und -Agenten wie Cowork und Claude Code ausführen, und rufe ihre Transkripte ab.
  </Card>
</CardGroup>
