Die Compliance API wird auf Anfrage aktiviert. Claude Enterprise-Organisationen haben Zugriff auf die vollständige API; Claude Console-Organisationen haben nur Zugriff auf den Activity Feed (diese Seite). Siehe Zugriff auf die Compliance API erhalten.
Erforderlicher Scope: read:compliance_activities auf dem Compliance Access Key oder Admin-API-Key.
Sowohl Compliance Access Keys (sk-ant-api01-...), die diesen Scope tragen, als auch Admin-API-Keys (sk-ant-admin01-...) können den Activity Feed aufrufen. Siehe Zugriff auf die Compliance API erhalten für die Bedingungen, unter denen jeder Key-Typ den Scope trägt.
Der Activity Feed zeichnet jede Authentifizierungs-, Chat-, Datei-, Projekt-, Verwaltungs- und Plattformaktion auf, die in deiner Organisation stattfindet, in umgekehrt chronologischer Reihenfolge. Aktivitäten sind innerhalb von 1 Minute nach ihrem Auftreten abfragbar und werden 6 Jahre lang aufbewahrt.
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": "[email protected]",
"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"
}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.
Aktivitäten werden mit den neuesten zuerst zurückgegeben, wobei Gleichstände in created_at durch die Aktivitäts-ID aufgelöst werden, und sind auf limit Ergebnisse pro Antwort begrenzt (Standard 100, Maximum 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) |
| Projekte, Projektanhänge, Benutzer, Rollen, Rollenberechtigungen, Gruppen, Gruppenmitglieder | Endpunktspezifisch | Page-Token | page (zurückgegeben als next_page) |
Organisationen und Dateien werden nicht paginiert: Organisationen auflisten gibt alle Ergebnisse in einer Antwort zurück, und Dateien werden einzeln per ID abgerufen.
Paginierungs-Cursor und Page-Tokens sind opake Strings: Gib sie unverändert zurück. Ihr internes Format ist nicht stabil, und das Parsen wird ohne Vorankündigung fehlschlagen. Pro Anfrage darf nur einer von after_id oder before_id gesetzt sein, und beide Schemata geben has_more zurück, damit du weißt, wann du aufhören musst.
Um durch Aktivitäten zu blättern:
last_id der Antwort als after_id, um zur nächsten Seite in der Ergebnisreihenfolge zu gelangen. Da Aktivitäten mit den neuesten zuerst sortiert sind, enthält die nächste Seite ältere Einträge.first_id als before_id, um zur vorherigen Seite zurückzukehren.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.
Cursor können bei Wiederholungsversuchen sicher wiederverwendet werden. Ein Cursor oder Page-Token von einer erfolgreich zurückgegebenen Seite bleibt gültig; eine fehlgeschlagene Anfrage (5xx, Timeout, Netzwerkfehler) verschiebt deine Position nicht. Wiederhole dieselbe Anfrage mit demselben Cursor. Gehe erst zum nächsten Cursor über, nachdem du die Seite gespeichert hast, auf die er verweist.
# Rufe die erste Seite ab (neueste Aktivitäten zuerst) und erfasse ihren End-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')
# Übergib 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:
after_id weg, um von Anfang an zu starten).after_id=<last_id> durch, bis has_more false ist.last_id erst, nachdem du jede Seite gespeichert hast, die sie 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)Jeder Eintrag in data ist eine Activity mit dieser Top-Level-Struktur:
| 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 Actor-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 actor-Feld ist eine diskriminierte Union. Der type-Diskriminator gibt an, welche anderen Felder vorhanden sind:
actor.type | Wann es 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 Actor-Typ 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 |
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 durch interne Tools. | email_address (immer null; vorhanden zur Formkonsistenz mit user_actor, 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 SCIM-Verzeichnissynchronisierung gepusht. | workos_event_id, directory_id, idp_connection_type (nullable; zum Beispiel OktaSCIMV2, AzureSCIMV2) |
Baue vorwärtskompatible Handler. Leite unbekannte type- und
actor.type-Werte durch und ignoriere Felder, die dein Handler nicht erwartet, damit deine
Integration weiterhin funktioniert, wenn neue Aktivitätstypen ausgeliefert werden.
Das vollständige Anfrage- und Antwortschema für GET /v1/compliance/activities, einschließlich jedes unterstützten activity_types[]-Werts.
Frage die zugrunde liegenden Inhalte für Aktivitäten ab, die du im Feed findest, und lösche sie (Compliance Access Key erforderlich).
Wähle ein Polling- oder Batch-Konsummuster und plane die SIEM-Korrelation.
Der vollständige Fehlerkatalog.
Was this page helpful?