Claude Platform Docs
AdminCompliance API

Den Activity Feed abfragen

Rufe den Compliance API Activity Feed deiner Organisation ab, filtere ihn und paginiere ihn.

Der Activity Feed (Aktivitätsfeed) zeichnet Authentifizierungs-, Chat-, Datei-, Projekt-, Verwaltungs- und Plattformaktivitäten in deiner gesamten Organisation auf und gibt sie in umgekehrt chronologischer Reihenfolge zurück. 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.

cURL
curl --fail-with-body -sS \
  "https://api.anthropic.com/v1/compliance/activities?limit=1" \
  --header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY"
Response
{
  "data": [
    {
      "id": "activity_01XyDMpzjS89pFZXqSFUBDr6",
      "created_at": "2026-04-10T08:09:10Z",
      "organization_id": "org_01Wv6QeBcDfGhJkLmNpQrSt8",
      "organization_uuid": "abcdef01-2345-6789-abcd-ef0123456789",
      "actor": {
        "type": "user_actor",
        "email_address": "user@example.com",
        "user_id": "user_01TuVwXyZaBcDeFgH2JkLmN4",
        "ip_address": "192.0.2.34",
        "user_agent": "Mozilla/5.0..."
      },
      "type": "claude_chat_created",
      "claude_chat_id": "claude_chat_01XyDMpzjS89pFZXqSFUBDr6",
      "claude_project_id": "claude_proj_01KGp4eZNug9ri4kE35RSppq"
    }
  ],
  "has_more": true,
  "first_id": "activity_01XyDMpzjS89pFZXqSFUBDr6",
  "last_id": "activity_01XyDMpzjS89pFZXqSFUBDr6"
}

Aktivitäten filtern

Filtere nach Organisation, Akteur, Aktivitätstyp oder einem created_at-Zeitfenster mithilfe der gepunkteten Unterparameter created_at.gte, .gt, .lte und .lt. Siehe die API-Referenz für den Typ und die akzeptierten Werte jedes Parameters.

Wiederholbare Parameter verwenden die Array-Klammer-Query-Syntax: Übergib activity_types[]=..., actor_ids[]=... oder organization_ids[]=... einmal für jeden Wert.

cURL
curl --fail-with-body -sS -G \
  "https://api.anthropic.com/v1/compliance/activities" \
  --data-urlencode "activity_types[]=claude_file_uploaded" \
  --data-urlencode "activity_types[]=claude_chat_created" \
  --data-urlencode "created_at.gte=2026-04-01T00:00:00Z" \
  --header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY"

Der Activity Feed erzeugt Hunderte verschiedener Aktivitätstypen. Siehe Compliance-Aktivitäten abfragen in der API-Referenz für die vollständige Liste der Werte, die activity_types[] akzeptiert.

Ergebnisse paginieren

Aktivitäten werden mit den neuesten zuerst zurückgegeben, wobei Gleichstände bei created_at durch die Aktivitäts-ID aufgelöst werden, und sind in jeder Antwort auf limit Ergebnisse begrenzt (Standard 100, maximal 5.000). Siehe die API-Referenz für das vollständige Antwortschema.

Die Compliance API verwendet je nach Endpunktfamilie zwei Paginierungsschemata:

EndpunktfamilieSortierreihenfolgeSchemaParameter
AktivitätenNeueste zuerstCursorafter_id, before_id (zurückgegeben als first_id, last_id)
Chats und Chat-NachrichtenÄlteste zuerstCursorafter_id, before_id (zurückgegeben als first_id, last_id)
Organisationen, Projekte, Projektanhänge, Benutzer, Rollen, Rollenberechtigungen, Gruppen, GruppenmitgliederEndpunktspezifischPage-Tokenpage (zurückgegeben als next_page)
Lokale und Remote-Sitzungen sowie SitzungsnachrichtenSitzungen neueste zuerst; Nachrichten standardmäßig älteste zuerstPage-Tokenpage (zurückgegeben als next_page)

Dateien werden nicht paginiert: Sie werden einzeln per ID abgerufen.

Paginierungs-Cursor und Page-Tokens sind opake Zeichenketten: Gib sie unverändert zurück. Ihr internes Format ist nicht stabil, und das Parsen wird ohne Vorankündigung fehlschlagen. In jeder Anfrage darf nur einer der Parameter after_id oder before_id gesetzt sein, und beide Schemata geben has_more zurück, damit du weißt, wann du aufhören musst. Die Sitzungsendpunkte (lokal und remote) sind die Ausnahme: Sie geben next_page ohne has_more zurück, höre also auf, wenn next_page null ist.

Um durch Aktivitäten zu blättern:

  • Übergib das last_id der Antwort als after_id, um zur nächsten Seite in Ergebnisreihenfolge zu gelangen. Da Aktivitäten mit den neuesten zuerst sortiert sind, enthält die nächste Seite ältere Einträge.
  • Übergib first_id als before_id, um zur vorherigen Seite zurückzukehren.
  • Höre auf, wenn has_more false ist.

Der Cursor-Parameter legt die Seitenrichtung fest; die Sortierreihenfolge des Endpunkts legt die Zeitrichtung fest. Derselbe after_id-Parameter erreicht hier ältere Aktivitäten. Chats werden mit den ältesten zuerst sortiert; siehe Chats, Dateien und Projekte abrufen und löschen für die dortige Cursor-Semantik.

cURL
# Rufe die erste Seite ab (neueste Aktivitäten zuerst) und erfasse ihren abschließenden Cursor.
last_id=$(curl --fail-with-body -sS \
  "https://api.anthropic.com/v1/compliance/activities?limit=2" \
  --header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" | jq -er '.last_id')

# Gib den Cursor unverändert zurück, um die nächste (ältere) Seite abzurufen.
curl --fail-with-body -sS -G \
  "https://api.anthropic.com/v1/compliance/activities" \
  --header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
  --data-urlencode "limit=2" \
  --data-urlencode "after_id=${last_id}"

Eine produktive Backfill-Schleife blättert durch ältere Aktivitäten, indem sie die Iteration über has_more und last_id steuert:

  1. Beginne bei deinem gespeicherten Cursor (oder lasse after_id weg, um am Anfang zu beginnen).
  2. Blättere mit after_id=<last_id> weiter, bis has_more false ist.
  3. Persistiere das letzte last_id erst, nachdem du jede Seite gespeichert hast, die es abdeckt.
cursor = stored_cursor
loop:
  if cursor is not null:
    page = GET /v1/compliance/activities?after_id={cursor}&limit=100
  else:
    page = GET /v1/compliance/activities?limit=100
  store(page.data)
  if page.last_id is not null:
    cursor = page.last_id
  if not page.has_more: break
persist(cursor)

Das Activity-Objekt verstehen

Jeder Eintrag in data ist eine Activity mit dieser Struktur auf oberster Ebene:

FeldTypBeschreibung
idstringEindeutiger Bezeichner für die Aktivität.
created_atRFC-3339-StringWann die Aktivität stattgefunden hat.
organization_idstring oder nullOrganisation, in der die Aktivität stattgefunden hat, oder null für Ereignisse, die nicht an eine Organisation gebunden sind (Anmeldung, Abmeldung, Compliance-API-Aufrufe).
organization_uuidstring oder nullGleicher Geltungsbereich wie organization_id, ausgedrückt als UUID.
actorActor-UnionWer oder was die Aktivität ausgeführt hat. Siehe die folgende Akteur-Tabelle.
typestringDer Aktivitätstyp, zum Beispiel claude_chat_created.
zusätzliche FeldervariiertTypspezifische Felder, zum Beispiel claude_chat_id bei Chat-Ereignissen oder filename bei Datei-Ereignissen. Siehe Compliance-Aktivitäten abfragen in der API-Referenz für die Feldliste pro Typ.

Das Feld actor ist eine diskriminierte Union. Der Diskriminator type gibt an, welche anderen Felder vorhanden sind:

actor.typeWann er erscheintWichtige Felder
user_actorEin angemeldeter claude.ai- oder Claude Console-Benutzer hat die Aktion ausgeführt.email_address, user_id, ip_address, user_agent
api_actorEine Anfrage hat die Claude API oder die Compliance API mit einem vom Kunden ausgestellten API-Key aufgerufen. Compliance-API-Aufrufe erzeugen diesen Akteurtyp sowohl für Compliance Access Keys als auch für Admin-API-Keys.api_key_id, ip_address, user_agent
admin_api_key_actorEin Organisationsadministrator hat einen Admin-API-Key verwendet, um Benutzer, Einladungen, Workspaces oder API-Keys zu verwalten.admin_api_key_id, ip_address, user_agent
unauthenticated_user_actorEine Aktion fand statt, bevor die Anmeldung abgeschlossen war, zum Beispiel sso_login_initiated.unauthenticated_email_address, ip_address, user_agent
anthropic_actorAnthropic hat auf die Organisation eingewirkt, zum Beispiel über interne Tools.email_address (immer null; aus Gründen der Strukturkonsistenz mit user_actor vorhanden, da Anthropic-Operatoren nicht durch individuelle E-Mail-Adressen repräsentiert werden)
scim_directory_sync_actorEin Identitätsanbieter (wie Okta, Microsoft Entra ID oder JumpCloud) hat eine Änderung über die SCIM-Verzeichnissynchronisierung übertragen.workos_event_id, directory_id, idp_connection_type (nullable; zum Beispiel OktaSCIMV2, AzureSCIMV2)

Eine claude_*_viewed-Aktivität bedeutet, dass eine Claude-App Inhalte geladen hat, nicht, dass eine Person sie angesehen hat. Typen wie claude_chat_viewed, claude_file_viewed und claude_project_viewed werden jedes Mal aufgezeichnet, wenn eine Claude-App den Chat, die Datei oder das Projekt von den Servern von Anthropic lädt. Wiederholte Ladevorgänge werden nicht dedupliziert. Die Web-, Desktop- und Mobil-Apps laden Inhalte zu unterschiedlichen Zeitpunkten, manchmal im Hintergrund, und können eine zwischengespeicherte Kopie anzeigen, ohne sie zu laden. Die Anzahl dieser Aktivitäten variiert daher je nach Plattform, und sie entspricht nicht den gesendeten Nachrichten oder angesehenen Bildschirmen.

Nächste Schritte

Das vollständige Anfrage- und Antwortschema für GET /v1/compliance/activities, einschließlich aller unterstützten activity_types[]-Werte.

Frage die zugrunde liegenden Inhalte für Aktivitäten, die du im Feed findest, ab und lösche sie (Compliance Access Key erforderlich).

Wähle ein Polling- oder Batch-Verarbeitungsmuster und plane die SIEM-Korrelation.

Der vollständige Fehlerkatalog.

Was this page helpful?