Récupérer et supprimer des chats, des fichiers et des projets
Accédez au contenu des chats, aux pièces jointes et aux projets des organisations claude.ai via la Compliance API.
Les points de terminaison de cette page exposent le contenu des chats, les fichiers téléversés, les projets et les pièces jointes de projets Claude Enterprise aux responsables de la conformité. Ils prennent en charge les exports d'« eDiscovery » (investigation é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 des chats, fichiers et projets est conservé aussi longtemps que la politique de rétention de votre organisation le permet. Lorsqu'un utilisateur supprime un chat dans claude.ai, le contenu de ses messages, les fichiers joints, les fichiers générés par des outils et les artifacts sont supprimés avec lui. La Compliance API liste toujours le chat, avec deleted_at renseigné et un name vide, et renvoie ses messages sans leur contenu. Les chats qui ont été supprimés définitivement (via la Compliance API elle-même, ou après 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 la Compliance API 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 points de terminaison de suppression. Les points de terminaison de chats, fichiers, projets et pièces jointes 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 points de terminaison 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.
Récupérer les chats et les messages
Utilisez Lister les chats pour parcourir les métadonnées des chats page par page, puis Obtenir les messages d'un chat pour récupérer le contenu complet des messages d'un chat.
Le point de terminaison de liste des chats a par défaut une portée à l'échelle de l'organisation : 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 les nouveaux chats, les chats modifiés et les chats supprimés dans claude.ai pour chaque utilisateur, sans é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": "user@example.com"
}
}
],
"has_more": true,
"first_id": "eyJrIjogInVwZGF0ZWRfYXQiLCAidCI6ICIyMDI2LTA0LTEwVDA5OjEwOjExKzAwOjAwIiwgImlkIjogImFiY2RlZjAxLS4uLiJ9",
"last_id": "eyJrIjogInVwZGF0ZWRfYXQiLCAidCI6ICIyMDI2LTA0LTEwVDA5OjEwOjExKzAwOjAwIiwgImlkIjogImFiY2RlZjAxLS4uLiJ9"
}Les résultats sont triés par ordre croissant selon le champ order_by, les plus anciens en premier, 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, repassez le last_id de la réponse comme after_id dans la requête suivante.
Cette progression vers l'avant est également la manière de maintenir un export à jour d'une exécution à l'autre : 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 enregistré réapparaît devant celui-ci, de sorte que chaque exécution incrémentale renvoie à la fois les chats entièrement nouveaux et les chats plus anciens qui ont depuis été modifiés ou supprimés dans claude.ai. Traitez les résultats de manière idempotente, en utilisant l'id du chat comme clé, pour gérer ces réapparitions. Un chat qui revient avec deleted_at renseigné n'a plus de contenu à récupérer ; traitez-le donc comme supprimé plutôt que comme mis à jour.
Quelques contraintes s'appliquent à ces requêtes à l'échelle de l'organisation. Les curseurs sont opaques et liés à la clé de tri, de sorte qu'un after_id émis sous une valeur de 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.* à order_by=updated_at, et les bornes created_at.* à la valeur par défaut order_by=created_at. La pagination 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 restreindre la liste à des utilisateurs spécifiques (par exemple, une conservation légale visant des dépositaires nommés), passez de 1 à 10 valeurs user_ids[]. Obtenez les identifiants via Lister les utilisateurs de l'organisation. Les requêtes filtrées par utilisateur sont toujours triées 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 sous cette forme filtrée par utilisateur. La combinaison de user_ids[] avec une borne updated_at.* quelconque est dépréciée et sera rejetée avec une erreur 400 après le 2026-09-22 ; pour maintenir un ensemble de dépositaires à jour par date de mise à jour, exécutez le parcours à l'échelle de l'organisation avec order_by=updated_at sans user_ids[] et sélectionnez les chats des dépositaires dans ses résultats, et réservez la liste filtrée par utilisateur aux exports ordonnés par created_at.
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 des chats, les fichiers joints et les artifacts en ligne (documents structurés que Claude génère à l'intérieur d'un chat), poursuivez avec le point de terminaison des messages pour chaque identifiant 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"Le point de terminaison 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é en une seule réponse ; passez limit, after_id ou before_id pour parcourir page par page les chats très longs. Le point de terminaison accepte également des bornes de plage created_at.* et updated_at.* (gt, gte, lt, lte) ainsi qu'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, il correspond au 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": "user@example.com"
},
"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",
"size_bytes": 482133,
"md5": "56367e4d2705cc9c025ad07424e944f0",
"created_at": "2026-04-10T08:09:10Z"
}
]
},
{
"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",
"size_bytes": 2048,
"md5": "89968669461d95416549937168269d6b"
}
],
"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 désigne les fichiers et pièces jointes textuelles (par exemple, PDF, images, feuilles de calcul, documents et texte collé) que l'utilisateur a joints au message, tels que claude.ai les a stockés. generated_files désigne les fichiers binaires que l'assistant a créés au cours de la conversation via l'utilisation d'outils (par exemple, PDF, feuilles de calcul ou présentations). artifacts désigne les 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) au point de terminaison de contenu correspondant dans Récupérer les fichiers et les artifacts pour le télécharger.
Récupérer les fichiers et les artifacts
Les fichiers et les artifacts sont téléchargés par identifiant, et non listés indépendamment. Les identifiants proviennent du point de terminaison 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, du point de terminaison des pièces jointes de projet.
Choisissez le point de terminaison qui correspond à votre type d'identifiant et aux données dont vous avez besoin. Le même point de terminaison de contenu de fichier sert à la fois les fichiers de chat et les fichiers de projet.
| Vous avez | Vous voulez | Utilisez ce point de terminaison |
|---|---|---|
Identifiant claude_file_* | Le contenu du fichier | Télécharger le contenu d'un fichier |
Identifiant claude_file_* | Les métadonnées du fichier uniquement | Obtenir les métadonnées d'un fichier |
Identifiant 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 |
Identifiant claude_gen_file_* | Les métadonnées d'un fichier généré par un outil uniquement | Obtenir les métadonnées d'un fichier généré |
Identifiant claude_artifact_version_* | Le texte d'une version d'artifact | Télécharger le contenu d'un artifact |
Identifiant claude_artifact_version_* | Les métadonnées de la version d'artifact uniquement | Obtenir les métadonnées d'un artifact |
Identifiant claude_proj_doc_* | Le contenu en texte brut d'un document de projet | Obtenir le contenu d'un document de projet |
Identifiant claude_proj_doc_* | Les métadonnées d'un document de projet uniquement | Obtenir les métadonnées d'un document de projet |
Le point de terminaison de contenu de fichier diffuse en streaming le contenu que claude.ai a stocké pour le fichier sous forme de réponse binaire fragmentée. Ce contenu n'est pas toujours identique au fichier que l'utilisateur a téléversé. Les images peuvent être servies sous forme de copie traitée plutôt que sous forme des octets téléversés. Certains documents joints aux chats (par exemple, les fichiers Word, les fichiers PowerPoint et certains PDF) sont stockés sous forme du texte que claude.ai en a extrait. Pour ces documents, le point de terminaison renvoie le texte extrait sous le nom de fichier d'origine, et le document d'origine n'est pas disponible via la Compliance API. Les champs size_bytes et md5 décrivent le contenu stocké plutôt que le fichier téléversé. Le nom de fichier et le mime_type peuvent toujours désigner le format du document téléversé. Identifiez le format d'un fichier à partir des octets renvoyés, et non à partir de son nom ou de son type déclaré.
La réponse contient les en-têtes suivants :
Content-Disposition: attachment; filename*=utf-8''<percent-encoded filename>contient le nom de fichier d'origine du téléversement sous la forme étendue RFC 5987. La forme étendue est utilisée pour tous les noms de fichiers, et pas seulement pour les noms non ASCII.Content-Typecontient le type MIME enregistré pour le contenu stocké, qui, pour un document stocké sous forme de texte extrait, peut toujours désigner le format du document d'origine.Content-MD5contient l'empreinte MD5 des octets servis, encodée en base64 comme spécifié dans la RFC 1864.Transfer-Encoding: chunkedest 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 issu de Content-Disposition, qui est le nom de fichier d'origine téléversé par l'utilisateur.
Le point de terminaison 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 la Compliance API sert les octets exacts de cette version.
Récupérer les projets et les pièces jointes
Les projets regroupent des chats liés avec des instructions personnalisées, du contenu de base de connaissances et des fichiers ou documents texte joints. La Compliance API expose les métadonnées des projets, les détails des projets et la liste des pièces jointes appartenant à un projet.
- Lister les projets
- Obtenir les détails d'un projet
- Lister les pièces jointes d'un projet
- Obtenir le contenu d'un document de 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. Repassez le jeton comme paramètre de requête page dans la requête suivante.
Fichiers de projet et documents de projet
Une pièce jointe de projet prend l'une de deux formes distinctes, identifiées par le discriminateur type de chaque entrée :
Les entrées dont le type est project_file sont des fichiers téléversés (PDF, images, feuilles de calcul) dont les identifiants commencent par claude_file_ ; téléchargez-les avec Télécharger le contenu d'un fichier. Les entrées dont le type est project_doc sont des documents en texte brut (toujours text/plain) dont les identifiants commencent par claude_proj_doc_, y compris des documents tels que des fichiers Word que claude.ai convertit en texte lorsqu'ils sont ajoutés à un projet ; récupérez-les avec Obtenir le contenu d'un document de projet.
Un consommateur qui parcourt la liste des pièces jointes doit effectuer un branchement sur type et appeler le point de terminaison de contenu correspondant pour chaque entrée. La requête suivante liste une page de pièces jointes ; paginez en repassant 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",
"size_bytes": 482133,
"md5": "56367e4d2705cc9c025ad07424e944f0",
"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
}Supprimer du contenu
La Compliance API expose des points de terminaison de suppression définitive 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 ensuite d'apparaître dans les réponses de liste.
- Supprimer un chat : supprime également les messages du chat et tous les fichiers joints à ces messages.
- Supprimer un fichier : gère à la fois les fichiers de chat et les fichiers de projet.
- Supprimer un document de projet : supprime un seul document de projet par identifiant.
- Supprimer un projet : consultez Détacher les chats avant de supprimer un projet.
Les quatre points de terminaison 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 points de terminaison de suppression ; seule l'URL change.
# AVERTISSEMENT : cette opération supprime DÉFINITIVEMENT le chat, tous ses messages
# et tous les fichiers joints. La suppression est immédiate et irréversible. Elle
# nécessite la portée `delete:compliance_user_data`, accordée 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. Le point de terminaison 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 point de terminaison de suppression pour connaître la valeur exacte de type renvoyée par les autres points de terminaison.
Détacher les chats avant de supprimer un projet
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 identifiants 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.
Étapes suivantes
Le schéma complet des requêtes et des réponses pour chaque point de terminaison de chat, de fichier, de projet et d'artifact.
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.
Énumérez les personnes et les équipes associées aux chats et aux projets de cette page.
Was this page helpful?