---
title: Sitzungstranskripte abrufen
url: https://platform.claude.com/docs/de/manage-claude/compliance-sessions
description: Liste die Sitzungen auf, die deine Benutzer in Claude-Apps und -Agenten wie Claude Cowork und Claude Code ausführen, und rufe ihre Transkripte über die Compliance API ab.
---

<Note>
  Die Endpunkte auf dieser Seite sind nur für Claude Enterprise-Organisationen verfügbar. Die Endpunkte für lokale und Remote-Sitzungen sind für Cowork-, Claude Code- und Claude for Microsoft 365-Sitzungen stabil; die Abdeckung von Claude Science- und Claude in Chrome-Sitzungen befindet sich in der Beta-Phase. Die Endpunkte funktionieren mit demselben Compliance Access Key und demselben Scope `read:compliance_user_data` wie die [Chat-, Datei- und Projekt-Endpunkte](https://platform.claude.com/docs/de/manage-claude/compliance-content-data); es ist kein neuer Key, kein neuer Scope, keine neue Einstellung und kein Client-Update erforderlich. Siehe [Die Compliance API einrichten](https://platform.claude.com/docs/de/manage-claude/compliance-api-access).
</Note>

<Check>
  **Erforderlicher Scope:** `read:compliance_user_data` für den Compliance Access Key.

  **Voraussetzung:** Keine, um Sitzungen organisationsweit aufzulisten. Um die Liste der Remote-Sitzungen (Sitzungen in der Cloud) auf bestimmte Benutzer zu filtern, benötigst du Benutzer-IDs aus [Organisationsbenutzer auflisten](https://platform.claude.com/docs/de/manage-claude/compliance-org-data#list-organization-users); die Liste der lokalen Sitzungen hat keinen Benutzerfilter.
</Check>

Die Endpunkte auf dieser Seite stellen Compliance-Prüfern Transkripte der Sitzungen zur Verfügung, die deine Benutzer in Claude-Apps und -Agenten (derzeit: Cowork, Claude Code, Claude Science, Claude for Microsoft 365 und Claude in Chrome) in deinen Claude Enterprise-Organisationen ausführen. Jede Sitzung ist eine einzelne Unterhaltung mit Claude; ihr Transkript ist die Abfolge von Benutzer-Prompts, Assistentenantworten sowie Tool-Aufrufen und -Ergebnissen in dieser Unterhaltung. Die Endpunkte unterstützen Exporte für „eDiscovery" (elektronische Beweiserhebung) und die Durchsetzung von „data loss prevention" (Verhinderung von Datenverlust), oder DLP.

Die Compliance API gruppiert Sitzungen je nach Ausführungsort in zwei Endpunktfamilien: Endpunkte für lokale Sitzungen für Sitzungen auf den Rechnern der Benutzer und Endpunkte für Remote-Sitzungen für Sitzungen, die in der Cloud in von Anthropic verwalteten Umgebungen laufen. Beide Familien sind schreibgeschützt, und keine ist für Admin-API-Keys (`sk-ant-admin01-...`) verfügbar: Aufrufe, die mit einem Admin-API-Key authentifiziert werden, geben [403 Forbidden](https://platform.claude.com/docs/de/manage-claude/compliance-errors#403-forbidden) zurück.

Die folgende Tabelle ordnet jedes Produkt und seinen Ausführungsort der Endpunktfamilie zu, die seine Sitzungen zurückgibt, sowie dem `product_surface`-Wert, der sie in Antworten identifiziert. Produkte werden dieser Tabelle hinzugefügt, wenn die Abdeckung erweitert wird.

| Produkt und Ausführungsort                                                                                                                     | Endpunktfamilie                                                        | `product_surface`                                                                                                                                            |
| ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Cowork in Claude Desktop, ausgeführt auf dem Rechner des Benutzers                                                                             | Endpunkte für lokale Sitzungen (`/v1/compliance/apps/sessions/local`)  | `cowork`                                                                                                                                                     |
| Claude Code im Terminal, in Claude Desktop oder in einer IDE-Erweiterung, ausgeführt auf dem Rechner des Benutzers                             | Endpunkte für lokale Sitzungen                                         | `claude_code`                                                                                                                                                |
| Claude Science-Desktop-App, ausgeführt auf dem Rechner des Benutzers                                                                           | Endpunkte für lokale Sitzungen                                         | `claude_science`                                                                                                                                             |
| Claude for Microsoft 365 (die Claude-Add-ins für Excel, PowerPoint, Word und Outlook), ausgeführt in den Microsoft 365-Desktop- oder -Web-Apps | Endpunkte für lokale Sitzungen                                         | `office_agents/excel`, `office_agents/powerpoint`, `office_agents/word` oder `office_agents/outlook` (`office_agents`, wenn die App nicht identifiziert ist) |
| Claude in Chrome (der integrierte Chat der Browsererweiterung), ausgeführt auf dem Rechner des Benutzers                                       | Endpunkte für lokale Sitzungen                                         | `claude_in_chrome`                                                                                                                                           |
| Cowork-Sitzungen, die auf claude.ai im Web oder mobil gestartet wurden, ausgeführt in der Cloud in von Anthropic verwalteten Umgebungen        | Endpunkte für Remote-Sitzungen (`/v1/compliance/apps/sessions/remote`) | `cowork_remote`                                                                                                                                              |

Die Erfassung lokaler Sitzungen ist daran gebunden, dass die Compliance API für deine Organisation aktiviert ist, und gilt, solange Benutzer mit ihrem Claude Enterprise-Konto angemeldet sind. Die Sitzungsendpunkte geben Folgendes nicht zurück:

* Claude Code-Sitzungen, die mit einem Claude Console-API-Key authentifiziert sind oder über eine Cloud-Plattform eines Drittanbieters wie Amazon Bedrock, Google Cloud oder Microsoft Foundry ausgeführt werden.
* [Claude Code-Cloud-Sitzungen](https://code.claude.com/docs/de/claude-code-on-the-web) (einschließlich Claude Code-Routinen, die in der Cloud laufen), die auf Cloud-Infrastruktur statt auf dem Rechner des Benutzers laufen. Diese Cloud-Sitzungen sind keine Remote-Sitzungen, obwohl beide in der Cloud laufen; die Endpunkte für Remote-Sitzungen geben nur Cowork-Sitzungen zurück.
* Lokale Sitzungen aus anderen Produkten als Cowork und Claude Code in Organisationen, in denen [HIPAA-Bereitschaft](https://platform.claude.com/docs/de/manage-claude/api-and-data-retention#hipaa-readiness) aktiviert ist. In diesen Organisationen geben die Endpunkte für lokale Sitzungen nur Cowork- und Claude Code-Sitzungen zurück, und erfasste Sitzungsinhalte werden 30 Tage lang gespeichert.
* Lokale Sitzungen, für die [„zero data retention" (Null-Datenaufbewahrung), oder ZDR](https://platform.claude.com/docs/de/manage-claude/api-and-data-retention#zero-data-retention-zdr-scope), gilt. Diese Sitzungen sind von den Listenergebnissen ausgeschlossen, und die Abruf- und Nachrichten-Endpunkte geben für sie 404 zurück.

Anthropic empfiehlt die Compliance API zum Abrufen von Sitzungsinhalten. Die folgende Tabelle vergleicht [lokale Sitzungen](https://platform.claude.com/docs/de/manage-claude/compliance-sessions#retrieve-local-sessions) und [Remote-Sitzungen](https://platform.claude.com/docs/de/manage-claude/compliance-sessions#retrieve-remote-sessions) mit den OpenTelemetry-basierten Alternativen, die für Cowork und Claude Code verfügbar sind: [Coworks OpenTelemetry-Protokollierung](https://support.claude.com/en/articles/14477985-monitor-claude-cowork-activity-with-opentelemetry) und [Claude Code-Monitoring](https://code.claude.com/docs/de/monitoring-usage).

|                                                          | Lokale Sitzungen (auf den Rechnern der Benutzer)                                                                                                                                                                                                    | Remote-Sitzungen (in der Cloud)                                                                                                                                               | OpenTelemetry-Protokollierung                                                                                             |
| -------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
| Bereitstellung                                           | Pull: Abfrage und Export über HTTPS                                                                                                                                                                                                                 | Pull: Abfrage und Export über HTTPS                                                                                                                                           | Push: Streaming an deinen OTLP-Collector                                                                                  |
| Einrichtung                                              | Funktioniert mit deinem bestehenden Compliance Access Key                                                                                                                                                                                           | Funktioniert mit deinem bestehenden Compliance Access Key                                                                                                                     | Admin konfiguriert einen OTLP-Endpunkt und Einstellungen zur Inhaltserfassung                                             |
| Infrastruktur                                            | Von Anthropic gehostet                                                                                                                                                                                                                              | Von Anthropic gehostet                                                                                                                                                        | Du betreibst Collector und Speicher                                                                                       |
| ID-Präfix                                                | `clls_`                                                                                                                                                                                                                                             | `cse_`                                                                                                                                                                        | N/A                                                                                                                       |
| `product_surface`-Werte                                  | `cowork`, `claude_code`, `claude_science`, `claude_in_chrome` und Werte, die mit `office_agents` beginnen                                                                                                                                           | `cowork_remote`                                                                                                                                                               | N/A                                                                                                                       |
| Aufbewahrung                                             | Standardmäßig 6 Jahre oder der benutzerdefinierte Aufbewahrungszeitraum für Unterhaltungen deiner Organisation, wenn ein endlicher Zeitraum festgelegt ist; 30 Tage in Organisationen mit aktivierter HIPAA-Bereitschaft; von Anthropic gespeichert | 6 Jahre, sofern ein Benutzer die Sitzung nicht früher löscht; von Anthropic gespeichert                                                                                       | Deine Infrastruktur, deine Richtlinien                                                                                    |
| Benutzer-Prompts und Assistentenantworten                | Ja                                                                                                                                                                                                                                                  | Ja                                                                                                                                                                            | Ja, abhängig von den Einstellungen zur Inhaltserfassung                                                                   |
| Tool-Eingaben                                            | Standardmäßig auf 10.000 Bytes pro Eingabe gekürzt; auf Anfrage bis zu etwa 1 MiB                                                                                                                                                                   | Standardmäßig auf 10.000 Bytes pro Eingabe gekürzt; auf Anfrage bis zu etwa 1 MiB                                                                                             | Gekürzte Zusammenfassungen                                                                                                |
| Inhalt von Tool-Ergebnissen                              | Jeder Texteintrag standardmäßig auf 10.000 Bytes gekürzt; auf Anfrage bis zu etwa 1 MiB                                                                                                                                                             | Jeder Texteintrag standardmäßig auf 10.000 Bytes gekürzt; auf Anfrage bis zu etwa 1 MiB                                                                                       | Metadaten wie Größe und Erfolg; Claude Code kann mit einer optionalen, größenbegrenzten Einstellung auch Inhalte erfassen |
| Dateiinhalte                                             | Ja, über Tool-Aufrufe im Transkript (nur Text; andere Inhalte erscheinen als Platzhalter)                                                                                                                                                           | Ja, über Tool-Aufrufe im Transkript (nur Text; andere Inhalte werden ausgelassen)                                                                                             | Dateipfade; Claude Code kann mit einer optionalen, größenbegrenzten Einstellung auch Inhalte erfassen                     |
| Host- und Gerätemetadaten (Terminaltyp, Workspace-Pfade) | Nein                                                                                                                                                                                                                                                | Nein                                                                                                                                                                          | Ja                                                                                                                        |
| Token-Nutzung und Kosten                                 | Nein; verfügbar über die [Claude Enterprise Analytics API](https://platform.claude.com/docs/de/manage-claude/analytics-api#get-access-to-the-claude-enterprise-analytics-api)                                                                       | Nein; verfügbar über die [Claude Enterprise Analytics API](https://platform.claude.com/docs/de/manage-claude/analytics-api#get-access-to-the-claude-enterprise-analytics-api) | Ja                                                                                                                        |

## Sitzungen auf den Rechnern der Benutzer (lokale Sitzungen)

Lokale Sitzungen laufen auf den Rechnern der Benutzer, während diese mit ihrem Claude Enterprise-Konto angemeldet sind: derzeit Cowork in Claude Desktop, Claude Code (im Terminal, in Claude Desktop oder in einer IDE-Erweiterung), die Claude Science-Desktop-App, Claude for Microsoft 365 (in Excel, PowerPoint, Word und Outlook) und die Browsererweiterung Claude in Chrome.

Die Compliance API stellt lokale Sitzungen über drei Endpunkte bereit: `GET /v1/compliance/apps/sessions/local` listet Sitzungsmetadaten auf, `GET /v1/compliance/apps/sessions/local/{session_id}` ruft die Metadaten einer Sitzung ab, und `GET /v1/compliance/apps/sessions/local/{session_id}/messages` gibt das Transkript einer Sitzung zurück. Alle drei erfordern den Scope `read:compliance_user_data` und werden nur auf das gemeinsame „rate limit" (Ratenlimit) der Compliance API angerechnet; sie unterliegen nicht dem zweiten Anfragebudget, das für die Endpunkte für Remote-Sitzungen gilt. Siehe [429 Too Many Requests](https://platform.claude.com/docs/de/manage-claude/compliance-errors#429-too-many-requests). Wenn lokale Sitzungen für deine übergeordnete Organisation nicht verfügbar sind, geben alle drei Endpunkte 404 mit der Meldung `Local sessions are not available.` zurück (siehe [Lokale Sitzung nicht gefunden](https://platform.claude.com/docs/de/manage-claude/compliance-errors#local-session-not-found)); solange Sitzungslisten oder erfasste Inhalte vorübergehend nicht verfügbar sind, geben sie 503 zurück (siehe [Lokale Sitzungen vorübergehend nicht verfügbar](https://platform.claude.com/docs/de/manage-claude/compliance-errors#local-sessions-temporarily-unavailable)).

Bei lokalen Sitzungen zeichnet Anthropic jede Unterhaltung serverseitig auf, sobald ihre Anfragen die Claude API erreichen; auf dem Gerät wird nichts installiert, und es wird nichts über die Anfragen hinaus erfasst, die der Client ohnehin an die Claude API sendet. Transkripte lokaler Sitzungen zeigen, worum Claude gebeten wurde und was es zurückgegeben hat, nicht was auf dem Gerät passiert ist. Datei- und Netzwerkaktivität ist nur über die Tool-Aufrufe und Tool-Ergebnisse im Transkript sichtbar, sodass Aktivität, die die API nie erreicht (zum Beispiel lokale Dateien, die die Sitzung nie gesendet hat), nicht erfasst wird.

In Organisationen, die [„customer-managed encryption keys" (kundenverwaltete Verschlüsselungsschlüssel)](https://platform.claude.com/docs/de/manage-claude/cmek) verwenden, werden Transkripte lokaler Sitzungen mit deinem kundenverwalteten Schlüssel verschlüsselt und wie gewohnt zurückgegeben. Solange dieser Schlüssel nicht verwendet werden kann (zum Beispiel, weil du ihn deaktiviert oder widerrufen hast oder weil er nicht erreichbar ist), gibt der Nachrichten-Endpunkt für die betroffenen Seiten [503 Service Unavailable](https://platform.claude.com/docs/de/manage-claude/compliance-errors#local-sessions-temporarily-unavailable) statt Transkriptinhalten zurück. Diese Nachrichten werden nie als `not_captured` gemeldet (siehe [Transkript einer lokalen Sitzung abrufen](https://platform.claude.com/docs/de/manage-claude/compliance-sessions#retrieve-a-local-session-transcript)). Das Auflisten von Sitzungen und das Abrufen von Sitzungsmetadaten sind nicht betroffen.

Der Listen-Endpunkt gibt Sitzungsmetadaten ohne Transkriptinhalte für jede verknüpfte Organisation zurück, die dein Key lesen kann. Anders als die Liste der Remote-Sitzungen hat er keine Organisations- oder Benutzerfilter: Begrenze die Ergebnisse zeitlich mit `created_at.gte`, `created_at.gt`, `created_at.lt` und `created_at.lte`. Jeder dieser Parameter akzeptiert einen RFC-3339-Zeitstempel mit einem erforderlichen UTC-Offset. Wenn du sowohl eine Unter- als auch eine Obergrenze angibst, muss die Obergrenze nach der Untergrenze liegen (oder ihr gleich sein, wenn du `created_at.gte` mit `created_at.lte` verwendest), sonst gibt die Anfrage [400 Bad Request](https://platform.claude.com/docs/de/manage-claude/compliance-errors#400-bad-request) zurück. Ein separater Zeitfilter, `updated_at.gte`, begrenzt nach der letzten statt der ersten Aktivität: Er gibt Sitzungen zurück, deren letzter Inferenzaufruf zum angegebenen Zeitpunkt oder danach liegt, und lässt sich mit den `created_at`-Filtern kombinieren, ohne Sortierung oder Paginierung zu ändern. Verwende ihn, um nach Sitzungen zu pollen, die seit einem vorherigen Durchlauf aktiv waren, wie später in diesem Abschnitt beschrieben. Neue Sitzungen und Nachrichten erscheinen nach einer kurzen Verarbeitungsverzögerung in den Ergebnissen, typischerweise innerhalb von Minuten; eine Sitzung, die unmittelbar nach ihrem Start fehlt, ist nicht zwangsläufig nicht erfasst. Die folgende Anfrage listet Sitzungen auf, die seit einem bestimmten Datum erstellt wurden.

```bash cURL
curl --fail-with-body -sS -G \
  "https://api.anthropic.com/v1/compliance/apps/sessions/local" \
  --header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
  --header "anthropic-version: 2023-06-01" \
  --data-urlencode "created_at.gte=2026-07-01T00:00:00Z" \
  --data-urlencode "limit=100"
```

```json Response
{
  "data": [
    {
      "type": "compliance_local_session",
      "id": "clls_01HxKpLmNoPqRsTuVwXyZaBc",
      "organization_uuid": "9a1e0000-0000-0000-0000-000000000000",
      "workspace_id": "wrkspc_01SvYKoWVRVHoEbwESNvzYdR",
      "user": {
        "id": "user_01GpKpLmNoPqRsTuVwXyZaBc",
        "email_address": "engineer@example.com"
      },
      "product_surface": "cowork",
      "created_at": "2026-07-09T14:02:11Z",
      "updated_at": "2026-07-09T14:02:38Z"
    },
    {
      "type": "compliance_local_session",
      "id": "clls_01HyLqMnOpQrStUvWxYzAbCd",
      "organization_uuid": "9a1e0000-0000-0000-0000-000000000000",
      "workspace_id": null,
      "user": {
        "id": "user_01HqRsTuVwXyZaBcDeFgHiJk",
        "email_address": null
      },
      "product_surface": "claude_code",
      "created_at": "2026-07-08T09:15:43Z",
      "updated_at": "2026-07-08T09:52:10Z"
    }
  ],
  "next_page": "page_AAEfQx7mPdLkq9Rt2VwHbZk"
}
```

Die Ergebnisse sind in umgekehrt chronologischer Reihenfolge (neueste zuerst) nach `created_at` sortiert, wobei Gleichstände in einer festen serverseitigen Reihenfolge aufgelöst werden, und auf `limit` Ergebnisse pro Antwort begrenzt (Standard 100, Maximum 500). Der Endpunkt paginiert nur vorwärts mit `page`- und `next_page`-Tokens (siehe [Ergebnisse paginieren](https://platform.claude.com/docs/de/manage-claude/compliance-activity-feed#paginate-results)): Übergib den `next_page`-Wert der Antwort bei der nächsten Anfrage als Query-Parameter `page` und höre auf, wenn `next_page` `null` ist. Die Antwort hat kein `has_more`-Feld. Schließe einen Listendurchlauf innerhalb von 24 Stunden nach seinem Start ab; ein älterer Listen-Cursor wird zwar weiterhin akzeptiert, aber gegen die aktuelle Aufbewahrungsgrenze neu ausgewertet, sodass Sitzungen, deren älteste aufbewahrte Aktivität kurz davor steht, aus dem Aufbewahrungszeitraum herauszufallen, übersprungen werden können.

In jedem Sitzungsobjekt ist `user.id` immer gesetzt und bleibt auch nach einer Kontolöschung erhalten; `user.email_address` ist `null`, wenn das Konto des Benutzers gelöscht wurde oder der Benutzer kein Mitglied einer Organisation mehr ist, die dein Key lesen kann. `workspace_id` ist `null`, wenn die Sitzung keinem Workspace zugeordnet war. Eine lokale Sitzung entspricht einer Client-Sitzungs-ID: Das Starten einer neuen Unterhaltung im Client oder das Leeren ihres Kontexts beginnt einen neuen Sitzungsdatensatz. Bei Claude Science kann die Liste auch separate Sitzungen für die eigene Hintergrundarbeit der App enthalten (zum Beispiel das Benennen der Unterhaltung; bei neueren App-Versionen auch ihre Reviewer- und Delegationsspuren), und bei älteren App-Versionen erscheint ein Teil dieser Hintergrundarbeit als zusätzliche Nachrichten im eigenen Transkript der Unterhaltung. Eine Claude Science-Unterhaltung, die über bestimmte App-Updates hinweg fortgesetzt wird, erscheint als zwei Sitzungen. Diese Verhaltensweisen sind zu erwarten. Behandle `id`-Werte als opake Strings; das Format kann sich ohne Vorankündigung ändern.

Bei Claude for Microsoft 365 erfolgt das Löschen einer Unterhaltung im Add-in nur auf dem Client und wird daher nicht in der API widergespiegelt: Lokale Sitzungen haben kein `deleted_at`-Feld, und die Sitzung bleibt aufgelistet, bis die Aufbewahrung sie entfernt.

Lokale Sitzungen haben ein `updated_at`, aber keinen `status`: Eine lokale Sitzung hat keinen serverseitigen Lebenszyklusstatus, und ihre Sichtbarkeit wird stattdessen durch die Aufbewahrung bestimmt. Eine lokale Sitzung wird als Folge von Claude API-Aufrufen (Inferenzaufrufen) erfasst, die der Client während der Sitzung tätigt, und die Aufbewahrung gilt für jeden erfassten Aufruf einzeln. `created_at` ist der Zeitstempel des frühesten aufbewahrten Aufrufs der Sitzung und `updated_at` der Zeitstempel ihres letzten, beide in UTC. Wenn ältere Aufrufe den Aufbewahrungszeitraum überschreiten, rückt `created_at` entsprechend vor, und sobald jeder Aufruf einer Sitzung herausgefallen ist, wird die Sitzung nicht mehr zurückgegeben; `updated_at` folgt dem jüngsten Aufruf und bleibt bis dahin unberührt. Da sich `created_at` zwischen Durchläufen verschieben kann, dedupliziere anhand von `id`, wenn du die Liste im Laufe der Zeit erneut durchläufst. Um Transkripte aktuell zu halten, während Sitzungen neue Nachrichten erhalten, polle mit dem Filter `updated_at.gte` und lasse aufeinanderfolgende Zeitfenster überlappen. Auf dem Listen-Endpunkt ist `updated_at` eine Untergrenze: Bei einer Sitzung, die an einer Seitengrenze oder am oberen Ende eines `created_at`-Fensters noch aktiv ist, kann der Wert kurzzeitig hinter der tatsächlichen letzten Aktivität der Sitzung zurückliegen, und ein neuer Aufruf wird erst nach der zuvor erwähnten kurzen Verarbeitungsverzögerung abfragbar. Wegen dieser Verzögerung solltest du `updated_at.gte` bei jedem Durchlauf einige Minuten vor die Startzeit deines vorherigen Durchlaufs setzen, nicht genau auf die Zeit des vorherigen Durchlaufs. Eine Grenze, die genau auf die vorherige Zeit gesetzt ist, verwirft stillschweigend und dauerhaft eine Sitzung, deren letzter Aufruf zu diesem Zeitpunkt noch indiziert wurde, denn sobald die Grenze über diesen Aufruf hinaus vorrückt, gibt ihn kein späterer Durchlauf mehr zurück. Dedupliziere die zurückgegebenen Sitzungen anhand von `id`, rufe ihre Transkripte erneut ab und dedupliziere Nachrichten anhand von `id`. Das Abrufen einer Sitzung oder ihrer Nachrichten spiegelt immer genau den neuesten aufbewahrten Aufruf wider, sodass ein periodischer Abgleichsdurchlauf über ein älteres Zeitfenster eine gründlichere Alternative zum Vergrößern der Überlappung ist.

Die Liste wird aus Metadaten zur Sitzungsaktivität erstellt, sodass sie Sitzungen enthalten kann, deren Transkriptinhalte nicht erfasst wurden, zum Beispiel Sitzungen, die liefen, bevor die Erfassung für deine Organisation begann (so weit zurück, wie dein Aufbewahrungszeitraum es zulässt); das Transkript einer solchen Sitzung gibt jede Nachricht mit als nicht verfügbar markiertem Inhalt zurück (siehe [Transkript einer lokalen Sitzung abrufen](https://platform.claude.com/docs/de/manage-claude/compliance-sessions#retrieve-a-local-session-transcript)).

Erfasste Inhalte lokaler Sitzungen werden standardmäßig 6 Jahre ab der Erfassung gespeichert. Wenn die Organisation, die die Sitzung ausgeführt hat, in [claude.ai > Organisationseinstellungen > Daten und Datenschutz](https://claude.ai/admin-settings/data-privacy-controls) einen endlichen benutzerdefinierten Aufbewahrungszeitraum für Unterhaltungen festgelegt hat, gilt stattdessen dieser Zeitraum, unabhängig davon, ob er kürzer oder länger als der Standard ist; wenn für die Organisation mehr als ein benutzerdefinierter Aufbewahrungszeitraum konfiguriert ist, gilt der kürzeste. Eine Änderung dieser Einstellung wirkt sich auf zwei verschiedene Arten aus: Die Endpunkte geben keine Aktivität mehr zurück, die älter als der aktuelle Zeitraum der Organisation ist, sobald sich die Einstellung ändert, während jede erfasste Nachricht für den Zeitraum gespeichert wird, der zum Zeitpunkt ihrer Erfassung galt, sodass eine spätere Verlängerung des Zeitraums bereits abgelaufene Inhalte nicht wiederherstellt. In Organisationen mit aktivierter [HIPAA-Bereitschaft](https://platform.claude.com/docs/de/manage-claude/api-and-data-retention#hipaa-readiness) werden erfasste Inhalte lokaler Sitzungen 30 Tage ab der Erfassung gespeichert oder für den benutzerdefinierten Aufbewahrungszeitraum für Unterhaltungen der Organisation, wenn dieser kürzer ist; der 6-Jahres-Standard gilt nicht.

Um die Metadaten einer Sitzung direkt abzurufen, übergib ihre ID an `GET /v1/compliance/apps/sessions/local/{session_id}`. Die Antwort ist dasselbe Sitzungsobjekt, das der Listen-Endpunkt zurückgibt, ohne Umschlag und ohne Transkriptinhalte. Eine fehlerhafte Sitzungs-ID gibt [400 Bad Request](https://platform.claude.com/docs/de/manage-claude/compliance-errors#400-bad-request) zurück. Ein einziges [404 Not Found](https://platform.claude.com/docs/de/manage-claude/compliance-errors#404-not-found) deckt vier Fälle ab, die die Antwort nicht unterscheidet: Die Sitzung befindet sich nicht in einer Organisation, die dein Key lesen kann (einschließlich Sitzungen unter einer anderen übergeordneten Organisation), sie existiert nicht, für sie gilt Zero Data Retention, oder jeder Aufruf in ihr hat den Aufbewahrungszeitraum überschritten.

`product_surface` (String oder `null`) identifiziert das Produkt, das die Sitzung erstellt hat: `cowork` (Cowork in Claude Desktop auf dem Rechner des Benutzers), `claude_code` (Claude Code), `claude_science` (Claude Science), `claude_in_chrome` (der integrierte Chat der Browsererweiterung Claude in Chrome) oder einer der Werte `office_agents/excel`, `office_agents/powerpoint`, `office_agents/word` und `office_agents/outlook` (Claude for Microsoft 365, nach App; `office_agents` allein, wenn die App nicht identifiziert ist). Neue Werte kommen hinzu, wenn die Abdeckung erweitert wird.

<Note>
  **Erstelle vorwärtskompatible Handler.** Reiche unbekannte `product_surface`-Werte durch und ignoriere Felder, die dein Handler nicht erwartet, damit deine Integration weiterhin funktioniert, wenn neue Produktoberflächen erscheinen.
</Note>

### Transkript einer lokalen Sitzung abrufen

Der Nachrichten-Endpunkt gibt das Transkript der Sitzung zurück, rekonstruiert aus den erfassten Claude API-Aufrufen: Benutzer-Prompts, Assistententext, Tool-Aufrufe und die Textanteile von Tool-Ergebnissen, alle abgesehen von Größenkürzungen so zurückgegeben, wie sie gesendet wurden. Nichts maskiert URLs, Anmeldedaten oder personenbezogene Daten in diesen Inhalten, behandle Transkripte daher als sensibel. Das Transkript lässt Folgendes aus oder ersetzt es:

* Thinking-Blöcke sind nie enthalten.
* Der System-Prompt der Anfrage wird nie zurückgegeben. Eine Markierungsnachricht mit dem Text `[system prompt content not shown]` steht stellvertretend dafür (normalerweise einmal pro Sitzung; eine Sitzung ohne erfasste Inhalte enthält keine Markierung).
* Tool-Definitionen und MCP-Serverkonfiguration sind nicht Teil des Transkripts.
* Bilder, PDFs und andere binäre oder strukturierte Blöcke werden nicht zurückgegeben. Jeder erscheint als `text`-Block mit dem Text `[<block type> content not shown]` (zum Beispiel `[image content not shown]`), wobei `truncated` auf `true` gesetzt ist. Nicht-Text-Elemente innerhalb eines Tool-Ergebnisses, wie [Websuche](https://platform.claude.com/docs/de/agents-and-tools/tool-use/web-search-tool)-Ergebnisse oder die Ausgabe des [Code-Ausführungs-Tools](https://platform.claude.com/docs/de/agents-and-tools/tool-use/code-execution-tool), werden durch einen einzigen `[N non-text item(s) not shown]`-Eintrag ersetzt, und `truncated` des Tool-Ergebnis-Blocks ist `true`. Der zugehörige Tool-Aufruf mit der Suchanfrage oder dem Code in seinem `input` wird weiterhin zurückgegeben.
* Zitationsmetadaten in `text`-Blöcken, wie die Quellenangaben bei einer Antwort, die auf Websuchergebnissen basiert, werden ausgelassen. Der Text selbst wird zurückgegeben, und der Block hat `truncated` auf `true` gesetzt.

Projektanweisungsdateien wie `CLAUDE.md` erscheinen als gewöhnliche Inhalte mit Benutzerrolle. Skill-Inhalte erscheinen, wenn der Client sie als Nachrichteninhalt sendet, und werden nicht von anderem Benutzertext unterschieden. Eine Zusammenfassung der Abdeckung findest du in den [Compliance API-FAQ](https://platform.claude.com/docs/de/manage-claude/compliance-faq#data-coverage-and-retention); eine Tabelle, die lokale Sitzungen mit Remote-Sitzungen und OpenTelemetry-Protokollierung vergleicht, findest du in der Einleitung dieser Seite.

```bash cURL
session_id="clls_01HxKpLmNoPqRsTuVwXyZaBc"

curl --fail-with-body -sS \
  "https://api.anthropic.com/v1/compliance/apps/sessions/local/$session_id/messages" \
  --header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
  --header "anthropic-version: 2023-06-01"
```

```json Response
{
  "session": {
    "type": "compliance_local_session",
    "id": "clls_01HxKpLmNoPqRsTuVwXyZaBc",
    "organization_uuid": "9a1e0000-0000-0000-0000-000000000000",
    "workspace_id": "wrkspc_01SvYKoWVRVHoEbwESNvzYdR",
    "user": {
      "id": "user_01GpKpLmNoPqRsTuVwXyZaBc",
      "email_address": null
    },
    "product_surface": "cowork",
    "created_at": "2026-07-09T14:02:11Z",
    "updated_at": "2026-07-09T14:02:38Z"
  },
  "data": [
    {
      "type": "compliance_local_session_message",
      "id": "clsm_01J4KpLmNoPqRsTuVwXyZaBa",
      "role": "user",
      "model": null,
      "created_at": "2026-07-09T14:02:11Z",
      "provenance": {
        "type": "synthetic_marker"
      },
      "content": [
        {
          "type": "text",
          "text": "[system prompt content not shown]",
          "truncated": true
        }
      ]
    },
    {
      "type": "compliance_local_session_message",
      "id": "clsm_01J4KpLmNoPqRsTuVwXyZaBc",
      "role": "user",
      "model": null,
      "created_at": "2026-07-09T14:02:11Z",
      "provenance": null,
      "content": [
        {
          "type": "text",
          "text": "Fix the failing test in tests/auth_test.py",
          "truncated": false
        }
      ]
    },
    {
      "type": "compliance_local_session_message",
      "id": "clsm_01J4KpLmNoPqRsTuVwXyZaBd",
      "role": "assistant",
      "model": "claude-opus-5-5",
      "created_at": "2026-07-09T14:02:11Z",
      "provenance": null,
      "content": [
        {
          "type": "text",
          "text": "I'll read the test file first.",
          "truncated": false
        },
        {
          "type": "tool_use",
          "id": "toolu_01AbCdEfGhIjKlMnOpQrSt",
          "name": "Read",
          "input": "{\"file_path\":\"tests/auth_test.py\"}",
          "truncated": false
        }
      ]
    },
    {
      "type": "compliance_local_session_message",
      "id": "clsm_01J4KpLmNoPqRsTuVwXyZaBe",
      "role": "user",
      "model": null,
      "created_at": "2026-07-09T14:02:38Z",
      "provenance": null,
      "content": [
        {
          "type": "tool_result",
          "tool_use_id": "toolu_01AbCdEfGhIjKlMnOpQrSt",
          "name": "Read",
          "is_error": false,
          "content": [
            {
              "type": "text",
              "text": "def test_login_expiry():\n    ..."
            }
          ],
          "truncated": false
        }
      ]
    },
    {
      "type": "compliance_local_session_message",
      "id": "clsm_01J4KpLmNoPqRsTuVwXyZaBf",
      "role": "assistant",
      "model": "claude-opus-5-5",
      "created_at": "2026-07-09T14:02:38Z",
      "provenance": null,
      "content": [
        {
          "type": "text",
          "text": "The test was asserting on a stale expiry timestamp. I've updated it.",
          "truncated": false
        }
      ]
    }
  ],
  "next_page": null
}
```

Die Antwort enthält einen `session`-Umschlag neben dem paginierten `data`-Array. Der erste Datensatz in diesem Beispiel ist die Markierung, die stellvertretend für den System-Prompt der Anfrage steht; ihre `provenance` wird später in diesem Abschnitt beschrieben. Auf diesem Endpunkt ist `user.email_address` immer `null`: Der Nachrichten-Endpunkt löst keine E-Mail-Adressen auf, daher bedeutet ein `null` hier nicht, dass das Konto des Benutzers gelöscht wurde. Um eine Sitzung einer E-Mail-Adresse zuzuordnen, verknüpfe `user.id` mit dem [Listen-Endpunkt](https://platform.claude.com/docs/de/manage-claude/compliance-sessions#retrieve-local-sessions) oder dem Abruf-Endpunkt (`GET /v1/compliance/apps/sessions/local/{session_id}`).

Nachrichten werden standardmäßig älteste zuerst zurückgegeben; übergib `order=desc`, um die Reihenfolge umzukehren. Die Paginierung verwendet dasselbe `page`/`next_page`-Schema wie der Listen-Endpunkt, mit einem `limit`-Standard von 100 und einem Maximum von 1.000. Eine Seite kann vorzeitig enden, wenn die Antwort ihre Größenbegrenzung erreicht, daher bedeutet eine Seite mit weniger als `limit` Nachrichten nicht, dass du das Ende erreicht hast; paginiere weiter, bis `next_page` `null` ist. Seiten-Cursor sind an die Sitzung und die Sortierreihenfolge gebunden, unter denen sie ausgegeben wurden, und die Cursor eines Durchlaufs laufen 24 Stunden nach seiner ersten Seite ab: Ein abgelaufener Cursor gibt [400 Bad Request](https://platform.claude.com/docs/de/manage-claude/compliance-errors#400-bad-request) zurück und fordert dich auf, ohne den Parameter `page` neu zu starten, und der neu gestartete Durchlauf spiegelt die aktuelle Aufbewahrungsgrenze wider. Ein Cursor, der für eine andere Sitzung oder `order` ausgegeben wurde, gibt ebenfalls 400 als ungültiger Cursor zurück.

Bei einer sehr großen Sitzung kann der Nachrichten-Endpunkt für eine Seite 400 zurückgeben, mit einer Meldung, dass die Seite zu groß zum Lesen ist; siehe [Transkriptseite zu groß](https://platform.claude.com/docs/de/manage-claude/compliance-errors#transcript-page-too-large). Wiederhole diese Anfrage nicht. Wenn sie `order=desc` verwendet hat, lies diese Sitzung stattdessen älteste zuerst ab ihrer ersten Seite, ohne `order` und ohne `page`, und setze das Anfrage-Timeout deines Clients auf mindestens 5 Minuten. Wenn eine Seite in der Reihenfolge älteste zuerst denselben Fehler zurückgibt, beschreibt dieser Eintrag im Fehlerleitfaden, was zu tun ist.

Bei einer sehr großen Sitzung kann der Nachrichten-Endpunkt auch 429 zurückgeben, dessen `error.details.error_code` `transcript_read_server_busy` ist. Das bedeutet nicht, dass deine Organisation ein Ratenlimit überschritten hat. Anders als beim 400 solltest du es erneut versuchen: Warte die Anzahl an Sekunden im `retry-after`-Header ab und sende dann dieselbe Anfrage unverändert erneut (mit demselben `page`-Wert, falls sie einen hatte). Siehe [Server beim Lesen großer Transkripte ausgelastet](https://platform.claude.com/docs/de/manage-claude/compliance-errors#server-busy-reading-large-transcripts).

Jede Nachricht hat eine `role` (`user` oder `assistant`) und ein `content`-Array aus `text`-, `tool_use`- und `tool_result`-Blöcken. Sie hat außerdem ein `model`: Bei einem aus der Claude API erfassten „Turn" (Gesprächsrunde) des Assistenten ist dies das Modell, das den Turn bedient hat, und es ist `null` bei Benutzernachrichten und bei jeder Assistentennachricht, deren `provenance` gesetzt ist, da vom Client behaupteter Verlauf und synthetische Markierungen nicht von einem Modell erzeugt wurden und das bedienende Modell bei nicht verfügbaren Inhalten unbekannt ist. Ein `text`-Block enthält `text` und `truncated`. Ein `tool_use`-Block enthält `id`, `name`, `input` und `truncated`, wobei `input` ein JSON-kodierter String statt eines Objekts ist. Ein `tool_result`-Block enthält `tool_use_id`, `name`, `is_error`, ein `content`-Array aus `text`-Einträgen und `truncated`. MCP-Tool-Aufrufe und -Ergebnisse sowie die meisten Server-Tool-Aufrufe und -Ergebnisse werden in dieselben `tool_use`- und `tool_result`-Formen normalisiert; jeder andere Blocktyp erscheint als `[<block type> content not shown]`-Platzhalter. Eine Nachrichten-`id` ist stabil, solange der Turn aufbewahrt wird. Jede aus demselben Inferenzaufruf rekonstruierte Nachricht trägt den Zeitstempel dieses Aufrufs, sodass aufeinanderfolgende Nachrichten oft denselben `created_at`-Wert haben; behalte die zurückgegebene Reihenfolge bei, statt nach Zeitstempel neu zu sortieren.

Jede Nachricht hat außerdem ein `provenance`-Feld, das beschreibt, wie ihr Inhalt erfasst wurde. `provenance` ist `null` für verifizierte, von der Claude API erfasste Inhalte, was der Normalfall ist. Andernfalls ist es ein Objekt, dessen `type` die Ausnahme kennzeichnet:

* `content_unavailable` bedeutet, dass der Inhalt nicht zurückgegeben werden kann. Das `content`-Array ist leer, und `provenance.reason` gibt den Grund an. `not_captured` bedeutet, dass für den Turn kein Inhalt verfügbar ist. Es beweist nicht, dass kein Datensatz gespeichert wurde: Inhalte, die die Datenverarbeitungsrichtlinien von Anthropic der Compliance API vorenthalten, werden mit demselben Grund gemeldet, ebenso einzelne Turns innerhalb einer ansonsten erfassten Sitzung, die aus solchen Gründen nicht verfügbar sind. Ein unbrauchbarer kundenverwalteter Schlüssel ist die einzige Ausnahme und gibt stattdessen [503 Service Unavailable](https://platform.claude.com/docs/de/manage-claude/compliance-errors#local-sessions-temporarily-unavailable) zurück. `client_aborted` bedeutet, dass der Client die Verbindung geschlossen oder die Anfrage abgebrochen hat, bevor die Antwort abgeschlossen war, sodass die Antwort des Turns nicht erfasst wurde; bereits an den Client gestreamte Teilausgaben sind nicht enthalten, und dieser Grund gilt nur für Turns mit Assistentenrolle. `cmek_key_revoked` ist für Inhalte reserviert, die mit dem kundenverwalteten Schlüssel deiner Organisation verschlüsselt sind, wenn dieser Schlüssel nicht verfügbar ist (zum Beispiel widerrufen). Er wird derzeit nicht zurückgegeben, da ein unbrauchbarer Schlüssel stattdessen ein 503 erzeugt, aber behandle ihn aus Gründen der Vorwärtskompatibilität. `retention_elapsed` bedeutet, dass der Inhalt den Aufbewahrungszeitraum überschritten hat. `oversize` bedeutet, dass eine einzelne Nachricht die Größengrenze pro Nachricht überschritten hat; die Nachricht wird dennoch zurückgegeben, mit einem leeren `content`-Array.
* `client_asserted` kennzeichnet Assistentennachrichten, die der Client als Unterhaltungsverlauf geliefert hat und die keiner erfassten Antwort zugeordnet werden konnten; ihre Urheberschaft ist nicht verifiziert.
* `synthetic_marker` kennzeichnet Datensätze, die vom Endpunkt selbst erzeugt wurden, wie die Markierung, die stellvertretend für den System-Prompt steht. Wenn der Client seinen Unterhaltungsverlauf mitten in der Sitzung umschreibt oder komprimiert (zum Beispiel nach einer Kontextkomprimierung), fügt das Transkript an dieser Stelle eine Markierungsnachricht ein und fährt mit den neuen Inhalten fort, die der Client gesendet hat. Wenn deine Organisation einen endlichen Aufbewahrungszeitraum hat und diese neuen Inhalte Assistentennachrichten enthalten, hält das Transkript die neuen Inhalte bis einschließlich ihrer letzten Assistentennachricht zurück (eine zweite Markierung weist darauf hin) und zeigt nur die Benutzernachrichten nach diesem Punkt, gefolgt vom Rest der Sitzung.

Markierungs- und vom Client behauptete Nachrichten beginnen mit einem erläuternden `text`-Block in eckigen Klammern, der mit `truncated: true` gekennzeichnet ist, zum Beispiel `[system prompt content not shown]`. Behandle diese Datensätze als vorhanden, aber nicht verfügbar oder nicht verifiziert, statt als fehlend, und toleriere unbekannte `provenance`-Typen und -Gründe.

Zwei Parameter begrenzen, wie viele Bytes jedes Tool-Blocks zurückgegeben werden: `tool_use_input_max_bytes` und `tool_result_max_bytes`, beide standardmäßig 10.000 Bytes. Übergib `-1` für das Servermaximum (etwa 1 MiB pro String); `0` gibt [400 Bad Request](https://platform.claude.com/docs/de/manage-claude/compliance-errors#400-bad-request) zurück, und Werte über dem Maximum werden darauf begrenzt. Ein String, der durch eine der beiden Grenzen abgeschnitten wird, wird an einer Zeichengrenze abgeschnitten und erhält ein angehängtes In-Band-Suffix (zum Beispiel `…[truncated; pass tool_result_max_bytes=-1 for the server max]`), und sein Block enthält `"truncated": true`. Ein gekürzter `tool_use`-`input` ist daher kein gültiges JSON mehr, parse Tool-Eingaben also nur aus ungekürzten Blöcken (oder erhöhe die Grenze und rufe erneut ab). Blöcke vom Typ `text` sind immer auf dasselbe Servermaximum von etwa 1 MiB begrenzt; kein Parameter erhöht es, und ein `text`-Block an der Grenze enthält ebenfalls `"truncated": true`.

Claude Science ruft Connectors (MCP-Server) aus Code auf, den es über sein `repl`-Tool ausführt, nicht als separat benannte Tools, sodass kein Block in einem Claude Science-Transkript nach einem Connector benannt ist. Jeder Connector-Aufruf erscheint im Code innerhalb des `input` eines `repl`-`tool_use`-Blocks (zum Beispiel ein `host.mcp("<server>", "<tool>", ...)`-Aufruf), und die Connector-Ausgabe erscheint im zugehörigen `tool_result` nur dort, wo dieser Code sie ausgegeben hat. Cowork- und Claude Code-Sitzungen unterscheiden sich: Sie rufen jedes Connector-Tool unter seinem eigenen Namen `mcp__<server>__<tool>` auf, der der `name` des `tool_use`-Blocks ist. Um die Connector-Nutzung in Claude Science-Sitzungen zu überwachen, parse den `input`-String und gleiche den darin enthaltenen Code ab statt eines Tool-Namens. Übergib für diese Sitzungen `tool_use_input_max_bytes=-1`, damit eine lange Code-Eingabe bis zum Servermaximum zurückgegeben wird, statt beim Standard von 10.000 Bytes abgeschnitten zu werden, bevor der Connector-Aufruf erscheint.

Transkriptinhalte berücksichtigen den unter [Sitzungen auf den Rechnern der Benutzer](https://platform.claude.com/docs/de/manage-claude/compliance-sessions#retrieve-local-sessions) beschriebenen Aufbewahrungszeitraum. Wenn der Beginn einer Sitzung diesen überschritten hat, beginnt das Transkript mit einem einzelnen `content_unavailable`-Platzhalter mit `reason` `retention_elapsed`, gefolgt von den aufbewahrten Nachrichten. Wenn jeder Aufruf einer Sitzung herausgefallen ist, gibt der Nachrichten-Endpunkt [404 Not Found](https://platform.claude.com/docs/de/manage-claude/compliance-errors#404-not-found) zurück, wie er es auch für Sitzungen in Organisationen tut, die dein Key nicht lesen kann, für Sitzungen, die nicht existieren, und für Sitzungen, für die Zero Data Retention gilt. Eine fehlerhafte Sitzungs-ID gibt [400 Bad Request](https://platform.claude.com/docs/de/manage-claude/compliance-errors#400-bad-request) zurück.

## Sitzungen in der Cloud (Remote-Sitzungen)

Cowork-Sitzungen, die im Web oder mobil auf claude.ai gestartet werden, laufen in der Cloud in von Anthropic verwalteten Umgebungen. Die Compliance API stellt diese Remote-Sitzungen über zwei Endpunkte bereit: `GET /v1/compliance/apps/sessions/remote` listet Sitzungsmetadaten auf, und `GET /v1/compliance/apps/sessions/remote/{session_id}/messages` gibt das Transkript einer Sitzung zurück. Beide erfordern den Scope `read:compliance_user_data`, und beide werden auf das gemeinsame „rate limit" (Ratenlimit) der Compliance API sowie auf ein zweites, für diese Endpunkte spezifisches Anfragebudget angerechnet; siehe [429 Too Many Requests](https://platform.claude.com/docs/de/manage-claude/compliance-errors#429-too-many-requests).

Der Listen-Endpunkt verwendet standardmäßig einen organisationsweiten Geltungsbereich: Lass `organization_ids[]` weg, um jede claude.ai-Organisation einzuschließen, die dein Key lesen kann, oder übergib bis zu 500 Werte, um den Geltungsbereich einzugrenzen. Um die Liste stattdessen auf bestimmte Benutzer einzugrenzen, übergib 1–10 `user_ids[]`-Werte (die IDs erhältst du über [Organisationsbenutzer auflisten](https://platform.claude.com/docs/de/manage-claude/compliance-org-data#list-organization-users)); der Filter gleicht mit dem Benutzer ab, dem die Sitzung gehört, sodass Sitzungen im Besitz eines Agenten immer ausgeschlossen werden, wenn `user_ids[]` gesetzt ist. Begrenze die Ergebnisse zeitlich mit `created_at`-Bereichsparametern (`gte`, `gt`, `lt`, `lte`, im RFC-3339-Format). Es gibt keinen `updated_at`-Filter. Die folgende Anfrage listet Sitzungen auf, die seit einem bestimmten Datum erstellt wurden.

```bash cURL
curl --fail-with-body -sS -G \
  "https://api.anthropic.com/v1/compliance/apps/sessions/remote" \
  --header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
  --header "anthropic-version: 2023-06-01" \
  --data-urlencode "created_at.gte=2026-06-01T00:00:00Z" \
  --data-urlencode "limit=100"
```

```json Response
{
  "data": [
    {
      "id": "cse_01WpQrStUvXyZaBcDeFgHjK6",
      "organization_uuid": "91012d09-e48b-438e-a489-1bebfd8fa6f9",
      "user": {
        "id": "user_01XyDMpzjS89pFZXqSFUBDr6",
        "email_address": "user@example.com"
      },
      "agent_id": null,
      "started_by_user": null,
      "status": "active",
      "created_at": "2026-07-01T17:04:05Z",
      "updated_at": "2026-07-01T18:00:41Z",
      "product_surface": "cowork_remote",
      "claude_project_id": "claude_proj_01KGp4eZNug9ri4kE35RSppq"
    },
    {
      "id": "cse_01TkNpRsUvWxYzAbCdEfGhJ4",
      "organization_uuid": "91012d09-e48b-438e-a489-1bebfd8fa6f9",
      "user": null,
      "agent_id": "cagt_01MnPqRsTuVwXyZaBcDeFgH8",
      "started_by_user": {
        "id": "user_01XyDMpzjS89pFZXqSFUBDr6",
        "email_address": "user@example.com"
      },
      "status": "archived",
      "created_at": "2026-06-28T09:15:22Z",
      "updated_at": "2026-06-28T09:47:10Z",
      "product_surface": "cowork_remote",
      "claude_project_id": null
    }
  ],
  "next_page": "page_AAEfMk93cXpYdGxrZXk"
}
```

Die Ergebnisse werden in umgekehrt chronologischer Reihenfolge (neueste zuerst) nach `created_at` sortiert und auf `limit` Ergebnisse pro Antwort begrenzt (Standard 100, maximal 500). Der Endpunkt paginiert mit `page`- und `next_page`-Tokens (siehe [Ergebnisse paginieren](https://platform.claude.com/docs/de/manage-claude/compliance-activity-feed#paginate-results)): Übergib den `next_page`-Wert der Antwort bei der nächsten Anfrage als Query-Parameter `page` und höre auf, wenn `next_page` `null` ist.

Eine Sitzung gehört entweder einem Benutzer oder einem Agenten, niemals beiden. Bei Sitzungen im Besitz eines Benutzers enthält `user` die ID und E-Mail-Adresse des Besitzers (`email_address` ist `null`, wenn der Benutzer kein Mitglied einer Organisation mehr ist, die dein Key lesen kann), und `agent_id` ist `null`. Bei Sitzungen im Besitz eines Agenten (zum Beispiel Ausführungen einer geplanten Cowork-Aufgabe in der Cloud) ist `user` `null`, `agent_id` enthält die ID des Agenten (Präfix `cagt_`), und `started_by_user` identifiziert die Person, die die Ausführung initiiert hat; bei Sitzungen im Besitz eines Benutzers ist `started_by_user` `null`. Jede Ausführung einer geplanten Aufgabe ist eine separate Sitzung, und kein Sitzungsfeld enthält den Namen oder Zeitplan der Aufgabe.

`claude_project_id` ist die ID des claude.ai-[Projekts](https://platform.claude.com/docs/de/manage-claude/compliance-content-data#retrieve-projects-and-attachments), zu dem die Sitzung gehört (Präfix `claude_proj_`), oder `null`, wenn die Sitzung nicht in einem Projekt ist.

`status` ist einer der Werte `pending`, `active`, `paused`, `archived` oder `failed`. Eine Sitzung ist `pending`, während sie bereitgestellt wird; eine `pending`-Sitzung hat noch kein Transkript, und der Nachrichten-Endpunkt gibt für sie 404 zurück, bis die Bereitstellung abgeschlossen ist. Gelöschte Sitzungen werden niemals zurückgegeben.

`product_surface` (String oder `null`) identifiziert das Produkt, das die Sitzung erstellt hat. Der Endpunkt gibt derzeit nur Sitzungen mit `product_surface` gleich `cowork_remote` zurück: Cowork-Sitzungen, die im Web oder mobil auf claude.ai gestartet wurden.

Um einen Chat in der einheitlichen Claude-Erfahrung abzurufen, einschließlich des Teils, der in der Cloud lief, verwende die Chat-Endpunkte ([Chat-Nachrichten abrufen](https://platform.claude.com/docs/de/api/compliance/apps/chats/messages/list)), nicht die Endpunkte für Remote-Sitzungen.

<Note>
  **Erstelle vorwärtskompatible Handler.** Reiche unbekannte `status`- und `product_surface`-Werte durch und ignoriere Felder, die dein Handler nicht erwartet, damit deine Integration weiter funktioniert, wenn neue Status und Produktoberflächen hinzukommen.
</Note>

### Transkript einer Remote-Sitzung abrufen

Der Nachrichten-Endpunkt gibt das Transkript der Sitzung zurück: Benutzer-Prompts, Antworten des Assistenten sowie Tool-Aufrufe und deren Ergebnisse. Thinking-Blöcke und Bilder sind nicht enthalten. Eine Übersicht über den Abdeckungsumfang findest du in den [Compliance API FAQ](https://platform.claude.com/docs/de/manage-claude/compliance-faq#data-coverage-and-retention). Eine Tabelle, die Remote-Sitzungen mit lokalen Sitzungen und dem OpenTelemetry-Logging von Cowork vergleicht, findest du in der Einleitung dieser Seite.

```bash cURL
session_id="cse_01WpQrStUvXyZaBcDeFgHjK6"

curl --fail-with-body -sS \
  "https://api.anthropic.com/v1/compliance/apps/sessions/remote/$session_id/messages" \
  --header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
  --header "anthropic-version: 2023-06-01"
```

```json Response
{
  "session": {
    "id": "cse_01WpQrStUvXyZaBcDeFgHjK6",
    "organization_uuid": "91012d09-e48b-438e-a489-1bebfd8fa6f9",
    "user": {
      "id": "user_01XyDMpzjS89pFZXqSFUBDr6",
      "email_address": null
    },
    "agent_id": null,
    "started_by_user": null,
    "status": "active",
    "created_at": "2026-07-01T17:04:05Z",
    "updated_at": "2026-07-01T18:00:41Z",
    "product_surface": "cowork_remote",
    "claude_project_id": null
  },
  "data": [
    {
      "id": "csev_01HjKmNpQrStUvWxYzAbCdE2",
      "role": "user",
      "created_at": "2026-07-01T17:04:05Z",
      "content": [
        {
          "type": "text",
          "text": "Summarize the customer feedback in the attached spreadsheet.",
          "truncated": false
        }
      ],
      "sent_by_user_id": null,
      "content_unavailable": false
    },
    {
      "id": "csev_01BcDeFgHjKmNpQrStUvWxY4",
      "role": "assistant",
      "created_at": "2026-07-01T17:04:06Z",
      "content": [
        {
          "type": "text",
          "text": "I'll start by reading the spreadsheet...",
          "truncated": false
        }
      ],
      "sent_by_user_id": null,
      "content_unavailable": false
    }
  ],
  "next_page": null
}
```

Die Antwort enthält neben dem paginierten `data`-Array einen `session`-Umschlag. Bei diesem Endpunkt sind `user.email_address`, `started_by_user` und `claude_project_id` im Umschlag immer auf `null` gesetzt. Diese Werte erhältst du stattdessen über den Listen-Endpunkt.

Nachrichten werden standardmäßig in chronologischer Reihenfolge zurückgegeben (älteste zuerst); übergib `order=desc`, um die Reihenfolge umzukehren. Die Paginierung verwendet dasselbe `page`/`next_page`-Schema wie der Listen-Endpunkt, mit einem `limit`-Standardwert von 100 und einem Maximum von 1.000. Eine Seite kann vorzeitig enden, wenn die Antwort ihre Größenbegrenzung erreicht. Eine Seite mit weniger als `limit` Nachrichten bedeutet also nicht, dass du das Ende erreicht hast. Paginiere weiter, bis `next_page` den Wert `null` hat.

Jede Nachricht enthält eine `role` (`user` oder `assistant`) und ein `content`-Array aus `text`-, `tool_use`- und `tool_result`-Blöcken.

* **Reihenfolge:** Die `created_at`-Werte von Nachrichten sind Commit-Zeitstempel. Aufeinanderfolgende Nachrichten können denselben Zeitstempel haben oder leicht vertauscht sein. Behalte daher die zurückgegebene Reihenfolge bei, statt nach `created_at` neu zu sortieren.
* **Absender:** Bei Sitzungen im Besitz eines Agenten gibt `sent_by_user_id` den Benutzer an, der eine bestimmte Benutzernachricht gesendet hat, sofern sich dieser zuordnen lässt. Andernfalls ist der Wert `null`, auch bei allen Assistentennachrichten.
* **Nicht verfügbarer Inhalt:** Wenn der Inhalt einer Nachricht überhaupt nicht zurückgegeben werden kann (zum Beispiel, weil er Größengrenzen überschreitet), ist bei der Nachricht `content_unavailable` auf `true` gesetzt.

Zwei Parameter begrenzen, wie viele Bytes jedes Tool-Blocks zurückgegeben werden: `tool_use_input_max_bytes` und `tool_result_max_bytes`, beide mit einem Standardwert von 10.000 Bytes. Übergib `-1` für das Server-Maximum (etwa 1 MiB pro String); `0` führt zu [400 Bad Request](https://platform.claude.com/docs/de/manage-claude/compliance-errors#400-bad-request). Ein Block, der durch eine dieser Grenzen abgeschnitten wurde, enthält `"truncated": true`. Eine abgeschnittene `tool_use`-Eingabe ist kein gültiges JSON mehr. Parse Tool-Eingaben daher nur aus nicht abgeschnittenen Blöcken (oder erhöhe die Grenze und rufe die Daten erneut ab).

Der Nachrichten-Endpunkt gibt [404 Not Found](https://platform.claude.com/docs/de/manage-claude/compliance-errors#404-not-found) in folgenden Fällen zurück:

* für `pending`-Sitzungen
* für Sitzungen, die nicht existieren oder gelöscht wurden
* für Sitzungen in Organisationen, die dein Key nicht lesen kann

## Aufbewahrung und Löschung

Die Sitzungs-Endpunkte sind schreibgeschützt; lokale und Remote-Sitzungen können nicht über die Compliance API gelöscht werden. Lokale Sitzungstranskripte werden standardmäßig 6 Jahre lang aufbewahrt, oder für den benutzerdefinierten Aufbewahrungszeitraum für Unterhaltungen deiner Organisation, wenn ein endlicher festgelegt ist, oder 30 Tage in Organisationen mit aktivierter HIPAA-Bereitschaft, wie unter [Sitzungen auf den Rechnern der Benutzer](https://platform.claude.com/docs/de/manage-claude/compliance-sessions#retrieve-local-sessions) beschrieben. Remote-Sitzungstranskripte werden 6 Jahre lang aufbewahrt, sofern ein Benutzer die Sitzung nicht früher löscht. Die Endpunkte für Remote-Sitzungen geben eine Sitzung nicht mehr zurück, sobald ein Benutzer sie löscht, und ihr Transkript ist über die Compliance API nicht wiederherstellbar. Wie sich diese Zeiträume zu den anderen Aufbewahrungsregelungen von Anthropic verhalten, erfährst du unter [API und Datenaufbewahrung](https://platform.claude.com/docs/de/manage-claude/api-and-data-retention).

## Nächste Schritte

<CardGroup cols={2}>
  <Card title="Chats, Dateien und Projekte abrufen und löschen" href="https://platform.claude.com/docs/de/manage-claude/compliance-content-data">
    Greife mit demselben Compliance Access Key auf claude.ai-Chatinhalte, Dateianhänge und Projekte zu.
  </Card>

  <Card title="Compliance API FAQ" href="https://platform.claude.com/docs/de/manage-claude/compliance-faq#data-coverage-and-retention">
    Eine Übersicht Feld für Feld darüber, was Sitzungstranskripte enthalten, sowie weitere häufige Fragen.
  </Card>

  <Card title="Fehler der Compliance API behandeln" href="https://platform.claude.com/docs/de/manage-claude/compliance-errors">
    Fehler-Payloads im Wortlaut und die jeweilige Lösung.
  </Card>

  <Card title="API-Referenz" href="https://platform.claude.com/docs/de/api/compliance/apps">
    Endpunktpfade, Parameter und Antwortschemas der Compliance API.
  </Card>
</CardGroup>
