Concevoir votre intégration de conformité
Choisissez entre l'interrogation périodique et la consommation par curseur de l'Activity Feed, corrélez les événements de la Compliance API avec votre SIEM et planifiez la rétention.
Une intégration de production de la Compliance API fait trois choix de conception : la manière dont elle consomme l'Activity Feed (flux d'activité), la manière dont sa sortie se corrèle avec votre système de « security information and event management » (gestion des informations et des événements de sécurité), ou SIEM, et l'endroit où résident les copies à long terme de l'activité et du contenu. Ces choix sont indépendants des points de terminaison eux-mêmes ; cette page vous aide à évaluer les compromis.
Cette page suppose que vous avez lu les pages suivantes :
- Interroger l'Activity Feed, qui définit les paramètres et le contrat de pagination référencés tout au long de cette page.
- Récupérer et supprimer des chats, des fichiers et des projets, qui définit les points de terminaison de chat, de fichier et de projet ainsi que la sémantique de
deleted_atréférencée dans Planifier la rétention du contenu. - Récupérer les transcriptions de session, qui définit les points de terminaison de session locale et distante.
Choisir un modèle de consommation du flux
L'Activity Feed prend en charge deux modèles de consommation : le « window polling » (interrogation périodique par fenêtre) borné par created_at.gte et created_at.lt, et les « cursor-driven incremental reads » (lectures incrémentales pilotées par curseur) qui conservent un curseur issu d'une réponse et le transmettent lors de la requête suivante. Les deux renvoient des objets Activity identiques ; la différence réside dans l'état que votre client conserve entre les appels.
Les deux modèles partagent ces contraintes :
- Les activités sont interrogeables dans la minute qui suit leur survenue et sont conservées pendant 6 ans. L'enregistrement n'est pas rétroactif : il commence lorsque la Compliance API est activée pour la première fois pour votre organisation, et l'activité antérieure à l'activation n'est pas rétroalimentée.
- La valeur maximale de
limitpour chaque page est de 5 000. - Les valeurs de curseur sont des chaînes opaques que vous ne devez pas analyser.
- Les requêtes sont limitées à 600 par minute par organisation parente, partagées entre toutes les clés, toutes les organisations liées et tous les points de terminaison
/v1/compliance/*; contrairement aux points de terminaison de session locale, les points de terminaison de session distante comportent un second budget de requêtes en plus. Consultez 429 Too Many Requests pour les en-têtes de réponse et le contrat de nouvelle tentative.
| Modèle | À choisir lorsque |
|---|---|
| Interrogation par fenêtre | Votre pipeline s'exécute selon un calendrier fixe, vous préférez des workers sans état et vous pouvez tolérer la relecture ou le chevauchement de fenêtres |
| Lectures incrémentales pilotées par curseur | Vous souhaitez la latence la plus faible entre la survenue d'une activité et son ingestion par votre pipeline, vous voulez éviter de relire des pages que vous avez déjà vidées et vous disposez d'un emplacement durable pour conserver un curseur entre les exécutions |
Interrogation par fenêtre
Définissez created_at.lt au moins 1 minute dans le passé afin que chaque activité de la fenêtre soit déjà interrogeable. Utilisez created_at.gte pour la borne inférieure et created_at.lt pour la borne supérieure afin que les fenêtres consécutives se juxtaposent sans lacune ni chevauchement ; réutilisez la valeur lt de la fenêtre précédente comme valeur gte de la fenêtre suivante.
curl --fail-with-body -sS -G \
"https://api.anthropic.com/v1/compliance/activities" \
--header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
--data-urlencode "created_at.gte=2026-04-20T07:00:00Z" \
--data-urlencode "created_at.lt=2026-04-20T08:00:00Z" \
--data-urlencode "limit=5000"Lorsque la réponse contient has_more: true, la fenêtre contient plus d'une page d'activités. Paginez au sein de la fenêtre en transmettant le last_id de la réponse comme after_id lors de la requête suivante (en vous arrêtant lorsque has_more vaut false), ou choisissez une fenêtre temporelle plus petite. Consultez Paginer les résultats pour le contrat complet.
Même avec une juxtaposition propre, une activité indexée après la fermeture de sa fenêtre n'apparaît jamais dans une fenêtre ultérieure. Dédupliquez sur l'id de l'activité et, soit élargissez chaque nouvelle fenêtre pour qu'elle chevauche la précédente de quelques minutes, soit exécutez une passe de réconciliation périodique qui réinterroge une fenêtre plus ancienne.
Lectures incrémentales pilotées par curseur
first_id="activity_01XyDMpzjS89pFZXqSFUBDr6" # first_id from a previous response
curl --fail-with-body -sS -G \
"https://api.anthropic.com/v1/compliance/activities" \
--header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
--data-urlencode "limit=5000" \
--data-urlencode "before_id=$first_id"Parcourez les pages jusqu'à ce que has_more vaille false, puis conservez le first_id de la réponse finale et transmettez-le tel quel comme before_id lors de l'exécution suivante pour récupérer les activités plus récentes que le curseur enregistré. Pour parcourir dans la direction opposée en vue d'un rattrapage historique, conservez last_id et transmettez-le comme after_id à la place. Pour la référence complète curseur contre jeton de page et la sémantique de nouvelle tentative, consultez Paginer les résultats.
Une boucle de rattrapage de production récupère les activités enregistrées depuis votre dernière interrogation en pilotant l'itération à partir de has_more et first_id :
cursor = stored_cursor
loop:
page = GET /v1/compliance/activities?before_id={cursor}&limit=5000
store(page.data)
if page.first_id is not null:
cursor = page.first_id
if not page.has_more: break
persist(cursor)Les curseurs survivent à la rotation des clés ; consultez Gérer et faire tourner les clés.
Corréler avec votre SIEM
Chaque Activity comporte des champs que vous pouvez joindre aux événements déjà présents dans votre SIEM (Splunk, Datadog, Microsoft Sentinel, Cribl ou similaire) :
| Champ de la Compliance API | Cible de jointure |
|---|---|
actor.user_id | L'identifiant utilisateur stable de votre fournisseur d'identité |
actor.email_address | L'e-mail de l'annuaire lorsqu'un identifiant stable n'est pas disponible |
actor.ip_address | Journaux réseau, VPN et de terminaux |
actor.user_agent | Inventaire des terminaux et des appareils, et l'application cliente qui a effectué la requête |
created_at | Corrélation par fenêtre temporelle sur n'importe quelle source |
actor.user_id et actor.email_address sont présents lorsque actor.type vaut user_actor. actor.ip_address et actor.user_agent sont absents sur certains types d'acteurs, tels que anthropic_actor et scim_directory_sync_actor. Vérifiez le discriminateur avant de lire l'un de ces champs. user_id est un identifiant stable et opaque du compte utilisateur : il est cohérent sur tous les points de terminaison de la Compliance API et toutes les charges utiles d'activité, et il ne change pas lorsque l'e-mail ou le nom d'affichage de l'utilisateur change. Utilisez user_id, et non email_address, comme clé de jointure principale.
Les appels à la Compliance API elle-même émettent des activités compliance_api_accessed. Ingérez-les aux côtés des autres types d'activités afin que votre SIEM enregistre qui a interrogé les données de conformité, et quand. Transmettez activity_types[]=compliance_api_accessed pour restreindre la requête, puis, dans votre client, lisez actor.api_key_id de chaque activité dont actor.type vaut api_actor pour attribuer l'accès à une Compliance Access Key ou une clé API Admin spécifique.
Planifier la rétention du contenu
Cinq horizons de rétention régissent ce que vous pouvez récupérer ultérieurement :
| Données | Conservées pendant | Contrôlé par |
|---|---|---|
| Enregistrements de l'Activity Feed | 6 ans | Anthropic |
| Contenu des chats, fichiers et projets | La politique de rétention claude.ai de votre organisation, sauf si un utilisateur le supprime plus tôt | Votre organisation |
| Transcriptions de session locale (sessions sur les machines des utilisateurs) | 6 ans par défaut, ou la période de rétention des conversations personnalisée de votre organisation lorsqu'une période finie est définie | Anthropic par défaut ; votre organisation lorsqu'elle définit une période personnalisée |
| Transcriptions de session distante (sessions dans le cloud) | 6 ans | Anthropic |
| Contenu supprimé définitivement via la Compliance API | Non conservé ; la suppression est immédiate et permanente | L'appelant du point de terminaison DELETE |
Pour savoir comment le reste de la Claude Platform gère la rétention, consultez API et rétention des données.
Choisissez entre l'export-archivage et la récupération à la demande via l'API comme suit :
- Si votre horizon de conservation légale ou d'audit dépasse 6 ans pour les métadonnées d'activité ou les transcriptions de session, exportez les pages de l'Activity Feed et les transcriptions de session vers votre propre archive au fur et à mesure que vous les ingérez.
- Si votre politique de rétention du contenu est plus courte que votre horizon d'eDiscovery, exportez le contenu des chats et des fichiers avant l'expiration de la fenêtre de rétention ; la Compliance API ne peut pas renvoyer un contenu que la rétention a déjà supprimé. Il en va de même pour les transcriptions de session locale, qui suivent la période de rétention des conversations personnalisée de votre organisation lorsqu'une période finie est définie, même lorsque cette période est inférieure à 6 ans. Les points de terminaison de session locale cessent de renvoyer les messages plus anciens que la période actuelle de votre organisation dès que le paramètre change, et allonger la période ultérieurement ne restaure pas les transcriptions déjà expirées ; exportez donc toute transcription que vous devez conserver au-delà de cette période.
- Si vous devez conserver le contenu des chats après que les utilisateurs l'ont supprimé dans claude.ai (par exemple, dans le cadre d'une conservation légale), exportez le contenu des chats, des fichiers et des artefacts vers votre propre archive au fur et à mesure que vous l'ingérez ; la Compliance API ne peut pas renvoyer un contenu qu'un utilisateur a déjà supprimé.
- Si un flux de travail est susceptible d'émettre une suppression définitive via la Compliance API (par exemple, l'application de règles DLP), récupérez et archivez d'abord le contenu cible. Il n'existe aucune fenêtre de récupération après une suppression définitive.
Dans tous les autres cas, appuyez-vous sur la récupération directe via l'API et évitez de maintenir une copie parallèle.
Garanties de livraison et exhaustivité
Considérez l'Activity Feed comme at-least-once (au moins une fois) : un parcours correctement paginé renvoie chaque activité au moins une fois, mais une nouvelle tentative après un échec partiel peut livrer à nouveau des activités que vous avez déjà stockées. Dédupliquez sur le champ id de l'activité.
Les points de terminaison de liste ne renvoient ni champ total_count ni somme de contrôle. Pour attester qu'une exécution d'export est complète, consignez :
- Le curseur de départ et le
last_idterminal. - Le nombre d'enregistrements exportés.
- L'horodatage de l'exécution et le
request-idde la dernière page.
Le volume d'activité n'est pas un contrôle d'exhaustivité. Les types d'activité claude_*_viewed, tels que claude_chat_viewed, suivent le modèle de chargement de chaque application (consultez Comprendre l'objet Activity). Une période comportant des messages de chat mais aucune activité claude_chat_viewed n'indique pas à elle seule des données manquantes. Appuyez-vous plutôt sur le parcours et sur la passe de chevauchement ou de réconciliation décrite dans Interrogation par fenêtre.
Les points de terminaison de contenu (chats, fichiers, projets, pièces jointes de projet et transcriptions de session locale et distante) servent uniquement les données Claude Enterprise. L'Activity Feed expose les événements administratifs et de ressources à l'échelle de l'organisation. La Compliance API n'inclut pas :
- Le texte des prompts ou les réponses du modèle provenant de Claude Console, ou des charges de travail Claude API authentifiées avec une clé API.
- L'activité sur l'appareil dans les sessions locales qui n'est jamais envoyée à Anthropic, comme les fichiers locaux que Claude n'a pas lus.
- L'utilisation de Claude Code authentifiée avec une clé API Claude Console, exécutée via une plateforme cloud tierce (Amazon Bedrock, Google Cloud ou Microsoft Foundry), ou exécutée dans Claude Code sur le web.
- Les sessions locales des organisations ayant activé la préparation HIPAA, et les sessions locales pour lesquelles la rétention zéro des données est en vigueur.
- Les blocs de réflexion, ainsi que les images ou autres contenus binaires, à l'intérieur des transcriptions de session (les transcriptions ne contiennent que les prompts utilisateur, les réponses de l'assistant et l'activité des outils ; les transcriptions de session locale affichent un bloc
textde substitution là où le contenu binaire a été omis). - Le fichier original d'une pièce jointe de chat que claude.ai a stockée sous forme de texte extrait, comme certains téléversements Word, PowerPoint et PDF (le point de terminaison de contenu de fichier renvoie le texte extrait ; consultez Récupérer des fichiers et des artefacts).
- L'invite système des sessions locales (un message marqueur la remplace).
- Les définitions d'outils et la configuration des serveurs MCP dans les transcriptions de session (locale ou distante), ainsi que les métadonnées de citation sur les blocs
textdans les transcriptions de session locale. - Le contenu des transcriptions de session locale dans une organisation dont la clé de chiffrement gérée par le client ne peut actuellement pas être utilisée. Ces requêtes renvoient 503 Service Unavailable, et les métadonnées de session restent listées.
- Le contenu supprimé par la politique de rétention de votre organisation.
- Le contenu des chats que les utilisateurs suppriment dans claude.ai (les chats restent listés, avec
deleted_atrenseigné). - Le contenu supprimé définitivement via la Compliance API.
Consultez la FAQ de la Compliance API pour en savoir plus sur ce que la Compliance API capture et ne capture pas.
Pour la chaîne de traçabilité, stockez les enregistrements exportés avec des métadonnées de provenance : point de terminaison source, paramètres de requête, horodatage de l'exécution et un hachage de contenu de chaque enregistrement.
Étapes suivantes
Paramètres de filtre, pagination et schéma de l'objet Activity.
Les points de terminaison de chat, de fichier et de projet, y compris la suppression définitive.
Listez les sessions que vos utilisateurs exécutent dans les applications et agents Claude, tels que Cowork et Claude Code, et récupérez leurs transcriptions.
Was this page helpful?