Les endpoints de cette page récupèrent et suppriment du contenu claude.ai et sont disponibles uniquement pour les organisations Claude Enterprise, qui disposent d'un accès en libre-service à l'API Compliance. Consultez Configurer l'API Compliance.
Portée requise : read:compliance_user_data sur la Compliance Access Key. Les endpoints de suppression nécessitent également delete:compliance_user_data.
Prérequis : Aucun pour lister les chats à l'échelle de l'organisation. Pour filtrer la liste des chats sur des utilisateurs spécifiques, vous avez besoin des ID utilisateur provenant de Lister les utilisateurs de l'organisation. Les autres endpoints de cette page prennent directement des ID de ressources.
Les endpoints de cette page exposent aux examinateurs de conformité le contenu des chats claude.ai, les fichiers téléversés, les projets et les pièces jointes de projet. Ils prennent en charge les exports « eDiscovery » (découverte électronique), l'application de la « data loss prevention » (prévention des pertes de données), ou DLP, et les réponses aux demandes de suppression de compte. Le contenu est conservé aussi longtemps que la politique de rétention de votre organisation le permet. Les chats qu'un utilisateur a supprimés de manière réversible (soft delete) dans claude.ai restent visibles via l'API Compliance avec deleted_at renseigné ; les chats qui ont été supprimés définitivement (hard delete) (via l'API Compliance elle-même, ou après l'expiration de la fenêtre de rétention de l'organisation) ne sont pas récupérables.
Les deux portées ne sont accordées que sur les Compliance Access Keys (sk-ant-api01-...) créées dans claude.ai ; consultez Configurer l'API Compliance pour en provisionner une. La portée read:compliance_user_data couvre la récupération ; delete:compliance_user_data n'est requise que pour les endpoints de suppression. Les endpoints de chat, fichier, projet et pièce jointe ne sont pas disponibles pour les clés Admin API (sk-ant-admin01-...) ; les appels authentifiés avec une clé Admin API renvoient 403 Forbidden.
Les endpoints de cette page paginent de deux manières ; consultez Paginer les résultats pour la référence complète. Chaque section indique quel schéma s'applique.
Utilisez Lister les chats pour parcourir les métadonnées des chats, puis Obtenir les messages d'un chat pour récupérer le contenu complet des messages d'un chat.
L'endpoint de liste des chats utilise par défaut la portée de l'organisation entière : omettez user_ids[] pour inclure tous les chats de votre organisation parente. Ajoutez order_by=updated_at pour trier par date de dernière mise à jour. Cette combinaison est la méthode recommandée pour exporter les chats et maintenir un export à jour, car une seule boucle paginée récupère à la fois les chats nouveaux et modifiés pour chaque utilisateur sans avoir à énumérer les utilisateurs au préalable. La requête suivante liste les chats mis à jour depuis une date donnée.
curl --fail-with-body -sS -G \
"https://api.anthropic.com/v1/compliance/apps/chats" \
--header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
--data-urlencode "order_by=updated_at" \
--data-urlencode "updated_at.gte=2025-06-01T00:00:00Z" \
--data-urlencode "limit=100"{
"data": [
{
"id": "claude_chat_01H5CWunD7RpVJ5bHa8RCkja",
"name": "Product Requirements Discussion",
"created_at": "2026-04-10T08:09:10Z",
"updated_at": "2026-04-10T09:10:11Z",
"deleted_at": null,
"href": "https://claude.ai/chat/abcdef01-2345-6789-abcd-ef0123456789",
"model": "claude-opus-5",
"organization_uuid": "91012d09-e48b-438e-a489-1bebfd8fa6f9",
"project_id": "claude_proj_01KGp4eZNug9ri4kE35RSppq",
"user": {
"id": "user_01XyDMpzjS89pFZXqSFUBDr6",
"email_address": "[email protected]"
}
}
],
"has_more": true,
"first_id": "eyJrIjogInVwZGF0ZWRfYXQiLCAidCI6ICIyMDI2LTA0LTEwVDA5OjEwOjExKzAwOjAwIiwgImlkIjogImFiY2RlZjAxLS4uLiJ9",
"last_id": "eyJrIjogInVwZGF0ZWRfYXQiLCAidCI6ICIyMDI2LTA0LTEwVDA5OjEwOjExKzAwOjAwIiwgImlkIjogImFiY2RlZjAxLS4uLiJ9"
}Les résultats sont triés par ordre croissant selon le champ order_by, du plus ancien au plus récent, les égalités étant départagées par id. La pagination utilise les champs de curseur standard first_id/last_id/has_more décrits dans Paginer les résultats. Pour avancer vers les chats plus récents, renvoyez le last_id de la réponse comme after_id dans la requête suivante.
Cette progression vers l'avant est également la façon de maintenir un export à jour entre les exécutions : conservez le last_id de la dernière page et reprenez à partir de celui-ci comme after_id lors de l'exécution suivante. Comme la liste est ordonnée par updated_at, un chat qui change après votre curseur sauvegardé réapparaît devant celui-ci, de sorte que chaque exécution incrémentale renvoie à la fois les tout nouveaux chats et les chats plus anciens qui ont été modifiés depuis. Traitez les résultats de manière idempotente, en utilisant l'id du chat comme clé, pour gérer ces réapparitions.
Quelques contraintes s'appliquent à ces requêtes à l'échelle de l'organisation. Les curseurs sont opaques et liés à la clé de tri, donc un after_id émis sous une valeur order_by est rejeté avec une erreur 400 sous l'autre. Les bornes de filtre temporel doivent également correspondre à la clé de tri : associez les bornes updated_at.* avec order_by=updated_at, et les bornes created_at.* avec le order_by=created_at par défaut. La pagination vers l'arrière avec before_id n'est pas prise en charge, et le filtre project_ids[] n'est pas disponible. Consultez Lister les chats pour la référence complète des filtres.
Pour limiter la liste à des utilisateurs spécifiques à la place (par exemple, une conservation légale sur des dépositaires nommés), passez de 1 à 10 valeurs user_ids[]. Obtenez les ID via Lister les utilisateurs de l'organisation. Les requêtes filtrées par utilisateur trient toujours par created_at (passer order_by=updated_at renvoie une erreur 400) et prennent en charge à la fois after_id et before_id. Le filtrage par project_ids[] n'est disponible que dans cette forme filtrée par utilisateur.
curl --fail-with-body -sS -G \
"https://api.anthropic.com/v1/compliance/apps/chats" \
--header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
--data-urlencode "user_ids[]=user_01XyDMpzjS89pFZXqSFUBDr6" \
--data-urlencode "created_at.gte=2025-06-01T00:00:00Z" \
--data-urlencode "limit=100"La réponse de liste ne contient que les métadonnées des chats. Pour extraire le contenu réel du chat, les fichiers joints et les artifacts en ligne (documents structurés que Claude génère à l'intérieur d'un chat), effectuez un appel de suivi vers l'endpoint des messages pour chaque ID de chat :
chat_id="claude_chat_01H5CWunD7RpVJ5bHa8RCkja"
curl --fail-with-body -sS \
"https://api.anthropic.com/v1/compliance/apps/chats/$chat_id/messages" \
--header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY"L'endpoint des messages renvoie les métadonnées du chat ainsi qu'un tableau chat_messages trié par created_at. Lorsque limit est omis, l'ensemble complet des messages est renvoyé dans une seule réponse ; passez limit, after_id ou before_id pour paginer les chats très longs. L'endpoint accepte également les bornes de plage created_at.* et updated_at.* (gt, gte, lt, lte) et un paramètre order (asc ou desc). Consultez Obtenir les messages d'un chat pour la liste complète des paramètres. Pour les messages utilisateur, created_at correspond au moment où le message a été envoyé ; pour les messages de l'assistant, c'est le moment où Claude a terminé de générer le message. Chaque message contient son contenu textuel et, le cas échéant, les fichiers téléversés (généralement sur les messages utilisateur), les fichiers générés par des outils, et les artifacts que l'assistant a produits ou mis à jour (généralement sur les messages de l'assistant) :
{
"id": "claude_chat_01H5CWunD7RpVJ5bHa8RCkja",
"name": "Product Requirements Discussion",
"created_at": "2026-04-10T08:09:10Z",
"updated_at": "2026-04-10T09:10:11Z",
"deleted_at": null,
"href": "https://claude.ai/chat/abcdef01-2345-6789-abcd-ef0123456789",
"model": "claude-opus-5",
"organization_uuid": "91012d09-e48b-438e-a489-1bebfd8fa6f9",
"project_id": "claude_proj_01KGp4eZNug9ri4kE35RSppq",
"user": {
"id": "user_01XyDMpzjS89pFZXqSFUBDr6",
"email_address": "[email protected]"
},
"chat_messages": [
{
"id": "claude_chat_msg_01VnBPkLmtj7YdW5QrXKEA8c",
"role": "user",
"created_at": "2026-04-10T08:09:10Z",
"content": [
{
"type": "text",
"text": "Can you help me draft requirements for our new dashboard feature?"
}
],
"files": [
{
"id": "claude_file_01UaT9wBcDfGhJkLmNpQrSv7",
"filename": "dashboard_mockup_v1.pdf",
"mime_type": "application/pdf"
}
]
},
{
"id": "claude_chat_msg_01M8tFcHwbQ2kY6NpEjRZv4D",
"role": "assistant",
"created_at": "2026-04-10T08:09:11Z",
"content": [
{
"type": "text",
"text": "I'd be happy to help you draft requirements for your dashboard feature..."
}
],
"generated_files": [
{
"id": "claude_gen_file_01TbR8wAcCeFhJkLnPqStUvX",
"filename": "requirements_summary.csv",
"mime_type": "text/csv"
}
],
"artifacts": [
{
"id": "claude_artifact_01HqRsTuVwXyZa2BcDeFgH4J",
"version_id": "claude_artifact_version_01KmNpQrSt3UvWxYz5AbCdEfG",
"title": "Dashboard Requirements Draft",
"artifact_type": "text/markdown"
}
]
}
],
"has_more": false,
"first_id": "eyJtc2dfdXVpZCI6ICIwZjcwYjA2Ni0uLi4ifQ==",
"last_id": "eyJtc2dfdXVpZCI6ICJhNGUwYjE3Mi0uLi4ifQ=="
}files, generated_files et artifacts peuvent chacun être null sur un message donné. files sont des téléversements binaires (PDF, images, feuilles de calcul) que l'utilisateur a joints au message. generated_files sont des fichiers binaires que l'assistant a créés pendant la conversation via l'utilisation d'outils (par exemple, des PDF, des feuilles de calcul ou des présentations). artifacts sont des documents versionnés (par exemple, du code ou du markdown) que l'assistant a générés ou mis à jour dans sa réponse ; un artifact peut être révisé sur plusieurs tours de l'assistant dans le même chat, et chaque révision apparaît comme un nouveau version_id sous le même id d'artifact. Passez l'id de chaque entrée (ou le version_id pour les artifacts) à l'endpoint de contenu correspondant dans Récupérer les fichiers et les artifacts pour le télécharger.
Les fichiers et les artifacts sont téléchargés par ID, et non listés indépendamment. Les ID proviennent de l'endpoint des messages de chat dans Récupérer les chats et les messages (les tableaux files, generated_files et artifacts de chaque message) ou, pour les téléversements au niveau du projet, de l'endpoint des pièces jointes de projet.
Choisissez l'endpoint qui correspond à votre type d'ID et aux données dont vous avez besoin. Le même endpoint de contenu de fichier sert à la fois pour les fichiers de chat et les fichiers de projet.
| Vous avez | Vous voulez | Utilisez cet endpoint |
|---|---|---|
ID claude_file_* | Le contenu binaire du fichier | Télécharger le contenu du fichier |
ID claude_file_* | Les métadonnées du fichier uniquement | Obtenir les métadonnées du fichier |
ID claude_gen_file_* | Le contenu binaire d'un fichier généré par un outil | Télécharger un fichier généré par Claude |
ID claude_gen_file_* | Les métadonnées d'un fichier généré par un outil uniquement | Obtenir les métadonnées du fichier généré |
ID claude_artifact_version_* | Le texte d'une version d'artifact | Télécharger le contenu de l'artifact |
ID claude_artifact_version_* | Les métadonnées de la version d'artifact uniquement | Obtenir les métadonnées de l'artifact |
ID claude_proj_doc_* | Le contenu en texte brut d'un document de projet | Obtenir le contenu du document de projet |
ID claude_proj_doc_* | Les métadonnées d'un document de projet uniquement | Obtenir les métadonnées du document de projet |
L'endpoint de contenu de fichier diffuse le téléversement original sous forme de réponse binaire en morceaux (chunked) avec ces en-têtes :
Content-Disposition: attachment; filename*=utf-8''<percent-encoded filename> contient le nom de fichier original du téléversement sous la forme étendue RFC 5987. La forme étendue est utilisée pour tous les noms de fichiers, pas seulement ceux non ASCII.Content-Type contient le type MIME du téléversement.Content-MD5 contient l'empreinte MD5 du fichier, encodée en base64 comme spécifié dans la RFC 1864.Transfer-Encoding: chunked est toujours défini.file_id="claude_file_01UaT9wBcDfGhJkLmNpQrSv7"
curl --fail-with-body -sS -OJ \
--header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
"https://api.anthropic.com/v1/compliance/apps/chats/files/$file_id/content"Les options -OJ indiquent à curl d'enregistrer la réponse sous le nom de fichier provenant de Content-Disposition, qui est le nom de fichier original téléversé par l'utilisateur.
L'endpoint de contenu d'artifact renvoie le corps textuel d'une version d'artifact. Passez le version_id de l'une des entrées du tableau artifacts d'un message de l'assistant, et non l'id stable de l'artifact. Chaque nouvelle version d'un artifact possède son propre version_id, et l'API Compliance sert les octets exacts de cette version.
Les projets regroupent des chats liés avec des instructions personnalisées, du contenu de base de connaissances et des fichiers joints ou des documents texte. L'API Compliance expose les métadonnées de projet, les détails de projet et la liste des pièces jointes appartenant à un projet.
Les résultats de projets sont triés par date de création croissante. Les résultats de pièces jointes sont triés par created_at croissant, les égalités étant départagées par id. Les réponses de liste de projets et de liste de pièces jointes paginent avec un jeton de page opaque next_page au lieu des curseurs first_id/last_id utilisés par les chats et l'Activity Feed. Renvoyez le jeton comme paramètre de requête page dans la requête suivante.
Une pièce jointe de projet prend l'une de deux formes distinctes, identifiées par le discriminateur type sur chaque entrée :
Les entrées avec un type de project_file sont des téléversements binaires (PDF, images, feuilles de calcul) dont les ID commencent par claude_file_ ; téléchargez-les avec Télécharger le contenu du fichier. Les entrées avec un type de project_doc sont des documents en texte brut (toujours text/plain) dont les ID commencent par claude_proj_doc_ ; récupérez-les avec Obtenir le contenu du document de projet.
Un consommateur qui parcourt la liste des pièces jointes doit effectuer un branchement sur type et appeler l'endpoint de contenu correspondant pour chaque entrée. La requête suivante liste une page de pièces jointes ; paginez en renvoyant next_page comme paramètre page jusqu'à ce que has_more soit false.
project_id="claude_proj_01KGp4eZNug9ri4kE35RSppq"
curl --fail-with-body -sS -G \
"https://api.anthropic.com/v1/compliance/apps/projects/$project_id/attachments" \
--header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY"{
"data": [
{
"id": "claude_file_01UaT9wBcDfGhJkLmNpQrSv7",
"created_at": "2026-04-10T08:09:10Z",
"filename": "dashboard_mockup_v1.pdf",
"mime_type": "application/pdf",
"type": "project_file"
},
{
"id": "claude_proj_doc_01YnT8sBcWvUtXzQpMkRfDgH",
"created_at": "2026-04-10T08:09:11Z",
"filename": "requirements.md",
"mime_type": "text/plain",
"type": "project_doc"
}
],
"has_more": false,
"next_page": null
}Chaque suppression réussie est permanente et immédiate. Il n'y a pas de fenêtre de récupération.
L'API Compliance expose des endpoints de suppression définitive (hard delete) pour les chats, les fichiers, les documents de projet et les projets entiers. Un chat supprimé définitivement ne peut pas être restauré, et il cesse d'apparaître dans les réponses de liste par la suite (alors qu'un chat supprimé de manière réversible depuis claude.ai apparaît toujours avec deleted_at renseigné).
Les quatre endpoints nécessitent la portée delete:compliance_user_data, qui est accordée séparément de la portée de lecture lors de la création de la Compliance Access Key.
La requête suivante supprime un chat. Le même schéma s'applique aux autres endpoints de suppression ; seule l'URL change.
# AVERTISSEMENT : cette opération supprime DÉFINITIVEMENT la conversation, tous ses messages
# et tous les fichiers joints. La suppression est immédiate et irréversible. Elle
# nécessite le scope `delete:compliance_user_data`, qui est accordé séparément
# de `read:compliance_user_data` lors de la création de la Compliance Access Key.
# Assurez-vous de disposer d'une autorisation explicite avant de l'exécuter.
chat_id="claude_chat_01H5CWunD7RpVJ5bHa8RCkja"
curl --fail-with-body -sS -X DELETE \
"https://api.anthropic.com/v1/compliance/apps/chats/$chat_id" \
--header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY"{
"id": "claude_chat_01H5CWunD7RpVJ5bHa8RCkja",
"type": "claude_chat_deleted"
}Chaque suppression réussie renvoie une petite enveloppe de confirmation avec un id et un discriminateur type. L'endpoint de chat renvoie claude_chat_deleted ; vérifiez le champ type avant de considérer la suppression comme confirmée. Consultez le schéma de réponse sur la page de référence API de chaque endpoint de suppression pour la valeur type exacte renvoyée par les autres endpoints.
Un projet ne peut pas être supprimé tant que des chats y restent attachés. L'API renvoie 409 avec ce corps :
{
"error": {
"type": "conflict_error",
"message": "The \"claude_proj_01KGp4eZNug9ri4kE35RSppq\" project cannot be deleted as it has chats attached to it. Delete or detach all chats, and try deleting the project again."
}
}Pour résoudre ce problème, listez les chats du projet avec GET /v1/compliance/apps/chats?user_ids[]={user_id}&project_ids[]={project_id} (le filtre project_ids[] nécessite au moins une valeur user_ids[] ; énumérez les ID via Lister les utilisateurs de l'organisation), supprimez chacun d'eux avec DELETE /v1/compliance/apps/chats/{claude_chat_id} (ou déplacez-le hors du projet depuis claude.ai), puis réessayez la suppression du projet.
Le schéma complet de requête et de réponse pour chaque endpoint de chat, fichier, projet et artifact.
Énumérez les personnes et les équipes associées aux chats et projets de cette page.
Was this page helpful?