---
title: Recuperar transcripciones de sesiones
url: https://platform.claude.com/docs/es/manage-claude/compliance-sessions
description: Lista las sesiones que tus usuarios ejecutan en las aplicaciones y agentes de Claude, como Claude Cowork y Claude Code, y recupera sus transcripciones mediante la Compliance API.
---

<Note>
  Los endpoints de esta página solo están disponibles para organizaciones de Claude Enterprise. Los endpoints de sesiones locales y remotas son estables para las sesiones de Cowork, Claude Code y Claude for Microsoft 365; la cobertura de las sesiones de Claude Science y Claude in Chrome está en beta. Los endpoints funcionan con la misma Compliance Access Key y el mismo alcance `read:compliance_user_data` que los [endpoints de chats, archivos y proyectos](https://platform.claude.com/docs/es/manage-claude/compliance-content-data); no se requiere ninguna clave, alcance, configuración ni actualización de cliente nueva. Consulta [Configurar la Compliance API](https://platform.claude.com/docs/es/manage-claude/compliance-api-access).
</Note>

<Check>
  **Alcance requerido:** `read:compliance_user_data` en la Compliance Access Key.

  **Requisito previo:** Ninguno para enumerar sesiones en toda la organización. Para filtrar la lista de sesiones remotas (sesiones en la nube) por usuarios específicos, necesitas los ID de usuario de [Listar usuarios de la organización](https://platform.claude.com/docs/es/manage-claude/compliance-org-data#list-organization-users); la lista de sesiones locales no tiene filtro de usuario.
</Check>

Los endpoints de esta página exponen a los revisores de cumplimiento las transcripciones de las sesiones que tus usuarios ejecutan en las aplicaciones y agentes de Claude (actualmente: Cowork, Claude Code, Claude Science, Claude for Microsoft 365 y Claude in Chrome) de tus organizaciones de Claude Enterprise. Cada sesión es una única conversación con Claude; su transcripción es la secuencia de prompts del usuario, respuestas del asistente, y llamadas a herramientas y sus resultados en esa conversación. Los endpoints admiten exportaciones de "eDiscovery" (descubrimiento electrónico) y la aplicación de "data loss prevention" (prevención de pérdida de datos), o DLP.

La Compliance API agrupa las sesiones en dos familias de endpoints según dónde se ejecutan: endpoints de sesiones locales para las sesiones en las máquinas de los usuarios, y endpoints de sesiones remotas para las sesiones que se ejecutan en la nube en entornos administrados por Anthropic. Ambas familias son de solo lectura, y ninguna está disponible para las claves de Admin API (`sk-ant-admin01-...`): las llamadas autenticadas con una clave de Admin API devuelven [403 Forbidden](https://platform.claude.com/docs/es/manage-claude/compliance-errors#403-forbidden).

La siguiente tabla relaciona cada producto, y dónde se ejecuta, con la familia de endpoints que devuelve sus sesiones y el valor de `product_surface` que las identifica en las respuestas. Se agregan productos a esta tabla a medida que se amplía la cobertura.

| Producto y dónde se ejecuta                                                                                                                                           | Familia de endpoints                                                  | `product_surface`                                                                                                                                         |
| --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Cowork en Claude Desktop, que se ejecuta en la máquina del usuario                                                                                                    | Endpoints de sesiones locales (`/v1/compliance/apps/sessions/local`)  | `cowork`                                                                                                                                                  |
| Claude Code en la terminal, en Claude Desktop o en una extensión de IDE, que se ejecuta en la máquina del usuario                                                     | Endpoints de sesiones locales                                         | `claude_code`                                                                                                                                             |
| Aplicación de escritorio Claude Science, que se ejecuta en la máquina del usuario                                                                                     | Endpoints de sesiones locales                                         | `claude_science`                                                                                                                                          |
| Claude for Microsoft 365 (los complementos de Claude para Excel, PowerPoint, Word y Outlook), que se ejecuta en las aplicaciones de escritorio o web de Microsoft 365 | Endpoints de sesiones locales                                         | `office_agents/excel`, `office_agents/powerpoint`, `office_agents/word` u `office_agents/outlook` (`office_agents` cuando no se identifica la aplicación) |
| Claude in Chrome (el chat integrado de la extensión del navegador), que se ejecuta en la máquina del usuario                                                          | Endpoints de sesiones locales                                         | `claude_in_chrome`                                                                                                                                        |
| Sesiones de Cowork iniciadas en claude.ai web o móvil, que se ejecutan en la nube en entornos administrados por Anthropic                                             | Endpoints de sesiones remotas (`/v1/compliance/apps/sessions/remote`) | `cowork_remote`                                                                                                                                           |

La captura de sesiones locales está vinculada a que la Compliance API esté habilitada para tu organización y se aplica mientras los usuarios tienen la sesión iniciada con su cuenta de Claude Enterprise. Los endpoints de sesiones no devuelven lo siguiente:

* Sesiones de Claude Code autenticadas con una clave de API de Claude Console, o ejecutadas a través de una plataforma en la nube de terceros como Amazon Bedrock, Google Cloud o Microsoft Foundry.
* [Sesiones en la nube de Claude Code](https://code.claude.com/docs/es/claude-code-on-the-web) (incluidas las rutinas de Claude Code que se ejecutan en la nube), que se ejecutan en infraestructura en la nube en lugar de en la máquina del usuario. Estas sesiones en la nube no son sesiones remotas, aunque ambas se ejecutan en la nube; los endpoints de sesiones remotas solo devuelven sesiones de Cowork.
* Sesiones locales de productos distintos de Cowork y Claude Code en organizaciones con [preparación para HIPAA](https://platform.claude.com/docs/es/manage-claude/api-and-data-retention#hipaa-readiness) habilitada. En esas organizaciones, los endpoints de sesiones locales solo devuelven sesiones de Cowork y Claude Code, y el contenido de sesión capturado se almacena durante 30 días.
* Sesiones locales para las que está vigente la ["zero data retention" (retención de datos cero), o ZDR](https://platform.claude.com/docs/es/manage-claude/api-and-data-retention#zero-data-retention-zdr-scope). Estas sesiones se excluyen de los resultados de la lista, y los endpoints de recuperación y de mensajes devuelven 404 para ellas.

Anthropic recomienda la Compliance API para recuperar el contenido de las sesiones. La siguiente tabla compara las [sesiones locales](https://platform.claude.com/docs/es/manage-claude/compliance-sessions#retrieve-local-sessions) y las [sesiones remotas](https://platform.claude.com/docs/es/manage-claude/compliance-sessions#retrieve-remote-sessions) con las alternativas basadas en OpenTelemetry disponibles para Cowork y Claude Code: el [registro de OpenTelemetry de Cowork](https://support.claude.com/en/articles/14477985-monitor-claude-cowork-activity-with-opentelemetry) y la [supervisión de Claude Code](https://code.claude.com/docs/es/monitoring-usage).

|                                                                                       | Sesiones locales (en las máquinas de los usuarios)                                                                                                                                                                                     | Sesiones remotas (en la nube)                                                                                                                                                      | Registro de OpenTelemetry                                                                                                     |
| ------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- |
| Entrega                                                                               | Pull: consulta y exportación por HTTPS                                                                                                                                                                                                 | Pull: consulta y exportación por HTTPS                                                                                                                                             | Push: enviado por streaming a tu recolector OTLP                                                                              |
| Configuración                                                                         | Funciona con tu Compliance Access Key existente                                                                                                                                                                                        | Funciona con tu Compliance Access Key existente                                                                                                                                    | El administrador configura un endpoint OTLP y los ajustes de captura de contenido                                             |
| Infraestructura                                                                       | Alojada por Anthropic                                                                                                                                                                                                                  | Alojada por Anthropic                                                                                                                                                              | Tú ejecutas el recolector y el almacenamiento                                                                                 |
| Prefijo de ID                                                                         | `clls_`                                                                                                                                                                                                                                | `cse_`                                                                                                                                                                             | N/A                                                                                                                           |
| Valores de `product_surface`                                                          | `cowork`, `claude_code`, `claude_science`, `claude_in_chrome` y valores que comienzan con `office_agents`                                                                                                                              | `cowork_remote`                                                                                                                                                                    | N/A                                                                                                                           |
| Retención                                                                             | 6 años de forma predeterminada, o el período de retención de conversaciones personalizado de tu organización cuando se establece uno finito; 30 días en organizaciones con preparación para HIPAA habilitada; conservado por Anthropic | 6 años, a menos que un usuario elimine la sesión antes; conservado por Anthropic                                                                                                   | Tu infraestructura, tus políticas                                                                                             |
| Prompts del usuario y respuestas del asistente                                        | Sí                                                                                                                                                                                                                                     | Sí                                                                                                                                                                                 | Sí, sujeto a los ajustes de captura de contenido                                                                              |
| Entradas de herramientas                                                              | Truncadas a 10,000 bytes por entrada de forma predeterminada; hasta aproximadamente 1 MiB si se solicita                                                                                                                               | Truncadas a 10,000 bytes por entrada de forma predeterminada; hasta aproximadamente 1 MiB si se solicita                                                                           | Resúmenes truncados                                                                                                           |
| Contenido de resultados de herramientas                                               | Cada entrada de texto truncada a 10,000 bytes de forma predeterminada; hasta aproximadamente 1 MiB si se solicita                                                                                                                      | Cada entrada de texto truncada a 10,000 bytes de forma predeterminada; hasta aproximadamente 1 MiB si se solicita                                                                  | Metadatos como el tamaño y el éxito; Claude Code también puede capturar contenido con un ajuste opcional con límite de tamaño |
| Contenido de archivos                                                                 | Sí, a través de las llamadas a herramientas de la transcripción (solo texto; el resto del contenido aparece como un marcador de posición)                                                                                              | Sí, a través de las llamadas a herramientas de la transcripción (solo texto; el resto del contenido se omite)                                                                      | Rutas de archivos; Claude Code también puede capturar el contenido con un ajuste opcional con límite de tamaño                |
| Metadatos del host y del dispositivo (tipo de terminal, rutas del espacio de trabajo) | No                                                                                                                                                                                                                                     | No                                                                                                                                                                                 | Sí                                                                                                                            |
| Uso de tokens y costo                                                                 | No; disponible a través de la [Claude Enterprise Analytics API](https://platform.claude.com/docs/es/manage-claude/analytics-api#get-access-to-the-claude-enterprise-analytics-api)                                                     | No; disponible a través de la [Claude Enterprise Analytics API](https://platform.claude.com/docs/es/manage-claude/analytics-api#get-access-to-the-claude-enterprise-analytics-api) | Sí                                                                                                                            |

## Sesiones en las máquinas de los usuarios (sesiones locales)

Las sesiones locales se ejecutan en las máquinas de los usuarios mientras tienen la sesión iniciada con su cuenta de Claude Enterprise: actualmente, Cowork en Claude Desktop, Claude Code (en la terminal, en Claude Desktop o en una extensión de IDE), la aplicación de escritorio Claude Science, Claude for Microsoft 365 (en Excel, PowerPoint, Word y Outlook) y la extensión de navegador Claude in Chrome.

La Compliance API expone las sesiones locales a través de tres endpoints: `GET /v1/compliance/apps/sessions/local` enumera los metadatos de las sesiones, `GET /v1/compliance/apps/sessions/local/{session_id}` recupera los metadatos de una sesión y `GET /v1/compliance/apps/sessions/local/{session_id}/messages` devuelve la transcripción de una sesión. Los tres requieren el alcance `read:compliance_user_data` y solo cuentan para el "rate limit" (límite de velocidad) compartido de la Compliance API; no están sujetos al segundo presupuesto de solicitudes que se aplica a los endpoints de sesiones remotas. Consulta [429 Too Many Requests](https://platform.claude.com/docs/es/manage-claude/compliance-errors#429-too-many-requests). Si las sesiones locales no están disponibles para tu organización principal, los tres endpoints devuelven 404 con el mensaje `Local sessions are not available.` (consulta [Sesión local no encontrada](https://platform.claude.com/docs/es/manage-claude/compliance-errors#local-session-not-found)); mientras los listados de sesiones o el contenido capturado no estén disponibles temporalmente, devuelven 503 (consulta [Sesiones locales temporalmente no disponibles](https://platform.claude.com/docs/es/manage-claude/compliance-errors#local-sessions-temporarily-unavailable)).

Para las sesiones locales, Anthropic registra cada conversación del lado del servidor a medida que sus solicitudes llegan a la Claude API; no se instala nada en el dispositivo y no se recopila nada más allá de las solicitudes que el cliente ya envía a la Claude API. Las transcripciones de sesiones locales muestran lo que se le pidió a Claude que hiciera y lo que devolvió, no lo que sucedió en el dispositivo. La actividad de archivos y de red solo es visible a través de las llamadas a herramientas y los resultados de herramientas de la transcripción, por lo que la actividad que nunca llega a la API (por ejemplo, archivos locales que la sesión nunca envió) no se captura.

En las organizaciones que usan [claves de cifrado administradas por el cliente](https://platform.claude.com/docs/es/manage-claude/cmek), las transcripciones de sesiones locales se cifran con tu clave administrada por el cliente y se devuelven como de costumbre. Mientras esa clave no se pueda usar (por ejemplo, porque la deshabilitaste o revocaste, o porque no se puede acceder a ella), el endpoint de mensajes devuelve [503 Service Unavailable](https://platform.claude.com/docs/es/manage-claude/compliance-errors#local-sessions-temporarily-unavailable) para las páginas afectadas en lugar del contenido de la transcripción. Esos mensajes nunca se informan como `not_captured` (consulta [Recuperar la transcripción de una sesión local](https://platform.claude.com/docs/es/manage-claude/compliance-sessions#retrieve-a-local-session-transcript)). Enumerar sesiones y recuperar los metadatos de las sesiones no se ve afectado.

El endpoint de lista devuelve los metadatos de las sesiones, sin contenido de transcripción, de cada organización vinculada que tu clave puede leer. A diferencia de la lista de sesiones remotas, no tiene filtros de organización ni de usuario: acota los resultados en el tiempo con `created_at.gte`, `created_at.gt`, `created_at.lt` y `created_at.lte`. Cada uno acepta una marca de tiempo RFC 3339 con un desplazamiento UTC obligatorio. Cuando proporcionas un límite inferior y uno superior, el límite superior debe ser posterior al límite inferior (o igual a él, si usas `created_at.gte` con `created_at.lte`); de lo contrario, la solicitud devuelve [400 Bad Request](https://platform.claude.com/docs/es/manage-claude/compliance-errors#400-bad-request). Un filtro de tiempo independiente, `updated_at.gte`, acota por la última actividad en lugar de la primera: devuelve las sesiones cuya última llamada de inferencia es igual o posterior a la hora indicada y se combina con los filtros `created_at` sin cambiar el orden ni la paginación. Úsalo para consultar periódicamente las sesiones activas desde una pasada anterior, como se describe más adelante en esta sección. Las sesiones y los mensajes nuevos aparecen en los resultados tras un breve retraso de procesamiento, normalmente en cuestión de minutos; una sesión que falta inmediatamente después de iniciarse no necesariamente está sin capturar. La siguiente solicitud enumera las sesiones creadas desde una fecha determinada.

```bash cURL
curl --fail-with-body -sS -G \
  "https://api.anthropic.com/v1/compliance/apps/sessions/local" \
  --header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
  --header "anthropic-version: 2023-06-01" \
  --data-urlencode "created_at.gte=2026-07-01T00:00:00Z" \
  --data-urlencode "limit=100"
```

```json Response
{
  "data": [
    {
      "type": "compliance_local_session",
      "id": "clls_01HxKpLmNoPqRsTuVwXyZaBc",
      "organization_uuid": "9a1e0000-0000-0000-0000-000000000000",
      "workspace_id": "wrkspc_01SvYKoWVRVHoEbwESNvzYdR",
      "user": {
        "id": "user_01GpKpLmNoPqRsTuVwXyZaBc",
        "email_address": "engineer@example.com"
      },
      "product_surface": "cowork",
      "created_at": "2026-07-09T14:02:11Z",
      "updated_at": "2026-07-09T14:02:38Z"
    },
    {
      "type": "compliance_local_session",
      "id": "clls_01HyLqMnOpQrStUvWxYzAbCd",
      "organization_uuid": "9a1e0000-0000-0000-0000-000000000000",
      "workspace_id": null,
      "user": {
        "id": "user_01HqRsTuVwXyZaBcDeFgHiJk",
        "email_address": null
      },
      "product_surface": "claude_code",
      "created_at": "2026-07-08T09:15:43Z",
      "updated_at": "2026-07-08T09:52:10Z"
    }
  ],
  "next_page": "page_AAEfQx7mPdLkq9Rt2VwHbZk"
}
```

Los resultados se ordenan en orden cronológico inverso (los más recientes primero) por `created_at`, con los empates resueltos en un orden fijo del lado del servidor, y se limitan a `limit` resultados por respuesta (100 de forma predeterminada, 500 como máximo). El endpoint pagina solo hacia adelante con los tokens `page` y `next_page` (consulta [Paginar resultados](https://platform.claude.com/docs/es/manage-claude/compliance-activity-feed#paginate-results)): pasa el valor `next_page` de la respuesta como el parámetro de consulta `page` en la siguiente solicitud, y detente cuando `next_page` sea `null`. La respuesta no tiene un campo `has_more`. Completa un recorrido de la lista dentro de las 24 horas posteriores a su inicio; un cursor de lista más antiguo se sigue aceptando, pero se vuelve a evaluar con respecto al límite de retención actual, por lo que se pueden omitir las sesiones cuya actividad retenida más antigua esté a punto de superar el período de retención.

En cada objeto de sesión, `user.id` siempre está establecido y se conserva tras la eliminación de la cuenta; `user.email_address` es `null` cuando la cuenta del usuario se ha eliminado o el usuario ya no es miembro de una organización que tu clave puede leer. `workspace_id` es `null` cuando la sesión no estaba asociada a un espacio de trabajo. Una sesión local corresponde a un ID de sesión del cliente: iniciar una nueva conversación en el cliente, o borrar su contexto, comienza un nuevo registro de sesión. Para Claude Science, la lista también puede incluir sesiones separadas para el trabajo en segundo plano de la propia aplicación (por ejemplo, ponerle nombre a la conversación; en versiones más recientes de la aplicación, también sus pistas de revisión y delegación), y en versiones anteriores de la aplicación parte de ese trabajo en segundo plano aparece como mensajes adicionales dentro de la propia transcripción de la conversación. Una conversación de Claude Science que continúa a lo largo de algunas actualizaciones de la aplicación aparece como dos sesiones. Estos comportamientos son esperados. Trata los valores de `id` como cadenas opacas; el formato puede cambiar sin previo aviso.

Para Claude for Microsoft 365, eliminar una conversación en el complemento ocurre solo en el cliente, por lo que no se refleja en la API: las sesiones locales no tienen un campo `deleted_at`, y la sesión permanece en la lista hasta que la retención la elimina.

Las sesiones locales tienen un `updated_at` pero no un `status`: una sesión local no tiene un estado de ciclo de vida del lado del servidor, y su visibilidad se rige por la retención. Una sesión local se captura como la serie de llamadas a la Claude API (llamadas de inferencia) que el cliente realiza durante la sesión, y la retención se aplica a cada llamada capturada de forma individual. `created_at` es la marca de tiempo de la llamada retenida más antigua de la sesión y `updated_at` la marca de tiempo de la última, ambas en UTC. A medida que las llamadas más antiguas superan el período de retención, `created_at` avanza en consecuencia, y una vez que todas las llamadas de una sesión han caducado, la sesión deja de devolverse; `updated_at` sigue la llamada más reciente y no se ve afectado hasta entonces. Como `created_at` puede cambiar entre ejecuciones, elimina duplicados por `id` cuando vuelvas a recorrer la lista con el tiempo. Para mantener las transcripciones actualizadas a medida que las sesiones reciben mensajes, consulta periódicamente con el filtro `updated_at.gte`, superponiendo ventanas consecutivas. En el endpoint de lista, `updated_at` es un límite inferior: para una sesión que sigue activa en el límite de una página o en el extremo superior de una ventana de `created_at`, puede ir momentáneamente por detrás de la verdadera última actividad de la sesión, y una nueva llamada solo se puede consultar tras el breve retraso de procesamiento mencionado anteriormente. Debido a ese retraso, establece el `updated_at.gte` de cada ejecución unos minutos antes de la hora de inicio de tu ejecución anterior, no exactamente en la hora de la ejecución anterior. Un límite establecido exactamente en la hora anterior descarta de forma silenciosa y permanente una sesión cuya última llamada todavía se estaba indexando en ese momento, porque una vez que el límite avanza más allá de esa llamada, ninguna ejecución posterior la devuelve. Elimina duplicados por `id` en las sesiones devueltas, vuelve a obtener sus transcripciones y elimina duplicados por `id` en los mensajes. Recuperar una sesión, o sus mensajes, siempre refleja exactamente la última llamada retenida, por lo que una pasada de conciliación periódica sobre una ventana más antigua es una alternativa más exhaustiva que ampliar la superposición.

La lista se construye a partir de los metadatos de actividad de las sesiones, por lo que puede incluir sesiones cuyo contenido de transcripción no se capturó, por ejemplo, sesiones que se ejecutaron antes de que comenzara la captura para tu organización (hasta donde lo permita tu período de retención); la transcripción de una sesión así devuelve cada mensaje con su contenido marcado como no disponible (consulta [Recuperar la transcripción de una sesión local](https://platform.claude.com/docs/es/manage-claude/compliance-sessions#retrieve-a-local-session-transcript)).

El contenido de sesiones locales capturado se almacena durante 6 años desde su captura de forma predeterminada. Si la organización que ejecutó la sesión ha establecido un período de retención de conversaciones personalizado finito en [claude.ai > Organization settings > Data and privacy](https://claude.ai/admin-settings/data-privacy-controls), se aplica ese período en su lugar, ya sea más corto o más largo que el predeterminado; cuando la organización tiene configurado más de un período de retención personalizado, se aplica el más corto. Un cambio en ese ajuste surte efecto de dos maneras distintas: los endpoints dejan de devolver la actividad anterior al período actual de la organización en cuanto cambia el ajuste, mientras que cada mensaje capturado se almacena durante el período que estaba vigente cuando se capturó, por lo que alargar el período más adelante no restaura el contenido que ya ha caducado. En las organizaciones con [preparación para HIPAA](https://platform.claude.com/docs/es/manage-claude/api-and-data-retention#hipaa-readiness) habilitada, el contenido de sesiones locales capturado se almacena durante 30 días desde su captura, o durante el período de retención de conversaciones personalizado de la organización cuando este es más corto; el valor predeterminado de 6 años no se aplica.

Para obtener directamente los metadatos de una sesión, pasa su ID a `GET /v1/compliance/apps/sessions/local/{session_id}`. La respuesta es el mismo objeto de sesión que devuelve el endpoint de lista, sin envoltorio y sin contenido de transcripción. Un ID de sesión con formato incorrecto devuelve [400 Bad Request](https://platform.claude.com/docs/es/manage-claude/compliance-errors#400-bad-request). Un único [404 Not Found](https://platform.claude.com/docs/es/manage-claude/compliance-errors#404-not-found) cubre cuatro casos que la respuesta no distingue: la sesión no está en una organización que tu clave puede leer (incluidas las sesiones de otra organización principal), no existe, la retención de datos cero está vigente para ella, o todas sus llamadas han superado la retención.

`product_surface` (cadena o `null`) identifica el producto que creó la sesión: `cowork` (Cowork en Claude Desktop en la máquina del usuario), `claude_code` (Claude Code), `claude_science` (Claude Science), `claude_in_chrome` (el chat integrado de la extensión de navegador Claude in Chrome), o uno de `office_agents/excel`, `office_agents/powerpoint`, `office_agents/word` y `office_agents/outlook` (Claude for Microsoft 365, por aplicación; `office_agents` solo cuando no se identifica la aplicación). Aparecen nuevos valores a medida que se amplía la cobertura.

<Note>
  **Crea controladores compatibles con versiones futuras.** Deja pasar los valores de `product_surface` no reconocidos e ignora los campos que tu controlador no espera, para que tu integración siga funcionando a medida que se lancen nuevas superficies de producto.
</Note>

### Recuperar la transcripción de una sesión local

El endpoint de mensajes devuelve la transcripción de la sesión, reconstruida a partir de las llamadas capturadas a la Claude API: prompts del usuario, texto del asistente, llamadas a herramientas y las partes de texto de los resultados de herramientas, todo devuelto tal como se envió, salvo por el truncamiento por tamaño. Nada enmascara las URL, las credenciales ni los datos personales en ese contenido, así que trata las transcripciones como información confidencial. La transcripción omite o reemplaza lo siguiente:

* Los "thinking blocks" (bloques de pensamiento) nunca se incluyen.
* El "system prompt" (indicación del sistema) de la solicitud nunca se devuelve. Un mensaje marcador con el texto `[system prompt content not shown]` la sustituye (normalmente una vez por sesión; una sesión sin contenido capturado no lleva marcador).
* Las definiciones de herramientas y la configuración de servidores MCP no forman parte de la transcripción.
* Las imágenes, los PDF y otros bloques binarios o estructurados no se devuelven. Cada uno aparece como un bloque `text` con el texto `[<block type> content not shown]` (por ejemplo, `[image content not shown]`) con `truncated` establecido en `true`. Los elementos que no son de texto dentro de un resultado de herramienta, como los resultados de [búsqueda web](https://platform.claude.com/docs/es/agents-and-tools/tool-use/web-search-tool) o la salida de la [herramienta de ejecución de código](https://platform.claude.com/docs/es/agents-and-tools/tool-use/code-execution-tool), se reemplazan por una entrada `[N non-text item(s) not shown]`, y el `truncated` del bloque de resultado de herramienta es `true`. La llamada a herramienta correspondiente, con la consulta de búsqueda o el código en su `input`, sí se devuelve.
* Los metadatos de citas en los bloques `text`, como las citas de fuentes en una respuesta que se basa en resultados de búsqueda web, se omiten. El texto en sí se devuelve, y el bloque lleva `truncated` establecido en `true`.

Los archivos de instrucciones del proyecto, como `CLAUDE.md`, aparecen como contenido ordinario con rol de usuario. El contenido de las skills aparece cuando el cliente lo envía como contenido de mensaje y no se distingue del resto del texto del usuario. Para ver un resumen de la cobertura, consulta las [preguntas frecuentes de la Compliance API](https://platform.claude.com/docs/es/manage-claude/compliance-faq#data-coverage-and-retention); para ver una tabla que compara las sesiones locales con las sesiones remotas y el registro de OpenTelemetry, consulta la introducción de esta página.

```bash cURL
session_id="clls_01HxKpLmNoPqRsTuVwXyZaBc"

curl --fail-with-body -sS \
  "https://api.anthropic.com/v1/compliance/apps/sessions/local/$session_id/messages" \
  --header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
  --header "anthropic-version: 2023-06-01"
```

```json Response
{
  "session": {
    "type": "compliance_local_session",
    "id": "clls_01HxKpLmNoPqRsTuVwXyZaBc",
    "organization_uuid": "9a1e0000-0000-0000-0000-000000000000",
    "workspace_id": "wrkspc_01SvYKoWVRVHoEbwESNvzYdR",
    "user": {
      "id": "user_01GpKpLmNoPqRsTuVwXyZaBc",
      "email_address": null
    },
    "product_surface": "cowork",
    "created_at": "2026-07-09T14:02:11Z",
    "updated_at": "2026-07-09T14:02:38Z"
  },
  "data": [
    {
      "type": "compliance_local_session_message",
      "id": "clsm_01J4KpLmNoPqRsTuVwXyZaBa",
      "role": "user",
      "model": null,
      "created_at": "2026-07-09T14:02:11Z",
      "provenance": {
        "type": "synthetic_marker"
      },
      "content": [
        {
          "type": "text",
          "text": "[system prompt content not shown]",
          "truncated": true
        }
      ]
    },
    {
      "type": "compliance_local_session_message",
      "id": "clsm_01J4KpLmNoPqRsTuVwXyZaBc",
      "role": "user",
      "model": null,
      "created_at": "2026-07-09T14:02:11Z",
      "provenance": null,
      "content": [
        {
          "type": "text",
          "text": "Fix the failing test in tests/auth_test.py",
          "truncated": false
        }
      ]
    },
    {
      "type": "compliance_local_session_message",
      "id": "clsm_01J4KpLmNoPqRsTuVwXyZaBd",
      "role": "assistant",
      "model": "claude-opus-5-5",
      "created_at": "2026-07-09T14:02:11Z",
      "provenance": null,
      "content": [
        {
          "type": "text",
          "text": "I'll read the test file first.",
          "truncated": false
        },
        {
          "type": "tool_use",
          "id": "toolu_01AbCdEfGhIjKlMnOpQrSt",
          "name": "Read",
          "input": "{\"file_path\":\"tests/auth_test.py\"}",
          "truncated": false
        }
      ]
    },
    {
      "type": "compliance_local_session_message",
      "id": "clsm_01J4KpLmNoPqRsTuVwXyZaBe",
      "role": "user",
      "model": null,
      "created_at": "2026-07-09T14:02:38Z",
      "provenance": null,
      "content": [
        {
          "type": "tool_result",
          "tool_use_id": "toolu_01AbCdEfGhIjKlMnOpQrSt",
          "name": "Read",
          "is_error": false,
          "content": [
            {
              "type": "text",
              "text": "def test_login_expiry():\n    ..."
            }
          ],
          "truncated": false
        }
      ]
    },
    {
      "type": "compliance_local_session_message",
      "id": "clsm_01J4KpLmNoPqRsTuVwXyZaBf",
      "role": "assistant",
      "model": "claude-opus-5-5",
      "created_at": "2026-07-09T14:02:38Z",
      "provenance": null,
      "content": [
        {
          "type": "text",
          "text": "The test was asserting on a stale expiry timestamp. I've updated it.",
          "truncated": false
        }
      ]
    }
  ],
  "next_page": null
}
```

La respuesta incluye un envoltorio `session` junto al arreglo paginado `data`. El primer registro de este ejemplo es el marcador que sustituye a la indicación del sistema de la solicitud; su `provenance` se describe más adelante en esta sección. En este endpoint, `user.email_address` siempre es `null`: el endpoint de mensajes no resuelve direcciones de correo electrónico, por lo que un `null` aquí no significa que la cuenta del usuario se haya eliminado. Para atribuir una sesión a una dirección de correo electrónico, relaciona `user.id` con el [endpoint de lista](https://platform.claude.com/docs/es/manage-claude/compliance-sessions#retrieve-local-sessions) o con el endpoint de recuperación (`GET /v1/compliance/apps/sessions/local/{session_id}`).

Los mensajes se devuelven del más antiguo al más reciente de forma predeterminada; pasa `order=desc` para invertir el orden. La paginación usa el mismo esquema `page`/`next_page` que el endpoint de lista, con un `limit` predeterminado de 100 y un máximo de 1,000. Una página puede terminar antes cuando la respuesta alcanza su límite de tamaño, por lo que una página con menos de `limit` mensajes no significa que hayas llegado al final; sigue paginando hasta que `next_page` sea `null`. Los cursores de página están vinculados a la sesión y al orden de clasificación con los que se emitieron, y los cursores de un recorrido caducan 24 horas después de su primera página: un cursor caducado devuelve [400 Bad Request](https://platform.claude.com/docs/es/manage-claude/compliance-errors#400-bad-request) indicándote que reinicies sin el parámetro `page`, y el recorrido reiniciado refleja el límite de retención actual. Un cursor emitido para una sesión u `order` diferente también devuelve 400, como cursor no válido.

En una sesión muy grande, el endpoint de mensajes puede devolver un 400 para una página, con un mensaje que indica que la página es demasiado grande para leerse; consulta [Página de transcripción demasiado grande](https://platform.claude.com/docs/es/manage-claude/compliance-errors#transcript-page-too-large). No reintentes esa solicitud. Si usaba `order=desc`, lee esa sesión del más antiguo al más reciente desde su primera página, sin `order` y sin `page`, y establece el tiempo de espera de solicitud de tu cliente en al menos 5 minutos. Si una página en orden del más antiguo al más reciente devuelve el mismo error, esa entrada de la guía de errores indica qué hacer.

En una sesión muy grande, el endpoint de mensajes también podría devolver un 429 cuyo `error.details.error_code` es `transcript_read_server_busy`. No significa que tu organización haya superado un límite de velocidad. A diferencia del 400, reinténtalo: espera el número de segundos indicado en el encabezado `retry-after` y luego envía de nuevo la misma solicitud, sin cambios (con el mismo valor de `page`, si tenía uno). Consulta [Servidor ocupado leyendo transcripciones grandes](https://platform.claude.com/docs/es/manage-claude/compliance-errors#server-busy-reading-large-transcripts).

Cada mensaje lleva un `role` (`user` o `assistant`) y un arreglo `content` de bloques `text`, `tool_use` y `tool_result`. También lleva un `model`: en un turno del asistente capturado desde la Claude API, es el modelo que atendió el turno, y es `null` en los mensajes del usuario y en cualquier mensaje del asistente cuyo `provenance` esté establecido, porque el historial declarado por el cliente y los marcadores sintéticos no fueron producidos por un modelo y el modelo que atendió se desconoce para el contenido no disponible. Un bloque `text` lleva `text` y `truncated`. Un bloque `tool_use` lleva `id`, `name`, `input` y `truncated`, donde `input` es una cadena codificada en JSON en lugar de un objeto. Un bloque `tool_result` lleva `tool_use_id`, `name`, `is_error`, un arreglo `content` de entradas `text` y `truncated`. Las llamadas y los resultados de herramientas MCP, y la mayoría de las llamadas y los resultados de herramientas de servidor, se normalizan en estas mismas formas `tool_use` y `tool_result`; cualquier otro tipo de bloque aparece como un marcador de posición `[<block type> content not shown]`. El `id` de un mensaje es estable mientras el turno se retiene. Cada mensaje reconstruido a partir de la misma llamada de inferencia lleva la marca de tiempo de esa llamada, por lo que los mensajes consecutivos suelen compartir un valor de `created_at`; conserva el orden devuelto en lugar de volver a ordenar por marca de tiempo.

Cada mensaje también lleva un campo `provenance` que describe cómo se capturó su contenido. `provenance` es `null` para el contenido verificado capturado por la Claude API, que es el caso habitual. De lo contrario, es un objeto cuyo `type` marca la excepción:

* `content_unavailable` significa que el contenido no se puede devolver. El arreglo `content` está vacío, y `provenance.reason` indica el motivo. `not_captured` significa que no hay contenido disponible para el turno. No demuestra que no se haya almacenado ningún registro: el contenido que las políticas de manejo de datos de Anthropic excluyen de la Compliance API se informa con el mismo motivo, al igual que los turnos individuales que no están disponibles por esos motivos dentro de una sesión que, por lo demás, sí se capturó. Una clave administrada por el cliente inutilizable es la única excepción y devuelve [503 Service Unavailable](https://platform.claude.com/docs/es/manage-claude/compliance-errors#local-sessions-temporarily-unavailable) en su lugar. `client_aborted` significa que el cliente cerró la conexión o canceló la solicitud antes de que se completara la respuesta, por lo que la respuesta del turno no se capturó; cualquier salida parcial ya enviada por streaming al cliente no se incluye, y este motivo se aplica solo a los turnos con rol de asistente. `cmek_key_revoked` está reservado para el contenido cifrado con la clave administrada por el cliente de tu organización cuando esa clave no está disponible (por ejemplo, revocada). Actualmente no se devuelve, porque una clave inutilizable produce un 503 en su lugar, pero contémplalo por compatibilidad con versiones futuras. `retention_elapsed` significa que el contenido superó la retención. `oversize` significa que un único mensaje superó el límite de tamaño por mensaje; el mensaje se sigue devolviendo, con un arreglo `content` vacío.
* `client_asserted` marca los mensajes del asistente que el cliente proporcionó como historial de la conversación y que no se pudieron asociar con una respuesta capturada; su autoría no está verificada.
* `synthetic_marker` marca los registros generados por el propio endpoint, como el marcador que sustituye a la indicación del sistema. Cuando el cliente reescribe o compacta su historial de conversación a mitad de la sesión (por ejemplo, después de una compactación de contexto), la transcripción inserta un mensaje marcador en ese punto y continúa con el nuevo contenido que envió el cliente. Cuando tu organización tiene un período de retención finito y ese nuevo contenido incluye mensajes del asistente, la transcripción excluye el nuevo contenido hasta su último mensaje del asistente inclusive (un segundo marcador lo indica) y muestra solo los mensajes del usuario posteriores a ese punto, seguidos del resto de la sesión.

Los mensajes marcadores y los declarados por el cliente comienzan con un bloque `text` explicativo entre corchetes marcado con `truncated: true`, por ejemplo `[system prompt content not shown]`. Trata estos registros como presentes pero no disponibles o no verificados, en lugar de como faltantes, y tolera los tipos y motivos de `provenance` no reconocidos.

Dos parámetros limitan cuántos bytes de cada bloque de herramienta se devuelven: `tool_use_input_max_bytes` y `tool_result_max_bytes`, ambos con un valor predeterminado de 10,000 bytes. Pasa `-1` para el máximo del servidor (aproximadamente 1 MiB por cadena); `0` devuelve [400 Bad Request](https://platform.claude.com/docs/es/manage-claude/compliance-errors#400-bad-request), y los valores superiores al máximo se ajustan a él. Una cadena cortada por cualquiera de los dos límites se corta en un límite de carácter y se le añade un sufijo en banda (por ejemplo, `…[truncated; pass tool_result_max_bytes=-1 for the server max]`), y su bloque lleva `"truncated": true`. Por lo tanto, un `input` de `tool_use` truncado ya no es JSON válido, así que analiza las entradas de herramientas solo a partir de bloques no truncados (o aumenta el límite y vuelve a obtenerlos). Los bloques de tipo `text` siempre están limitados al mismo máximo del servidor de aproximadamente 1 MiB; ningún parámetro lo aumenta, y un bloque `text` que alcanza el límite también lleva `"truncated": true`.

Claude Science llama a los conectores (servidores MCP) desde el código que ejecuta a través de su herramienta `repl`, no como herramientas con nombre propio, por lo que ningún bloque de una transcripción de Claude Science lleva el nombre de un conector. Cada llamada a un conector aparece en el código dentro del `input` de un bloque `tool_use` de `repl` (por ejemplo, una llamada `host.mcp("<server>", "<tool>", ...)`), y la salida del conector aparece en el `tool_result` correspondiente solo donde ese código la imprimió. Las sesiones de Cowork y Claude Code son diferentes: llaman a cada herramienta de conector con su propio nombre `mcp__<server>__<tool>`, que es el `name` del bloque `tool_use`. Para supervisar el uso de conectores en las sesiones de Claude Science, analiza la cadena `input` y busca coincidencias en el código que contiene en lugar de en un nombre de herramienta. Pasa `tool_use_input_max_bytes=-1` para estas sesiones, de modo que una entrada de código larga se devuelva hasta el máximo del servidor en lugar de cortarse en el valor predeterminado de 10,000 bytes antes de que aparezca la llamada al conector.

El contenido de la transcripción respeta el período de retención descrito en [Sesiones en las máquinas de los usuarios](https://platform.claude.com/docs/es/manage-claude/compliance-sessions#retrieve-local-sessions). Cuando el inicio de una sesión ha superado ese período, la transcripción comienza con un único marcador de posición `content_unavailable` con `reason` igual a `retention_elapsed`, seguido de los mensajes retenidos. Cuando todas las llamadas de una sesión han caducado, el endpoint de mensajes devuelve [404 Not Found](https://platform.claude.com/docs/es/manage-claude/compliance-errors#404-not-found), al igual que para las sesiones de organizaciones que tu clave no puede leer, las sesiones que no existen y las sesiones para las que está vigente la retención de datos cero. Un ID de sesión con formato incorrecto devuelve [400 Bad Request](https://platform.claude.com/docs/es/manage-claude/compliance-errors#400-bad-request).

## Sesiones en la nube (sesiones remotas)

Las sesiones de Cowork iniciadas en claude.ai web o móvil se ejecutan en la nube, en entornos administrados por Anthropic. La Compliance API expone estas sesiones remotas a través de dos endpoints: `GET /v1/compliance/apps/sessions/remote` enumera los metadatos de las sesiones, y `GET /v1/compliance/apps/sessions/remote/{session_id}/messages` devuelve la transcripción de una sesión. Ambos requieren el alcance `read:compliance_user_data`, y ambos cuentan contra el "rate limit" (límite de velocidad) compartido de la Compliance API, además de un segundo presupuesto de solicitudes específico de estos endpoints; consulta [429 Too Many Requests](https://platform.claude.com/docs/es/manage-claude/compliance-errors#429-too-many-requests).

El endpoint de lista usa de forma predeterminada el alcance de toda la organización: omite `organization_ids[]` para incluir todas las organizaciones de claude.ai que tu clave puede leer, o pasa hasta 500 valores para acotar el alcance. Para limitar la lista a usuarios específicos, pasa de 1 a 10 valores de `user_ids[]` (obtén los ID en [Listar usuarios de la organización](https://platform.claude.com/docs/es/manage-claude/compliance-org-data#list-organization-users)); el filtro coincide con el usuario propietario de la sesión, por lo que las sesiones propiedad de agentes se excluyen siempre que se establezca `user_ids[]`. Limita los resultados en el tiempo con los parámetros de rango de `created_at` (`gte`, `gt`, `lt`, `lte`, en formato RFC 3339). No existe un filtro `updated_at`. La siguiente solicitud enumera las sesiones creadas desde una fecha determinada.

```bash cURL
curl --fail-with-body -sS -G \
  "https://api.anthropic.com/v1/compliance/apps/sessions/remote" \
  --header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
  --header "anthropic-version: 2023-06-01" \
  --data-urlencode "created_at.gte=2026-06-01T00:00:00Z" \
  --data-urlencode "limit=100"
```

```json Response
{
  "data": [
    {
      "id": "cse_01WpQrStUvXyZaBcDeFgHjK6",
      "organization_uuid": "91012d09-e48b-438e-a489-1bebfd8fa6f9",
      "user": {
        "id": "user_01XyDMpzjS89pFZXqSFUBDr6",
        "email_address": "user@example.com"
      },
      "agent_id": null,
      "started_by_user": null,
      "status": "active",
      "created_at": "2026-07-01T17:04:05Z",
      "updated_at": "2026-07-01T18:00:41Z",
      "product_surface": "cowork_remote",
      "claude_project_id": "claude_proj_01KGp4eZNug9ri4kE35RSppq"
    },
    {
      "id": "cse_01TkNpRsUvWxYzAbCdEfGhJ4",
      "organization_uuid": "91012d09-e48b-438e-a489-1bebfd8fa6f9",
      "user": null,
      "agent_id": "cagt_01MnPqRsTuVwXyZaBcDeFgH8",
      "started_by_user": {
        "id": "user_01XyDMpzjS89pFZXqSFUBDr6",
        "email_address": "user@example.com"
      },
      "status": "archived",
      "created_at": "2026-06-28T09:15:22Z",
      "updated_at": "2026-06-28T09:47:10Z",
      "product_surface": "cowork_remote",
      "claude_project_id": null
    }
  ],
  "next_page": "page_AAEfMk93cXpYdGxrZXk"
}
```

Los resultados se ordenan en orden cronológico inverso (los más recientes primero) por `created_at` y se limitan a `limit` resultados por respuesta (100 de forma predeterminada, 500 como máximo). El endpoint pagina con los tokens `page` y `next_page` (consulta [Paginar resultados](https://platform.claude.com/docs/es/manage-claude/compliance-activity-feed#paginate-results)): pasa el valor `next_page` de la respuesta como el parámetro de consulta `page` en la siguiente solicitud, y detente cuando `next_page` sea `null`.

Una sesión es propiedad de un usuario o de un agente, nunca de ambos. En las sesiones propiedad de un usuario, `user` contiene el ID y la dirección de correo electrónico del propietario (`email_address` es `null` cuando el usuario ya no es miembro de una organización que tu clave puede leer) y `agent_id` es `null`. En las sesiones propiedad de un agente (por ejemplo, ejecuciones de una tarea programada de Cowork en la nube), `user` es `null`, `agent_id` contiene el ID del agente (prefijo `cagt_`) y `started_by_user` identifica a la persona que inició la ejecución; en las sesiones propiedad de un usuario, `started_by_user` es `null`. Cada ejecución de una tarea programada es una sesión independiente, y ningún campo de la sesión contiene el nombre ni la programación de la tarea.

`claude_project_id` es el ID del [proyecto](https://platform.claude.com/docs/es/manage-claude/compliance-content-data#retrieve-projects-and-attachments) de claude.ai al que pertenece la sesión (prefijo `claude_proj_`), o `null` cuando la sesión no está en un proyecto.

`status` es uno de `pending`, `active`, `paused`, `archived` o `failed`. Una sesión está en `pending` mientras se aprovisiona; una sesión `pending` aún no tiene transcripción, y el endpoint de mensajes devuelve 404 para ella hasta que se complete el aprovisionamiento. Las sesiones que se han eliminado nunca se devuelven.

`product_surface` (cadena o `null`) identifica el producto que creó la sesión. Actualmente, el endpoint solo devuelve sesiones con `product_surface` igual a `cowork_remote`: sesiones de Cowork iniciadas en claude.ai web o móvil.

Para recuperar un chat en la experiencia unificada de Claude, incluida la parte que se ejecutó en la nube, usa los endpoints de chat ([Obtener mensajes de chat](https://platform.claude.com/docs/es/api/compliance/apps/chats/messages/list)), no los endpoints de sesiones remotas.

<Note>
  **Crea controladores compatibles con versiones futuras.** Deja pasar los valores de `status` y `product_surface` no reconocidos, e ignora los campos que tu controlador no espera, para que tu integración siga funcionando a medida que se lancen nuevos estados y superficies de producto.
</Note>

### Recuperar la transcripción de una sesión remota

El endpoint de mensajes devuelve la transcripción de la sesión: las indicaciones del usuario, las respuestas del asistente y las llamadas a herramientas con sus resultados. No incluye los bloques de pensamiento ni las imágenes. Para ver un resumen de la cobertura, consulta las [preguntas frecuentes de la Compliance API](https://platform.claude.com/docs/es/manage-claude/compliance-faq#data-coverage-and-retention). La introducción de esta página incluye una tabla que compara las sesiones remotas con las sesiones locales y con el registro de OpenTelemetry de Cowork.

```bash cURL
session_id="cse_01WpQrStUvXyZaBcDeFgHjK6"

curl --fail-with-body -sS \
  "https://api.anthropic.com/v1/compliance/apps/sessions/remote/$session_id/messages" \
  --header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
  --header "anthropic-version: 2023-06-01"
```

```json Response
{
  "session": {
    "id": "cse_01WpQrStUvXyZaBcDeFgHjK6",
    "organization_uuid": "91012d09-e48b-438e-a489-1bebfd8fa6f9",
    "user": {
      "id": "user_01XyDMpzjS89pFZXqSFUBDr6",
      "email_address": null
    },
    "agent_id": null,
    "started_by_user": null,
    "status": "active",
    "created_at": "2026-07-01T17:04:05Z",
    "updated_at": "2026-07-01T18:00:41Z",
    "product_surface": "cowork_remote",
    "claude_project_id": null
  },
  "data": [
    {
      "id": "csev_01HjKmNpQrStUvWxYzAbCdE2",
      "role": "user",
      "created_at": "2026-07-01T17:04:05Z",
      "content": [
        {
          "type": "text",
          "text": "Summarize the customer feedback in the attached spreadsheet.",
          "truncated": false
        }
      ],
      "sent_by_user_id": null,
      "content_unavailable": false
    },
    {
      "id": "csev_01BcDeFgHjKmNpQrStUvWxY4",
      "role": "assistant",
      "created_at": "2026-07-01T17:04:06Z",
      "content": [
        {
          "type": "text",
          "text": "I'll start by reading the spreadsheet...",
          "truncated": false
        }
      ],
      "sent_by_user_id": null,
      "content_unavailable": false
    }
  ],
  "next_page": null
}
```

La respuesta incluye un sobre `session` junto al arreglo paginado `data`. En este endpoint, el sobre siempre tiene `user.email_address`, `started_by_user` y `claude_project_id` establecidos en `null`; obtén esos valores del endpoint de lista.

De forma predeterminada, los mensajes se devuelven del más antiguo al más reciente; pasa `order=desc` para invertir el orden. La paginación usa el mismo esquema `page`/`next_page` que el endpoint de lista, con un `limit` predeterminado de 100 y un máximo de 1,000. Una página puede terminar antes de tiempo cuando la respuesta alcanza su límite de tamaño. Por eso, una página con menos de `limit` mensajes no significa que hayas llegado al final; sigue paginando hasta que `next_page` sea `null`.

Cada mensaje incluye un `role` (`user` o `assistant`) y un arreglo `content` de bloques `text`, `tool_use` y `tool_result`. Los valores `created_at` de los mensajes son marcas de tiempo de confirmación. Los mensajes consecutivos pueden compartir una marca de tiempo o aparecer ligeramente invertidos, así que conserva el orden devuelto en lugar de reordenar por `created_at`. En las sesiones propiedad de un agente, `sent_by_user_id` registra al usuario que envió un mensaje de usuario determinado, cuando es posible atribuirlo. En los demás casos es `null`, incluidos todos los mensajes del asistente. Cuando el contenido de un mensaje no se puede devolver en absoluto (por ejemplo, porque supera los límites de tamaño), el mensaje incluye `content_unavailable` establecido en `true`.

Dos parámetros limitan cuántos bytes de cada bloque de herramienta se devuelven: `tool_use_input_max_bytes` y `tool_result_max_bytes`. Ambos tienen un valor predeterminado de 10,000 bytes. Pasa `-1` para usar el máximo del servidor (aproximadamente 1 MiB por cadena); `0` devuelve [400 Bad Request](https://platform.claude.com/docs/es/manage-claude/compliance-errors#400-bad-request). Un bloque recortado por cualquiera de los dos límites incluye `"truncated": true`. Además, una entrada de `tool_use` truncada deja de ser JSON válido, así que analiza las entradas de herramientas solo a partir de bloques no truncados (o aumenta el límite y vuelve a obtenerlos).

El endpoint de mensajes devuelve [404 Not Found](https://platform.claude.com/docs/es/manage-claude/compliance-errors#404-not-found) en estos casos:

* Sesiones `pending`.
* Sesiones que no existen o que se eliminaron.
* Sesiones en organizaciones que tu clave no puede leer.

## Retención y eliminación

Los endpoints de sesiones son de solo lectura; las sesiones locales y remotas no se pueden eliminar a través de la Compliance API. Las transcripciones de las sesiones locales se conservan durante 6 años de forma predeterminada, o durante el período de retención de conversaciones personalizado de tu organización cuando se establece uno finito, o durante 30 días en organizaciones con la preparación para HIPAA habilitada, como se describe en [Sesiones en las máquinas de los usuarios](https://platform.claude.com/docs/es/manage-claude/compliance-sessions#retrieve-local-sessions). Las transcripciones de las sesiones remotas se conservan durante 6 años, a menos que un usuario elimine la sesión antes. Los endpoints de sesiones remotas dejan de devolver una sesión una vez que un usuario la elimina, y su transcripción no se puede recuperar a través de la Compliance API. Para saber cómo se relacionan estos períodos con los demás acuerdos de retención de Anthropic, consulta [API y retención de datos](https://platform.claude.com/docs/es/manage-claude/api-and-data-retention).

## Próximos pasos

<CardGroup cols={2}>
  <Card title="Recuperar y eliminar chats, archivos y proyectos" href="https://platform.claude.com/docs/es/manage-claude/compliance-content-data">
    Accede al contenido de los chats, los archivos adjuntos y los proyectos de claude.ai con la misma Compliance Access Key.
  </Card>

  <Card title="Preguntas frecuentes de la Compliance API" href="https://platform.claude.com/docs/es/manage-claude/compliance-faq#data-coverage-and-retention">
    Un resumen, campo por campo, de lo que incluyen las transcripciones de sesiones, y otras preguntas comunes.
  </Card>

  <Card title="Gestionar errores de la Compliance API" href="https://platform.claude.com/docs/es/manage-claude/compliance-errors">
    Las cargas útiles de error textuales y la solución para cada una.
  </Card>

  <Card title="Referencia de la API" href="https://platform.claude.com/docs/es/api/compliance/apps">
    Rutas de endpoints, parámetros y esquemas de respuesta de la Compliance API.
  </Card>
</CardGroup>
