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 --fail-with-body -sS \
"https://api.anthropic.com/v1/compliance/activities?limit=1" \
--header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY"{
"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 --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:
| Endpunktfamilie | Sortierreihenfolge | Schema | Parameter |
|---|---|---|---|
| Aktivitäten | Neueste zuerst | Cursor | after_id, before_id (zurückgegeben als first_id, last_id) |
| Chats und Chat-Nachrichten | Älteste zuerst | Cursor | after_id, before_id (zurückgegeben als first_id, last_id) |
| Organisationen, Projekte, Projektanhänge, Benutzer, Rollen, Rollenberechtigungen, Gruppen, Gruppenmitglieder | Endpunktspezifisch | Page-Token | page (zurückgegeben als next_page) |
| Lokale und Remote-Sitzungen sowie Sitzungsnachrichten | Sitzungen neueste zuerst; Nachrichten standardmäßig älteste zuerst | Page-Token | page (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_idder Antwort alsafter_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_idalsbefore_id, um zur vorherigen Seite zurückzukehren. - Höre auf, wenn
has_morefalseist.
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.
# 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:
- Beginne bei deinem gespeicherten Cursor (oder lasse
after_idweg, um am Anfang zu beginnen). - Blättere mit
after_id=<last_id>weiter, bishas_morefalseist. - Persistiere das letzte
last_iderst, 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:
| Feld | Typ | Beschreibung |
|---|---|---|
id | string | Eindeutiger Bezeichner für die Aktivität. |
created_at | RFC-3339-String | Wann die Aktivität stattgefunden hat. |
organization_id | string oder null | Organisation, 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_uuid | string oder null | Gleicher Geltungsbereich wie organization_id, ausgedrückt als UUID. |
actor | Actor-Union | Wer oder was die Aktivität ausgeführt hat. Siehe die folgende Akteur-Tabelle. |
type | string | Der Aktivitätstyp, zum Beispiel claude_chat_created. |
| zusätzliche Felder | variiert | Typspezifische 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.type | Wann er erscheint | Wichtige Felder |
|---|---|---|
user_actor | Ein angemeldeter claude.ai- oder Claude Console-Benutzer hat die Aktion ausgeführt. | email_address, user_id, ip_address, user_agent |
api_actor | Eine 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_actor | Ein 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_actor | Eine Aktion fand statt, bevor die Anmeldung abgeschlossen war, zum Beispiel sso_login_initiated. | unauthenticated_email_address, ip_address, user_agent |
anthropic_actor | Anthropic 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_actor | Ein 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?