Per abilitare la Compliance API, consulta Configurare la Compliance API.
Scope richiesto: read:compliance_activities sulla Compliance Access Key o sulla chiave Admin API.
Sia le Compliance Access Key (sk-ant-api01-...) che possiedono questo scope sia le chiavi Admin API (sk-ant-admin01-...) possono chiamare l'Activity Feed. Consulta Configurare la Compliance API per le condizioni in cui ciascun tipo di chiave possiede lo scope.
L'Activity Feed registra ogni azione di autenticazione, chat, file, progetto, amministrazione e piattaforma che si verifica nella tua organizzazione, in ordine cronologico inverso. Le attività sono interrogabili entro 1 minuto dal loro verificarsi e vengono conservate per 6 anni.
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"
}Filtra per organizzazione, attore, tipo di attività o per una finestra temporale created_at utilizzando i sotto-parametri puntati created_at.gte, .gt, .lte e .lt. Consulta il riferimento API per il tipo e i valori accettati di ciascun parametro.
I parametri ripetibili utilizzano la sintassi di query con parentesi quadre: passa activity_types[]=..., actor_ids[]=... o organization_ids[]=... una volta per ciascun valore.
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"L'Activity Feed produce centinaia di tipi di attività distinti. Consulta Interrogare le attività di compliance nel riferimento API per l'elenco completo dei valori accettati da activity_types[].
Le attività vengono restituite a partire dalla più recente, con i pareggi in created_at risolti tramite l'ID dell'attività, e limitate a limit risultati in ciascuna risposta (predefinito 100, massimo 5.000). Consulta il riferimento API per lo schema completo della risposta.
La Compliance API utilizza due schemi di paginazione a seconda della famiglia di endpoint:
| Famiglia di endpoint | Ordine di ordinamento | Schema | Parametri |
|---|---|---|---|
| Attività | Più recenti prima | Cursore | after_id, before_id (restituiti come first_id, last_id) |
| Chat e messaggi di chat | Più vecchi prima | Cursore | after_id, before_id (restituiti come first_id, last_id) |
| Organizzazioni, progetti, allegati di progetto, utenti, ruoli, permessi dei ruoli, gruppi, membri dei gruppi | Specifico per endpoint | Token di pagina | page (restituito come next_page) |
I file non vengono paginati: vengono recuperati individualmente tramite ID.
I cursori di paginazione e i token di pagina sono stringhe opache: restituiscili senza modificarli. Il loro formato interno non è stabile e analizzarli smetterà di funzionare senza preavviso. Solo uno tra after_id e before_id può essere impostato in ciascuna richiesta, ed entrambi gli schemi restituiscono has_more così sai quando fermarti.
Per scorrere le pagine delle attività:
last_id della risposta come after_id per avanzare alla pagina successiva nell'ordine dei risultati. Con le attività ordinate dalla più recente, la pagina successiva contiene voci più vecchie.first_id come before_id per tornare alla pagina precedente.has_more è false.Il parametro del cursore imposta la direzione della pagina; l'ordine di ordinamento dell'endpoint imposta la direzione temporale. Lo stesso parametro after_id raggiunge qui attività più vecchie. Le chat sono ordinate dalla più vecchia; consulta Recuperare ed eliminare chat, file e progetti per la semantica dei cursori in quel contesto.
I cursori possono essere riutilizzati in sicurezza in caso di nuovo tentativo. Un cursore o un token di pagina proveniente da una pagina restituita con successo rimane valido; una richiesta che fallisce (5xx, timeout, errore di rete) non fa avanzare la tua posizione. Riprova la stessa richiesta con lo stesso cursore. Passa al cursore successivo solo dopo aver memorizzato la pagina a cui esso punta.
# Recupera la prima pagina (attività più recenti per prime) e salva il cursore finale.
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')
# Ripassa il cursore invariato per recuperare la pagina successiva (più vecchia).
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}"Un ciclo di backfill in produzione scorre le attività più vecchie guidando l'iterazione tramite has_more e last_id:
after_id per iniziare dall'inizio).after_id=<last_id> finché has_more non è false.last_id finale solo dopo aver memorizzato ogni pagina che esso copre.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)Ogni voce in data è un'Activity con questa struttura di primo livello:
| Campo | Tipo | Descrizione |
|---|---|---|
id | stringa | Identificatore univoco dell'attività. |
created_at | stringa RFC 3339 | Quando si è verificata l'attività. |
organization_id | stringa o null | Organizzazione in cui si è verificata l'attività, oppure null per eventi non legati a un'organizzazione (accesso, disconnessione, chiamate alla Compliance API). |
organization_uuid | stringa o null | Stesso ambito di organization_id, espresso come UUID. |
actor | Unione Actor | Chi o cosa ha eseguito l'attività. Vedi la tabella degli attori di seguito. |
type | stringa | Il tipo di attività, ad esempio claude_chat_created. |
| campi aggiuntivi | varia | Campi specifici per tipo, ad esempio claude_chat_id sugli eventi di chat o filename sugli eventi di file. Consulta Interrogare le attività di compliance nel riferimento API per l'elenco dei campi per ciascun tipo. |
Il campo actor è un'unione discriminata. Il discriminatore type indica quali altri campi sono presenti:
actor.type | Quando appare | Campi chiave |
|---|---|---|
user_actor | Un utente di claude.ai o della Claude Console che ha effettuato l'accesso ha eseguito l'azione. | email_address, user_id, ip_address, user_agent |
api_actor | Una richiesta ha chiamato la Claude API o la Compliance API con una chiave API emessa dal cliente. Le chiamate alla Compliance API producono questo tipo di attore sia per le Compliance Access Key sia per le chiavi Admin API. | api_key_id, ip_address, user_agent |
admin_api_key_actor | Un amministratore dell'organizzazione ha utilizzato una chiave Admin API per gestire utenti, inviti, workspace o chiavi API. | admin_api_key_id |
unauthenticated_user_actor | Un'azione si è verificata prima del completamento dell'accesso, ad esempio sso_login_initiated. | unauthenticated_email_address, ip_address, user_agent |
anthropic_actor | Anthropic ha agito sull'organizzazione, ad esempio tramite strumenti interni. | email_address (sempre null; presente per coerenza di struttura con user_actor, poiché gli operatori di Anthropic non sono rappresentati da email individuali) |
scim_directory_sync_actor | Un identity provider (come Okta, Microsoft Entra ID o JumpCloud) ha inviato una modifica tramite la sincronizzazione della directory SCIM. | workos_event_id, directory_id, idp_connection_type (nullable; ad esempio OktaSCIMV2, AzureSCIMV2) |
Costruisci gestori compatibili con le versioni future. Lascia passare i valori di type e
actor.type non riconosciuti e ignora i campi che il tuo gestore non si aspetta, così la tua
integrazione continua a funzionare quando vengono rilasciati nuovi tipi di attività.
Lo schema completo di richiesta e risposta per GET /v1/compliance/activities, incluso ogni valore supportato di activity_types[].
Interroga ed elimina il contenuto sottostante delle attività che trovi nel feed (Compliance Access Key richiesta).
Scegli un pattern di consumo a polling o batch e pianifica la correlazione SIEM.
Il catalogo completo degli errori.
Was this page helpful?