L'API de conformité est activée sur demande. Les organisations Claude Enterprise ont accès à l'API complète ; les organisations Claude Console ont accès uniquement au flux d'activité (cette page). Consultez Obtenir l'accès à l'API de conformité.
Portée requise : read:compliance_activities sur la clé d'accès de conformité ou la clé Admin API.
Les clés d'accès de conformité (sk-ant-api01-...) portant cette portée et les clés Admin API (sk-ant-admin01-...) peuvent toutes deux appeler le flux d'activité. Consultez Obtenir l'accès à l'API de conformité pour connaître les conditions dans lesquelles chaque type de clé porte cette portée.
Le flux d'activité enregistre chaque action d'authentification, de chat, de fichier, de projet, d'administration et de plateforme qui se produit dans votre organisation, dans l'ordre chronologique inverse. Les activités peuvent être interrogées dans la minute suivant leur occurrence et sont conservées pendant 6 ans.
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"
}Filtrez par organisation, acteur, type d'activité ou fenêtre temporelle created_at à l'aide des sous-paramètres pointés created_at.gte, .gt, .lte et .lt. Consultez la référence de l'API pour connaître le type et les valeurs acceptées de chaque paramètre.
Les paramètres répétables utilisent la syntaxe de requête avec crochets de tableau : passez activity_types[]=..., actor_ids[]=... ou organization_ids[]=... une fois pour chaque valeur.
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"Le flux d'activité produit des centaines de types d'activité distincts. Consultez Interroger les activités de conformité dans la référence de l'API pour obtenir la liste complète des valeurs acceptées par activity_types[].
Les activités sont renvoyées de la plus récente à la plus ancienne, les égalités sur created_at étant départagées par l'identifiant d'activité, et plafonnées à limit résultats dans chaque réponse (100 par défaut, 5 000 au maximum). Consultez la référence de l'API pour le schéma de réponse complet.
L'API de conformité utilise deux schémas de pagination selon la famille de points de terminaison :
| Famille de points de terminaison | Ordre de tri | Schéma | Paramètres |
|---|---|---|---|
| Activités | Plus récent en premier | Curseur | after_id, before_id (renvoyés sous first_id, last_id) |
| Chats et messages de chat | Plus ancien en premier | Curseur | after_id, before_id (renvoyés sous first_id, last_id) |
| Projets, pièces jointes de projet, utilisateurs, rôles, permissions de rôle, groupes, membres de groupe | Spécifique au point de terminaison | Jeton de page | page (renvoyé sous ) |
Les organisations et les fichiers ne sont pas paginés : Lister les organisations renvoie tous les résultats en une seule réponse, et les fichiers sont récupérés individuellement par identifiant.
Les curseurs de pagination et les jetons de page sont des chaînes opaques : renvoyez-les tels quels. Leur format interne n'est pas stable, et les analyser entraînera des dysfonctionnements sans préavis. Un seul des paramètres after_id ou before_id peut être défini dans chaque requête, et les deux schémas renvoient has_more pour que vous sachiez quand vous arrêter.
Pour parcourir les activités page par page :
last_id de la réponse comme after_id pour avancer à la page suivante dans l'ordre des résultats. Les activités étant triées de la plus récente à la plus ancienne, la page suivante contient des entrées plus anciennes.first_id comme before_id pour revenir à la page précédente.has_more vaut false.Le paramètre de curseur définit la direction de la page ; l'ordre de tri du point de terminaison définit la direction temporelle. Le même paramètre after_id atteint ici des activités plus anciennes. Les chats sont triés du plus ancien au plus récent ; consultez Récupérer et supprimer des chats, fichiers et projets pour la sémantique des curseurs dans ce contexte.
Les curseurs peuvent être réutilisés en toute sécurité lors d'une nouvelle tentative. Un curseur ou un jeton de page provenant d'une page renvoyée avec succès reste valide ; une requête qui échoue (5xx, délai d'attente dépassé, erreur réseau) n'avance pas votre position. Réessayez la même requête avec le même curseur. Ne passez au curseur suivant qu'après avoir stocké la page au-delà de laquelle il pointe.
# Récupérez la première page (activités les plus récentes d'abord) et capturez son curseur de fin.
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')
# Renvoyez le curseur tel quel pour récupérer la page suivante (plus ancienne).
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}"Une boucle de remplissage rétroactif (backfill) en production parcourt les activités plus anciennes en pilotant l'itération à partir de has_more et last_id :
after_id pour commencer depuis le début).after_id=<last_id> jusqu'à ce que has_more vaille false.last_id final uniquement après avoir stocké chaque page qu'il couvre.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)Chaque entrée dans data est une activité (Activity) avec cette structure de premier niveau :
| Champ | Type | Description |
|---|---|---|
id | chaîne | Identifiant unique de l'activité. |
created_at | chaîne RFC 3339 | Moment où l'activité s'est produite. |
organization_id | chaîne ou null | Organisation où l'activité s'est produite, ou null pour les événements non liés à une organisation (connexion, déconnexion, appels à l'API de conformité). |
organization_uuid | chaîne ou null | Même périmètre que organization_id, exprimé sous forme d'UUID. |
actor | union Actor | Qui ou quoi a effectué l'activité. Voir le tableau des acteurs ci-après. |
Le champ actor est une union discriminée. Le discriminant type vous indique quels autres champs sont présents :
actor.type | Quand il apparaît | Champs clés |
|---|---|---|
user_actor | Un utilisateur connecté de claude.ai ou de Claude Console a effectué l'action. | email_address, user_id, ip_address, user_agent |
api_actor | Une requête a appelé l'API Claude ou l'API de conformité avec une clé API émise par le client. Les appels à l'API de conformité produisent ce type d'acteur pour les clés d'accès de conformité comme pour les clés Admin API. | api_key_id, ip_address, user_agent |
admin_api_key_actor | Un administrateur d'organisation a utilisé une clé Admin API pour gérer des utilisateurs, des invitations, des espaces de travail ou des clés API. |
Concevez des gestionnaires compatibles avec les évolutions futures. Laissez passer les valeurs type et actor.type non reconnues, et ignorez les champs que votre gestionnaire n'attend pas, afin que votre intégration continue de fonctionner lorsque de nouveaux types d'activité sont déployés.
Le schéma complet de requête et de réponse pour GET /v1/compliance/activities, y compris toutes les valeurs activity_types[] prises en charge.
Interrogez et supprimez le contenu sous-jacent des activités que vous trouvez dans le flux (clé d'accès de conformité requise).
Choisissez un modèle de consommation par interrogation ou par lots et planifiez la corrélation SIEM.
Le catalogue complet des erreurs.
Was this page helpful?
next_pagetype | chaîne | Le type d'activité, par exemple claude_chat_created. |
| champs supplémentaires | variable | Champs spécifiques au type, par exemple claude_chat_id sur les événements de chat ou filename sur les événements de fichier. Consultez Interroger les activités de conformité dans la référence de l'API pour la liste des champs par type. |
admin_api_key_id |
unauthenticated_user_actor | Une action s'est produite avant la fin de la connexion, par exemple sso_login_initiated. | unauthenticated_email_address, ip_address, user_agent |
anthropic_actor | Anthropic a agi sur l'organisation, par exemple via des outils internes. | email_address (toujours null ; présent pour la cohérence de structure avec user_actor, car les opérateurs Anthropic ne sont pas représentés par une adresse e-mail individuelle) |
scim_directory_sync_actor | Un fournisseur d'identité (tel qu'Okta, Microsoft Entra ID ou JumpCloud) a poussé une modification via la synchronisation d'annuaire SCIM. | workos_event_id, directory_id, idp_connection_type (nullable ; par exemple OktaSCIMV2, AzureSCIMV2) |