Los endpoints de esta página recuperan y eliminan contenido de claude.ai, que está disponible únicamente para organizaciones con el plan Claude Enterprise. La Compliance API se habilita bajo solicitud. Consulta Obtener acceso a la Compliance API.
Alcance requerido: read:compliance_user_data en la Compliance Access Key. Los endpoints de eliminación también requieren delete:compliance_user_data.
Requisito previo: Para listar chats, al menos un ID de usuario obtenido de Listar usuarios de la organización. Los demás endpoints de esta página reciben IDs de recursos directamente.
Los endpoints de esta página exponen el contenido de chats de claude.ai, cargas de archivos, proyectos y archivos adjuntos de proyectos a los revisores de cumplimiento. Admiten exportaciones de "eDiscovery" (descubrimiento electrónico), aplicación de "data loss prevention" (prevención de pérdida de datos), o DLP, y respuestas a solicitudes de eliminación de cuentas. El contenido se conserva durante el tiempo que permita la política de retención de tu organización. Los chats que un usuario ha eliminado de forma lógica (soft-delete) en claude.ai siguen siendo visibles a través de la Compliance API con el campo deleted_at completado; los chats que se han eliminado de forma permanente (hard-delete, ya sea a través de la propia Compliance API o después de que expire el período de retención de la organización) no se pueden recuperar.
Ambos alcances se otorgan únicamente en Compliance Access Keys (sk-ant-api01-...) creadas en claude.ai; consulta Obtener acceso a la Compliance API para aprovisionar una. El alcance read:compliance_user_data cubre la recuperación; delete:compliance_user_data solo se requiere para los endpoints de eliminación. Los endpoints de chats, archivos, proyectos y archivos adjuntos no están disponibles para claves de Admin API (sk-ant-admin01-...); las llamadas autenticadas con una clave de Admin API devuelven 403 Forbidden.
Los endpoints de esta página paginan de dos maneras; consulta Paginar resultados para la referencia completa. Cada sección indica qué esquema aplica.
Usa Listar chats para recorrer páginas de metadatos de chats y luego Obtener mensajes de chat para obtener el contenido completo de los mensajes de un chat.
El endpoint de lista de chats requiere al menos un valor de user_ids[] (y acepta hasta 10 en una sola solicitud), así que primero enumera los IDs de usuario con Listar usuarios de la organización y luego lista los chats de cada usuario o de cada lote de usuarios. La siguiente solicitud lista los chats que pertenecen a un usuario específico desde una fecha determinada.
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 "organization_ids[]=91012d09-e48b-438e-a489-1bebfd8fa6f9" \
--data-urlencode "created_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-4-8",
"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": "claude_chat_01H5CWunD7RpVJ5bHa8RCkja",
"last_id": "claude_chat_01H5CWunD7RpVJ5bHa8RCkja"
}Listar chats devuelve únicamente metadatos. Consulta Listar chats para ver la lista completa de filtros; además del user_ids[] obligatorio, los límites updated_at.* son útiles para la revisión incremental de chats que han cambiado desde una exportación anterior.
Los resultados de chats se ordenan por created_at ascendente (los más antiguos primero), y los empates se resuelven por id. La paginación usa los mismos campos de cursor first_id/last_id/has_more que Paginar resultados; pasa last_id como after_id para avanzar hacia chats más recientes, o first_id como before_id para retroceder hacia los más antiguos.
Para extraer el contenido real del chat, los archivos adjuntos y los artifacts (artefactos) en línea (documentos estructurados que Claude genera dentro de un chat), continúa con el endpoint de mensajes para cada 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"El endpoint de mensajes devuelve los metadatos del chat más un arreglo chat_messages ordenado por created_at. Cuando se omite limit, se devuelve el conjunto completo de mensajes en una sola respuesta; pasa limit, after_id o before_id para paginar chats muy largos. El endpoint también acepta límites de rango created_at.* y updated_at.* (gt, gte, lt, lte) y un parámetro order (asc o desc). Consulta Obtener mensajes de chat para ver la lista completa de parámetros. Para los mensajes de usuario, created_at es el momento en que se envió el mensaje; para los mensajes del asistente, es el momento en que Claude terminó de generar el mensaje. Cada mensaje incluye su contenido de texto y, cuando están presentes, los archivos cargados (normalmente en mensajes de usuario), los archivos generados por herramientas y los artifacts que el asistente produjo o actualizó (normalmente en mensajes del asistente):
{
"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-4-8",
"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 y artifacts pueden ser null en un mensaje determinado. files son cargas binarias (PDFs, imágenes, hojas de cálculo) que el usuario adjuntó al mensaje. generated_files son archivos binarios que el asistente creó durante la conversación mediante el uso de herramientas (por ejemplo, PDFs, hojas de cálculo o presentaciones de diapositivas). artifacts son documentos versionados (por ejemplo, código o markdown) que el asistente generó o actualizó en su respuesta; un artifact puede revisarse a lo largo de varios turnos del asistente en el mismo chat, y cada revisión aparece como un nuevo version_id bajo el mismo id de artifact. Pasa el id de cada entrada (o version_id para artifacts) al endpoint de contenido correspondiente en Recuperar archivos y artifacts para descargarlo.
Los archivos y artifacts se descargan por ID, no se listan de forma independiente. Los IDs provienen del endpoint de mensajes de chat en Recuperar chats y mensajes (los arreglos files, generated_files y artifacts de cada mensaje) o, para cargas a nivel de proyecto, del endpoint de archivos adjuntos de proyecto.
Elige el endpoint que corresponda a tu tipo de ID y a los datos que necesitas. El mismo endpoint de contenido de archivo sirve tanto para archivos de chat como para archivos de proyecto.
| Tienes | Quieres | Usa este endpoint |
|---|---|---|
ID claude_file_* | El contenido binario del archivo | Descargar contenido de archivo |
ID claude_file_* | Solo los metadatos del archivo | Obtener metadatos de archivo |
ID claude_gen_file_* | El contenido binario de un archivo generado por herramientas | Descargar un archivo generado por Claude |
ID claude_gen_file_* | Solo los metadatos de un archivo generado por herramientas | Obtener metadatos de archivo generado |
ID claude_artifact_version_* | El texto de una versión de artifact | Descargar contenido de artifact |
ID claude_artifact_version_* | Solo los metadatos de la versión del artifact | Obtener metadatos de artifact |
ID claude_proj_doc_* | El contenido de texto plano de un documento de proyecto | Obtener contenido de documento de proyecto |
ID claude_proj_doc_* | Solo los metadatos de un documento de proyecto | Obtener metadatos de documento de proyecto |
El endpoint de contenido de archivo transmite la carga original como una respuesta binaria fragmentada con estos encabezados:
Content-Disposition: attachment; filename*=utf-8''<percent-encoded filename> contiene el nombre de archivo original de la carga en forma extendida RFC 5987. La forma extendida se usa para todos los nombres de archivo, no solo para los que no son ASCII.Content-Type contiene el tipo MIME de la carga.Content-MD5 contiene el resumen MD5 del archivo, codificado en base64 según lo especificado en RFC 1864.Transfer-Encoding: chunked siempre está establecido.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"Las opciones -OJ indican a curl que guarde la respuesta con el nombre de archivo de Content-Disposition, que es el nombre de archivo original que cargó el usuario.
El endpoint de contenido de artifact devuelve el cuerpo de texto de una versión de artifact. Pasa el version_id de una de las entradas del arreglo artifacts de un mensaje del asistente, no el id estable del artifact. Cada nueva versión de un artifact tiene su propio version_id, y la Compliance API entrega los bytes exactos de esa versión.
Los proyectos agrupan chats relacionados junto con instrucciones personalizadas, contenido de base de conocimientos y archivos o documentos de texto adjuntos. La Compliance API expone metadatos de proyectos, detalles de proyectos y la lista de archivos adjuntos que pertenecen a un proyecto.
Los resultados de proyectos se ordenan por fecha de creación ascendente. Los resultados de archivos adjuntos se ordenan por created_at ascendente, y los empates se resuelven por id. Las respuestas de lista de proyectos y lista de archivos adjuntos paginan con un token de página opaco next_page en lugar de los cursores first_id/last_id que usan los chats y el Activity Feed. Pasa el token de vuelta como el parámetro de consulta page en la siguiente solicitud.
Un archivo adjunto de proyecto tiene una de dos formas distintas, identificadas por el discriminador type en cada entrada:
Las entradas con type igual a project_file son cargas binarias (PDFs, imágenes, hojas de cálculo) cuyos IDs comienzan con claude_file_; descárgalas con Descargar contenido de archivo. Las entradas con type igual a project_doc son documentos de texto plano (siempre text/plain) cuyos IDs comienzan con claude_proj_doc_; obtenlos con Obtener contenido de documento de proyecto.
Un consumidor que recorre la lista de archivos adjuntos debe bifurcar según type y llamar al endpoint de contenido correspondiente para cada entrada. La siguiente solicitud lista una página de archivos adjuntos; pagina pasando next_page de vuelta como el parámetro page hasta que has_more sea 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
}Toda eliminación exitosa es permanente e inmediata. No hay período de recuperación.
La Compliance API expone endpoints de eliminación permanente (hard-delete) para chats, archivos, documentos de proyecto y proyectos completos. Un chat eliminado permanentemente no se puede restaurar y deja de aparecer en las respuestas de lista a partir de ese momento (mientras que un chat eliminado de forma lógica desde claude.ai sigue apareciendo con deleted_at completado).
Los cuatro endpoints requieren el alcance delete:compliance_user_data, que se otorga por separado del alcance de lectura cuando se crea la Compliance Access Key.
La siguiente solicitud elimina un chat. El mismo patrón aplica a los demás endpoints de eliminación; solo cambia la URL.
# ADVERTENCIA: Esta operación elimina PERMANENTEMENTE el chat, todos sus mensajes
# y cualquier archivo adjunto. La eliminación es inmediata y no se puede deshacer.
# Requiere el scope `delete:compliance_user_data`, que se otorga por separado
# de `read:compliance_user_data` al crear la Compliance Access Key.
# Asegúrate de tener autorización explícita antes de ejecutar esto.
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"
}Cada eliminación exitosa devuelve un pequeño sobre de confirmación con un id y un discriminador type. El endpoint de chat devuelve claude_chat_deleted; verifica el campo type antes de considerar la eliminación como confirmada. Consulta el esquema de respuesta en la página de referencia de API de cada endpoint de eliminación para ver el valor exacto de type que devuelven los demás endpoints.
Un proyecto no se puede eliminar mientras haya chats vinculados a él. La API devuelve 409 con este cuerpo:
{
"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."
}
}Para resolverlo, lista los chats del proyecto con GET /v1/compliance/apps/chats?user_ids[]={user_id}&project_ids[]={project_id} (el endpoint de lista de chats requiere al menos un valor de user_ids[]; enumera los IDs mediante Listar usuarios de la organización), elimina cada uno con DELETE /v1/compliance/apps/chats/{claude_chat_id} (o muévelo fuera del proyecto desde claude.ai) y luego vuelve a intentar la eliminación del proyecto.
El esquema completo de solicitud y respuesta para cada endpoint de chat, archivo, proyecto y artifact.
Enumera las personas y equipos asociados con los chats y proyectos de esta página.
Was this page helpful?