---
title: 세션 트랜스크립트 검색
url: https://platform.claude.com/docs/ko/manage-claude/compliance-sessions
description: 사용자가 Claude Cowork 및 Claude Code와 같은 Claude 앱과 에이전트에서 실행하는 세션을 나열하고, Compliance API를 통해 해당 트랜스크립트를 검색합니다.
---

<Note>
  이 페이지의 엔드포인트는 Claude Enterprise 조직에서만 사용할 수 있습니다. 로컬 및 원격 세션 엔드포인트는 Cowork, Claude Code, Claude for Microsoft 365 세션에 대해 안정(stable) 버전이며, Claude Science 및 Claude in Chrome 세션 지원은 베타 단계입니다. 이 엔드포인트는 [채팅, 파일, 프로젝트 엔드포인트](https://platform.claude.com/docs/ko/manage-claude/compliance-content-data)와 동일한 Compliance Access Key 및 `read:compliance_user_data` 범위로 작동하며, 새로운 키, 범위, 설정 또는 클라이언트 업데이트가 필요하지 않습니다. [Compliance API 설정](https://platform.claude.com/docs/ko/manage-claude/compliance-api-access)을 참조하세요.
</Note>

<Check>
  **필수 범위:** Compliance Access Key의 `read:compliance_user_data`.

  **사전 요구 사항:** 조직 전체의 세션을 나열하는 경우에는 없습니다. 원격 세션 목록(클라우드의 세션)을 특정 사용자로 필터링하려면 [조직 사용자 나열](https://platform.claude.com/docs/ko/manage-claude/compliance-org-data#list-organization-users)에서 얻은 사용자 ID가 필요합니다. 로컬 세션 목록에는 사용자 필터가 없습니다.
</Check>

이 페이지의 엔드포인트는 Claude Enterprise 조직의 사용자가 Claude 앱과 에이전트(현재: Cowork, Claude Code, Claude Science, Claude for Microsoft 365, Claude in Chrome)에서 실행하는 세션의 "transcript"(트랜스크립트)를 컴플라이언스 검토자에게 제공합니다. 각 세션은 Claude와의 단일 대화이며, 그 트랜스크립트는 해당 대화에서 이루어진 사용자 프롬프트, 어시스턴트 응답, 도구 호출 및 결과의 순서입니다. 이 엔드포인트는 eDiscovery(전자 증거 개시) 내보내기와 "data loss prevention"(데이터 손실 방지), 즉 DLP 적용을 지원합니다.

Compliance API는 세션이 실행되는 위치에 따라 세션을 두 개의 엔드포인트 계열로 구분합니다. 사용자 컴퓨터에서 실행되는 세션을 위한 로컬 세션 엔드포인트와, Anthropic이 관리하는 환경의 클라우드에서 실행되는 세션을 위한 원격 세션 엔드포인트입니다. 두 계열 모두 읽기 전용이며, 둘 다 Admin API 키(`sk-ant-admin01-...`)로는 사용할 수 없습니다. Admin API 키로 인증된 호출은 [403 Forbidden](https://platform.claude.com/docs/ko/manage-claude/compliance-errors#403-forbidden)을 반환합니다.

다음 표는 각 제품과 그 실행 위치를, 해당 세션을 반환하는 엔드포인트 계열 및 응답에서 세션을 식별하는 `product_surface` 값에 대응시킵니다. 지원 범위가 확대됨에 따라 이 표에 제품이 추가됩니다.

| 제품 및 실행 위치                                                                                                | 엔드포인트 계열                                           | `product_surface`                                                                                                                 |
| --------------------------------------------------------------------------------------------------------- | -------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| 사용자 컴퓨터에서 실행되는 Claude Desktop의 Cowork                                                                     | 로컬 세션 엔드포인트(`/v1/compliance/apps/sessions/local`)  | `cowork`                                                                                                                          |
| 사용자 컴퓨터에서 실행되는 터미널, Claude Desktop 또는 IDE 확장 프로그램의 Claude Code                                            | 로컬 세션 엔드포인트                                        | `claude_code`                                                                                                                     |
| 사용자 컴퓨터에서 실행되는 Claude Science 데스크톱 앱                                                                      | 로컬 세션 엔드포인트                                        | `claude_science`                                                                                                                  |
| Microsoft 365 데스크톱 또는 웹 앱에서 실행되는 Claude for Microsoft 365(Excel, PowerPoint, Word, Outlook용 Claude 추가 기능) | 로컬 세션 엔드포인트                                        | `office_agents/excel`, `office_agents/powerpoint`, `office_agents/word` 또는 `office_agents/outlook`(앱이 식별되지 않는 경우 `office_agents`) |
| 사용자 컴퓨터에서 실행되는 Claude in Chrome(브라우저 확장 프로그램의 내장 채팅)                                                      | 로컬 세션 엔드포인트                                        | `claude_in_chrome`                                                                                                                |
| claude.ai 웹 또는 모바일에서 시작되어 Anthropic이 관리하는 환경의 클라우드에서 실행되는 Cowork 세션                                       | 원격 세션 엔드포인트(`/v1/compliance/apps/sessions/remote`) | `cowork_remote`                                                                                                                   |

로컬 세션 캡처는 조직에 Compliance API가 활성화되어 있는지에 따라 결정되며, 사용자가 Claude Enterprise 계정으로 로그인한 동안 적용됩니다. 세션 엔드포인트는 다음을 반환하지 않습니다.

* Claude Console API 키로 인증되었거나 Amazon Bedrock, Google Cloud, Microsoft Foundry 같은 타사 클라우드 플랫폼을 통해 실행된 Claude Code 세션.
* 사용자 컴퓨터 대신 클라우드 인프라에서 실행되는 [Claude Code 클라우드 세션](https://code.claude.com/docs/ko/claude-code-on-the-web)(클라우드에서 실행되는 Claude Code 루틴 포함). 이러한 클라우드 세션은 둘 다 클라우드에서 실행되더라도 원격 세션이 아닙니다. 원격 세션 엔드포인트는 Cowork 세션만 반환합니다.
* [HIPAA 준비](https://platform.claude.com/docs/ko/manage-claude/api-and-data-retention#hipaa-readiness)가 활성화된 조직에서 Cowork 및 Claude Code 이외의 제품에서 발생한 로컬 세션. 이러한 조직에서 로컬 세션 엔드포인트는 Cowork 및 Claude Code 세션만 반환하며, 캡처된 세션 콘텐츠는 30일 동안 저장됩니다.
* ["zero data retention"(제로 데이터 보존), 즉 ZDR](https://platform.claude.com/docs/ko/manage-claude/api-and-data-retention#zero-data-retention-zdr-scope)이 적용되는 로컬 세션. 이러한 세션은 목록 결과에서 제외되며, 검색 및 메시지 엔드포인트는 해당 세션에 대해 404를 반환합니다.

Anthropic은 세션 콘텐츠 검색에 Compliance API를 권장합니다. 다음 표는 [로컬 세션](https://platform.claude.com/docs/ko/manage-claude/compliance-sessions#retrieve-local-sessions) 및 [원격 세션](https://platform.claude.com/docs/ko/manage-claude/compliance-sessions#retrieve-remote-sessions)을 Cowork 및 Claude Code에서 사용할 수 있는 OpenTelemetry 기반 대안인 [Cowork의 OpenTelemetry 로깅](https://support.claude.com/en/articles/14477985-monitor-claude-cowork-activity-with-opentelemetry) 및 [Claude Code 모니터링](https://code.claude.com/docs/ko/monitoring-usage)과 비교합니다.

|                                  | 로컬 세션(사용자 컴퓨터)                                                                                                                                                   | 원격 세션(클라우드)                                                                                                                                                      | OpenTelemetry 로깅                                                |
| -------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------- |
| 전달 방식                            | Pull: HTTPS를 통한 쿼리 및 내보내기                                                                                                                                        | Pull: HTTPS를 통한 쿼리 및 내보내기                                                                                                                                        | Push: OTLP 수집기로 스트리밍                                            |
| 설정                               | 기존 Compliance Access Key로 작동                                                                                                                                     | 기존 Compliance Access Key로 작동                                                                                                                                     | 관리자가 OTLP 엔드포인트 및 콘텐츠 캡처 설정을 구성                                 |
| 인프라                              | Anthropic 호스팅                                                                                                                                                    | Anthropic 호스팅                                                                                                                                                    | 수집기와 스토리지를 직접 운영                                                |
| ID 접두사                           | `clls_`                                                                                                                                                          | `cse_`                                                                                                                                                           | 해당 없음                                                           |
| `product_surface` 값              | `cowork`, `claude_code`, `claude_science`, `claude_in_chrome` 및 `office_agents`로 시작하는 값                                                                          | `cowork_remote`                                                                                                                                                  | 해당 없음                                                           |
| 보존                               | 기본 6년, 또는 유한한 사용자 지정 대화 보존 기간이 설정된 경우 조직의 해당 기간. HIPAA 준비가 활성화된 조직에서는 30일. Anthropic이 보관                                                                         | 사용자가 더 일찍 세션을 삭제하지 않는 한 6년. Anthropic이 보관                                                                                                                        | 자체 인프라, 자체 정책                                                   |
| 사용자 프롬프트 및 어시스턴트 응답              | 예                                                                                                                                                                | 예                                                                                                                                                                | 예, 콘텐츠 캡처 설정에 따름                                                |
| 도구 입력                            | 기본적으로 입력당 10,000바이트로 잘림; 요청 시 최대 약 1 MiB                                                                                                                         | 기본적으로 입력당 10,000바이트로 잘림; 요청 시 최대 약 1 MiB                                                                                                                         | 잘린 요약                                                           |
| 도구 결과 콘텐츠                        | 각 텍스트 항목이 기본적으로 10,000바이트로 잘림; 요청 시 최대 약 1 MiB                                                                                                                   | 각 텍스트 항목이 기본적으로 10,000바이트로 잘림; 요청 시 최대 약 1 MiB                                                                                                                   | 크기 및 성공 여부 같은 메타데이터; Claude Code는 크기 제한이 있는 선택적 설정으로 콘텐츠도 캡처 가능 |
| 파일 내용                            | 예, 트랜스크립트의 도구 호출을 통해(텍스트만; 기타 콘텐츠는 자리 표시자로 표시)                                                                                                                   | 예, 트랜스크립트의 도구 호출을 통해(텍스트만; 기타 콘텐츠는 생략)                                                                                                                           | 파일 경로; Claude Code는 크기 제한이 있는 선택적 설정으로 내용도 캡처 가능                |
| 호스트 및 기기 메타데이터(터미널 유형, 작업 공간 경로) | 아니요                                                                                                                                                              | 아니요                                                                                                                                                              | 예                                                               |
| 토큰 사용량 및 비용                      | 아니요; [Claude Enterprise Analytics API](https://platform.claude.com/docs/ko/manage-claude/analytics-api#get-access-to-the-claude-enterprise-analytics-api)를 통해 제공 | 아니요; [Claude Enterprise Analytics API](https://platform.claude.com/docs/ko/manage-claude/analytics-api#get-access-to-the-claude-enterprise-analytics-api)를 통해 제공 | 예                                                               |

## 사용자 컴퓨터의 세션(로컬 세션)

로컬 세션은 사용자가 Claude Enterprise 계정으로 로그인한 동안 사용자 컴퓨터에서 실행됩니다. 현재 Claude Desktop의 Cowork, Claude Code(터미널, Claude Desktop 또는 IDE 확장 프로그램), Claude Science 데스크톱 앱, Claude for Microsoft 365(Excel, PowerPoint, Word, Outlook), Claude in Chrome 브라우저 확장 프로그램이 해당됩니다.

Compliance API는 세 개의 엔드포인트를 통해 로컬 세션을 제공합니다. `GET /v1/compliance/apps/sessions/local`은 세션 메타데이터를 나열하고, `GET /v1/compliance/apps/sessions/local/{session_id}`는 한 세션의 메타데이터를 검색하며, `GET /v1/compliance/apps/sessions/local/{session_id}/messages`는 한 세션의 트랜스크립트를 반환합니다. 세 엔드포인트 모두 `read:compliance_user_data` 범위가 필요하며 공유 Compliance API "rate limit"(속도 제한)에만 계산됩니다. 원격 세션 엔드포인트에 적용되는 두 번째 요청 예산은 적용되지 않습니다. [429 Too Many Requests](https://platform.claude.com/docs/ko/manage-claude/compliance-errors#429-too-many-requests)를 참조하세요. 상위 조직에서 로컬 세션을 사용할 수 없는 경우 세 엔드포인트 모두 `Local sessions are not available.` 메시지와 함께 404를 반환합니다([로컬 세션을 찾을 수 없음](https://platform.claude.com/docs/ko/manage-claude/compliance-errors#local-session-not-found) 참조). 세션 목록이나 캡처된 콘텐츠를 일시적으로 사용할 수 없는 동안에는 503을 반환합니다([로컬 세션을 일시적으로 사용할 수 없음](https://platform.claude.com/docs/ko/manage-claude/compliance-errors#local-sessions-temporarily-unavailable) 참조).

로컬 세션의 경우 Anthropic은 각 대화의 요청이 Claude API에 도달할 때 서버 측에서 기록합니다. 기기에는 아무것도 설치되지 않으며, 클라이언트가 이미 Claude API로 보내는 요청 외에는 아무것도 수집되지 않습니다. 로컬 세션 트랜스크립트는 기기에서 일어난 일이 아니라 Claude가 요청받은 작업과 Claude가 반환한 내용을 보여줍니다. 파일 및 네트워크 활동은 트랜스크립트의 도구 호출과 도구 결과를 통해서만 확인할 수 있으므로, API에 도달하지 않은 활동(예: 세션이 전송하지 않은 로컬 파일)은 캡처되지 않습니다.

[고객 관리형 암호화 키](https://platform.claude.com/docs/ko/manage-claude/cmek)를 사용하는 조직에서는 로컬 세션 트랜스크립트가 고객 관리형 키로 암호화되며 평소와 같이 반환됩니다. 해당 키를 사용할 수 없는 동안(예: 키를 비활성화 또는 취소했거나 키에 접근할 수 없는 경우) 메시지 엔드포인트는 영향을 받는 페이지에 대해 트랜스크립트 콘텐츠 대신 [503 Service Unavailable](https://platform.claude.com/docs/ko/manage-claude/compliance-errors#local-sessions-temporarily-unavailable)을 반환합니다. 이러한 메시지는 절대 `not_captured`로 보고되지 않습니다([로컬 세션 트랜스크립트 검색](https://platform.claude.com/docs/ko/manage-claude/compliance-sessions#retrieve-a-local-session-transcript) 참조). 세션 나열 및 세션 메타데이터 검색은 영향을 받지 않습니다.

목록 엔드포인트는 키가 읽을 수 있는 모든 연결된 조직에 대해 트랜스크립트 콘텐츠 없이 세션 메타데이터를 반환합니다. 원격 세션 목록과 달리 조직 또는 사용자 필터가 없으므로, `created_at.gte`, `created_at.gt`, `created_at.lt`, `created_at.lte`로 결과의 시간 범위를 제한하세요. 각각 UTC 오프셋이 필수인 RFC 3339 타임스탬프를 받습니다. 하한과 상한을 모두 지정하는 경우 상한은 하한보다 이후여야 하며(`created_at.gte`와 `created_at.lte`를 함께 사용하는 경우 같아도 됨), 그렇지 않으면 요청이 [400 Bad Request](https://platform.claude.com/docs/ko/manage-claude/compliance-errors#400-bad-request)를 반환합니다. 별도의 시간 필터인 `updated_at.gte`는 첫 활동 대신 마지막 활동을 기준으로 범위를 제한합니다. 이 필터는 마지막 추론 호출이 지정된 시간 이후(해당 시간 포함)인 세션을 반환하며, 정렬이나 페이지네이션을 변경하지 않고 `created_at` 필터와 함께 사용할 수 있습니다. 이 섹션의 뒷부분에서 설명하는 것처럼, 이전 실행 이후 활성화된 세션을 폴링하는 데 사용하세요. 새 세션과 메시지는 짧은 처리 지연(일반적으로 몇 분 이내) 후에 결과에 나타나므로, 시작 직후 누락된 세션이 반드시 캡처되지 않은 것은 아닙니다. 다음 요청은 지정된 날짜 이후에 생성된 세션을 나열합니다.

```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"
}
```

결과는 `created_at` 기준 역시간순(최신순)으로 정렬되며, 동일한 값은 서버 측의 고정된 순서로 정렬되고, 응답당 `limit`개 결과로 제한됩니다(기본값 100, 최대 500). 이 엔드포인트는 `page` 및 `next_page` 토큰을 사용하여 앞으로만 페이지네이션합니다([결과 페이지네이션](https://platform.claude.com/docs/ko/manage-claude/compliance-activity-feed#paginate-results) 참조). 응답의 `next_page` 값을 다음 요청의 `page` 쿼리 매개변수로 전달하고, `next_page`가 `null`이면 중지하세요. 응답에는 `has_more` 필드가 없습니다. 목록 순회는 시작 후 24시간 이내에 완료하세요. 더 오래된 목록 커서도 여전히 허용되지만 현재 보존 경계를 기준으로 다시 평가되므로, 가장 오래 보존된 활동이 곧 보존 기간을 벗어나는 세션은 누락될 수 있습니다.

각 세션 객체에서 `user.id`는 항상 설정되며 계정이 삭제된 후에도 유지됩니다. `user.email_address`는 사용자 계정이 삭제되었거나 사용자가 더 이상 키가 읽을 수 있는 조직의 구성원이 아닌 경우 `null`입니다. `workspace_id`는 세션이 작업 공간과 연결되지 않은 경우 `null`입니다. 로컬 세션은 하나의 클라이언트 세션 ID에 대응합니다. 클라이언트에서 새 대화를 시작하거나 컨텍스트를 지우면 새 세션 레코드가 시작됩니다. Claude Science의 경우 목록에 앱 자체의 백그라운드 작업(예: 대화 이름 지정, 최신 앱 버전에서는 검토자 및 위임 트랙도 포함)에 대한 별도 세션이 포함될 수 있으며, 이전 앱 버전에서는 이러한 백그라운드 작업 중 일부가 대화 자체 트랜스크립트 안에 추가 메시지로 나타납니다. 일부 앱 업데이트를 거쳐 이어지는 Claude Science 대화는 두 개의 세션으로 나타납니다. 이러한 동작은 예상된 것입니다. `id` 값은 불투명한 문자열로 취급하세요. 형식은 예고 없이 변경될 수 있습니다.

Claude for Microsoft 365의 경우 추가 기능에서 대화를 삭제하는 작업은 클라이언트에서만 이루어지므로 API에 반영되지 않습니다. 로컬 세션에는 `deleted_at` 필드가 없으며, 세션은 보존 정책에 의해 제거될 때까지 목록에 남아 있습니다.

로컬 세션에는 `updated_at`은 있지만 `status`는 없습니다. 로컬 세션에는 서버 측 수명 주기 상태가 없으며, 대신 보존 정책에 따라 표시 여부가 결정됩니다. 로컬 세션은 세션 중 클라이언트가 수행하는 일련의 Claude API 호출(추론 호출)로 캡처되며, 보존 정책은 캡처된 각 호출에 개별적으로 적용됩니다. `created_at`은 세션에서 보존된 호출 중 가장 이른 호출의 타임스탬프이고 `updated_at`은 마지막 호출의 타임스탬프이며, 둘 다 UTC입니다. 오래된 호출이 보존 기간을 지나면 `created_at`도 그에 따라 이후 시점으로 이동하며, 세션의 모든 호출이 보존 기간을 지나면 해당 세션은 더 이상 반환되지 않습니다. `updated_at`은 가장 최근 호출을 추적하며 그때까지 영향을 받지 않습니다. `created_at`은 실행 간에 바뀔 수 있으므로, 시간이 지나 목록을 다시 순회할 때는 `id`를 기준으로 중복을 제거하세요. 세션에 메시지가 추가될 때 트랜스크립트를 최신 상태로 유지하려면 연속된 기간이 겹치도록 `updated_at.gte` 필터로 폴링하세요. 목록 엔드포인트에서 `updated_at`은 하한값입니다. 페이지 경계나 `created_at` 기간의 상한에서 아직 활성 상태인 세션의 경우 세션의 실제 마지막 활동보다 일시적으로 뒤처질 수 있으며, 새 호출은 앞서 언급한 짧은 처리 지연 후에야 쿼리할 수 있게 됩니다. 이러한 지연 때문에 각 실행의 `updated_at.gte`는 이전 실행 시간과 정확히 같게 설정하지 말고, 이전 실행 시작 시간보다 몇 분 전으로 설정하세요. 정확히 이전 시간으로 설정된 경계는 그 시점에 마지막 호출이 아직 인덱싱 중이던 세션을 조용히 그리고 영구적으로 누락시킵니다. 경계가 해당 호출 시점을 넘어서면 이후 어떤 실행도 그 세션을 반환하지 않기 때문입니다. 반환된 세션은 `id`를 기준으로 중복을 제거하고, 해당 트랜스크립트를 다시 가져온 다음, 메시지는 `id`를 기준으로 중복을 제거하세요. 세션 또는 그 메시지를 검색하면 항상 정확한 최신 보존 호출이 반영되므로, 더 오래된 기간에 대한 주기적인 조정 실행은 겹치는 구간을 넓히는 것보다 더 철저한 대안입니다.

목록은 세션 활동 메타데이터로 구성되므로, 트랜스크립트 콘텐츠가 캡처되지 않은 세션(예: 조직에서 캡처가 시작되기 전에 실행된 세션, 보존 기간이 허용하는 범위까지)이 포함될 수 있습니다. 이러한 세션의 트랜스크립트는 각 메시지의 콘텐츠를 사용할 수 없음으로 표시하여 반환합니다([로컬 세션 트랜스크립트 검색](https://platform.claude.com/docs/ko/manage-claude/compliance-sessions#retrieve-a-local-session-transcript) 참조).

캡처된 로컬 세션 콘텐츠는 기본적으로 캡처 시점부터 6년 동안 저장됩니다. 세션을 실행한 조직이 [claude.ai > Organization settings > Data and privacy](https://claude.ai/admin-settings/data-privacy-controls)에서 유한한 사용자 지정 대화 보존 기간을 설정한 경우, 기본값보다 짧든 길든 해당 기간이 대신 적용됩니다. 조직에 둘 이상의 사용자 지정 보존 기간이 구성된 경우 가장 짧은 기간이 적용됩니다. 이 설정의 변경은 두 가지 다른 방식으로 적용됩니다. 설정이 변경되는 즉시 엔드포인트는 조직의 현재 기간보다 오래된 활동을 반환하지 않지만, 캡처된 각 메시지는 캡처 당시 적용되던 기간 동안 저장되므로 나중에 기간을 늘려도 이미 만료된 콘텐츠는 복원되지 않습니다. [HIPAA 준비](https://platform.claude.com/docs/ko/manage-claude/api-and-data-retention#hipaa-readiness)가 활성화된 조직에서는 캡처된 로컬 세션 콘텐츠가 캡처 시점부터 30일 동안, 또는 조직의 사용자 지정 대화 보존 기간이 더 짧은 경우 해당 기간 동안 저장되며, 6년 기본값은 적용되지 않습니다.

한 세션의 메타데이터를 직접 가져오려면 해당 ID를 `GET /v1/compliance/apps/sessions/local/{session_id}`에 전달하세요. 응답은 목록 엔드포인트가 반환하는 것과 동일한 세션 객체이며, 엔벨로프나 트랜스크립트 콘텐츠는 없습니다. 형식이 잘못된 세션 ID는 [400 Bad Request](https://platform.claude.com/docs/ko/manage-claude/compliance-errors#400-bad-request)를 반환합니다. 단일 [404 Not Found](https://platform.claude.com/docs/ko/manage-claude/compliance-errors#404-not-found)는 응답에서 구분되지 않는 네 가지 경우를 포괄합니다. 세션이 키가 읽을 수 있는 조직에 속하지 않는 경우(다른 상위 조직의 세션 포함), 세션이 존재하지 않는 경우, 세션에 제로 데이터 보존이 적용되는 경우, 또는 세션의 모든 호출이 보존 기간을 지난 경우입니다.

`product_surface`(문자열 또는 `null`)는 세션을 생성한 제품을 식별합니다. `cowork`(사용자 컴퓨터의 Claude Desktop에서 실행되는 Cowork), `claude_code`(Claude Code), `claude_science`(Claude Science), `claude_in_chrome`(Claude in Chrome 브라우저 확장 프로그램의 내장 채팅), 또는 `office_agents/excel`, `office_agents/powerpoint`, `office_agents/word`, `office_agents/outlook` 중 하나(앱별 Claude for Microsoft 365, 앱이 식별되지 않는 경우 `office_agents`만 사용)입니다. 지원 범위가 확대됨에 따라 새로운 값이 추가됩니다.

<Note>
  **상위 호환 핸들러를 구축하세요.** 인식되지 않는 `product_surface` 값은 그대로 전달하고 핸들러가 예상하지 않는 필드는 무시하여, 새로운 제품 표면이 출시되어도 통합이 계속 작동하도록 하세요.
</Note>

### 로컬 세션 트랜스크립트 검색

메시지 엔드포인트는 캡처된 Claude API 호출로부터 재구성된 세션의 트랜스크립트를 반환합니다. 사용자 프롬프트, 어시스턴트 텍스트, 도구 호출, 도구 결과의 텍스트 부분이 포함되며, 크기 잘림을 제외하고는 모두 전송된 그대로 반환됩니다. 해당 콘텐츠의 URL, 자격 증명 또는 개인 데이터는 마스킹되지 않으므로 트랜스크립트를 민감한 정보로 취급하세요. 트랜스크립트는 다음을 생략하거나 대체합니다.

* 사고 블록은 절대 포함되지 않습니다.
* 요청의 "system prompt"(시스템 프롬프트)는 절대 반환되지 않습니다. 대신 `[system prompt content not shown]`이라는 마커 메시지가 표시됩니다(일반적으로 세션당 한 번, 캡처된 콘텐츠가 없는 세션에는 마커가 없음).
* 도구 정의와 MCP 서버 구성은 트랜스크립트에 포함되지 않습니다.
* 이미지, PDF 및 기타 바이너리 또는 구조화된 블록은 반환되지 않습니다. 각각은 `truncated`가 `true`로 설정된 `[<block type> content not shown]`(예: `[image content not shown]`)이라는 `text` 블록으로 표시됩니다. [웹 검색](https://platform.claude.com/docs/ko/agents-and-tools/tool-use/web-search-tool) 결과나 [코드 실행 도구](https://platform.claude.com/docs/ko/agents-and-tools/tool-use/code-execution-tool)의 출력처럼 도구 결과 안의 텍스트가 아닌 항목은 하나의 `[N non-text item(s) not shown]` 항목으로 대체되며, 도구 결과 블록의 `truncated`는 `true`입니다. `input`에 검색 쿼리나 코드가 포함된 해당 도구 호출은 여전히 반환됩니다.
* 웹 검색 결과를 활용한 답변의 출처 인용처럼 `text` 블록의 인용 메타데이터는 생략됩니다. 텍스트 자체는 반환되며, 블록에는 `truncated`가 `true`로 설정됩니다.

`CLAUDE.md` 같은 프로젝트 지침 파일은 일반 사용자 역할 콘텐츠로 표시됩니다. 스킬 콘텐츠는 클라이언트가 메시지 콘텐츠로 전송할 때 표시되며 다른 사용자 텍스트와 구분되지 않습니다. 지원 범위 요약은 [Compliance API FAQ](https://platform.claude.com/docs/ko/manage-claude/compliance-faq#data-coverage-and-retention)를 참조하고, 로컬 세션을 원격 세션 및 OpenTelemetry 로깅과 비교한 표는 이 페이지의 소개 부분을 참조하세요.

```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
}
```

응답에는 페이지네이션된 `data` 배열과 함께 `session` 엔벨로프가 포함됩니다. 이 예시의 첫 번째 레코드는 요청의 시스템 프롬프트를 대신하는 마커이며, 그 `provenance`는 이 섹션의 뒷부분에서 설명합니다. 이 엔드포인트에서 `user.email_address`는 항상 `null`입니다. 메시지 엔드포인트는 이메일 주소를 확인하지 않으므로, 여기서 `null`은 사용자 계정이 삭제되었음을 의미하지 않습니다. 세션을 이메일 주소에 연결하려면 `user.id`를 [목록 엔드포인트](https://platform.claude.com/docs/ko/manage-claude/compliance-sessions#retrieve-local-sessions) 또는 검색 엔드포인트(`GET /v1/compliance/apps/sessions/local/{session_id}`)와 조인하세요.

메시지는 기본적으로 오래된 순으로 반환되며, 순서를 반대로 하려면 `order=desc`를 전달하세요. 페이지네이션은 목록 엔드포인트와 동일한 `page`/`next_page` 방식을 사용하며, `limit` 기본값은 100, 최대값은 1,000입니다. 응답이 크기 제한에 도달하면 페이지가 일찍 끝날 수 있으므로, `limit`보다 적은 메시지가 있는 페이지가 끝에 도달했음을 의미하지는 않습니다. `next_page`가 `null`이 될 때까지 계속 페이지를 넘기세요. 페이지 커서는 발급된 세션 및 정렬 순서에 바인딩되며, 순회의 커서는 첫 페이지 이후 24시간이 지나면 만료됩니다. 만료된 커서는 `page` 매개변수 없이 다시 시작하라는 [400 Bad Request](https://platform.claude.com/docs/ko/manage-claude/compliance-errors#400-bad-request)를 반환하며, 다시 시작한 순회에는 현재 보존 경계가 반영됩니다. 다른 세션이나 `order`에 대해 발급된 커서도 유효하지 않은 커서로 간주되어 400을 반환합니다.

매우 큰 세션에서는 메시지 엔드포인트가 페이지가 너무 커서 읽을 수 없다는 메시지와 함께 400을 반환할 수 있습니다. [트랜스크립트 페이지가 너무 큼](https://platform.claude.com/docs/ko/manage-claude/compliance-errors#transcript-page-too-large)을 참조하세요. 해당 요청을 재시도하지 마세요. `order=desc`를 사용했다면, 대신 `order`와 `page` 없이 첫 페이지부터 해당 세션을 오래된 순으로 읽고, 클라이언트의 요청 타임아웃을 최소 5분으로 설정하세요. 오래된 순 페이지에서도 같은 오류가 반환되면, 해당 오류 가이드 항목에서 조치 방법을 확인하세요.

매우 큰 세션에서는 메시지 엔드포인트가 `error.details.error_code`가 `transcript_read_server_busy`인 429를 반환할 수도 있습니다. 이는 조직이 속도 제한을 초과했다는 의미가 아닙니다. 400과 달리 이 경우에는 재시도하세요. `retry-after` 헤더에 지정된 초만큼 기다린 다음, 동일한 요청을 변경 없이(`page` 값이 있었다면 같은 값으로) 다시 보내세요. [대용량 트랜스크립트 읽기로 인한 서버 사용 중](https://platform.claude.com/docs/ko/manage-claude/compliance-errors#server-busy-reading-large-transcripts)을 참조하세요.

각 메시지에는 `role`(`user` 또는 `assistant`)과 `text`, `tool_use`, `tool_result` 블록으로 구성된 `content` 배열이 포함됩니다. 또한 `model`도 포함됩니다. Claude API에서 캡처된 어시스턴트 턴에서는 해당 턴을 처리한 모델이며, 사용자 메시지와 `provenance`가 설정된 모든 어시스턴트 메시지에서는 `null`입니다. 클라이언트가 주장한 기록과 합성 마커는 모델이 생성한 것이 아니며, 사용할 수 없는 콘텐츠의 경우 처리한 모델을 알 수 없기 때문입니다. `text` 블록에는 `text`와 `truncated`가 포함됩니다. `tool_use` 블록에는 `id`, `name`, `input`, `truncated`가 포함되며, 여기서 `input`은 객체가 아닌 JSON으로 인코딩된 문자열입니다. `tool_result` 블록에는 `tool_use_id`, `name`, `is_error`, `text` 항목으로 구성된 `content` 배열, `truncated`가 포함됩니다. MCP 도구 호출 및 결과와 대부분의 서버 도구 호출 및 결과는 동일한 `tool_use` 및 `tool_result` 형태로 정규화되며, 그 외의 블록 유형은 `[<block type> content not shown]` 자리 표시자로 표시됩니다. 메시지 `id`는 턴이 보존되는 동안 안정적으로 유지됩니다. 동일한 추론 호출에서 재구성된 모든 메시지는 해당 호출의 타임스탬프를 가지므로 연속된 메시지가 같은 `created_at` 값을 공유하는 경우가 많습니다. 타임스탬프로 다시 정렬하지 말고 반환된 순서를 유지하세요.

각 메시지에는 콘텐츠가 캡처된 방식을 설명하는 `provenance` 필드도 포함됩니다. Claude API가 캡처한 검증된 콘텐츠의 경우 `provenance`는 `null`이며, 이것이 일반적인 경우입니다. 그렇지 않은 경우 `type`으로 예외를 표시하는 객체입니다.

* `content_unavailable`은 콘텐츠를 반환할 수 없음을 의미합니다. `content` 배열은 비어 있으며, `provenance.reason`에 그 이유가 명시됩니다. `not_captured`는 해당 턴에 사용할 수 있는 콘텐츠가 없음을 의미합니다. 이는 레코드가 저장되지 않았음을 증명하지는 않습니다. Anthropic의 데이터 처리 정책에 따라 Compliance API에서 보류되는 콘텐츠도 같은 이유로 보고되며, 그 외에는 캡처된 세션 내에서 이러한 이유로 사용할 수 없는 개별 턴도 마찬가지입니다. 사용할 수 없는 고객 관리형 키는 유일한 예외로, 대신 [503 Service Unavailable](https://platform.claude.com/docs/ko/manage-claude/compliance-errors#local-sessions-temporarily-unavailable)을 반환합니다. `client_aborted`는 응답이 완료되기 전에 클라이언트가 연결을 닫거나 요청을 취소하여 해당 턴의 응답이 캡처되지 않았음을 의미합니다. 클라이언트에 이미 스트리밍된 부분 출력은 포함되지 않으며, 이 이유는 어시스턴트 역할 턴에만 적용됩니다. `cmek_key_revoked`는 조직의 고객 관리형 키로 암호화된 콘텐츠에서 해당 키를 사용할 수 없는 경우(예: 취소됨)를 위해 예약되어 있습니다. 사용할 수 없는 키는 대신 503을 발생시키므로 현재는 반환되지 않지만, 상위 호환성을 위해 처리하세요. `retention_elapsed`는 콘텐츠가 보존 기간을 지났음을 의미합니다. `oversize`는 단일 메시지가 메시지당 크기 한도를 초과했음을 의미하며, 메시지는 빈 `content` 배열과 함께 여전히 반환됩니다.
* `client_asserted`는 클라이언트가 대화 기록으로 제공했지만 캡처된 응답과 일치시킬 수 없는 어시스턴트 메시지를 표시하며, 그 작성자는 검증되지 않았습니다.
* `synthetic_marker`는 시스템 프롬프트를 대신하는 마커처럼 엔드포인트 자체가 생성한 레코드를 표시합니다. 클라이언트가 세션 도중 대화 기록을 다시 작성하거나 압축하는 경우(예: 컨텍스트 압축 후), 트랜스크립트는 해당 지점에 마커 메시지를 삽입하고 클라이언트가 보낸 새 콘텐츠로 이어집니다. 조직에 유한한 보존 기간이 있고 해당 새 콘텐츠에 어시스턴트 메시지가 포함된 경우, 트랜스크립트는 새 콘텐츠 중 마지막 어시스턴트 메시지까지(해당 메시지 포함)를 보류하고(두 번째 마커가 이를 알림), 그 이후의 사용자 메시지만 표시한 다음 세션의 나머지 부분을 표시합니다.

마커 및 클라이언트 주장 메시지는 `truncated: true`로 표시된 대괄호 안의 설명 `text` 블록(예: `[system prompt content not shown]`)으로 시작합니다. 이러한 레코드는 누락된 것이 아니라 존재하지만 사용할 수 없거나 검증되지 않은 것으로 취급하고, 인식되지 않는 `provenance` 유형과 이유를 허용하세요.

두 매개변수 `tool_use_input_max_bytes`와 `tool_result_max_bytes`는 각 도구 블록에서 반환되는 바이트 수를 제한하며, 둘 다 기본값은 10,000바이트입니다. 서버 최대값(문자열당 약 1 MiB)을 사용하려면 `-1`을 전달하세요. `0`은 [400 Bad Request](https://platform.claude.com/docs/ko/manage-claude/compliance-errors#400-bad-request)를 반환하며, 최대값을 초과하는 값은 최대값으로 조정됩니다. 두 제한 중 하나에 의해 잘린 문자열은 문자 경계에서 잘리고 대역 내 접미사(예: `…[truncated; pass tool_result_max_bytes=-1 for the server max]`)가 추가되며, 해당 블록에는 `"truncated": true`가 포함됩니다. 따라서 잘린 `tool_use` `input`은 더 이상 유효한 JSON이 아니므로, 도구 입력은 잘리지 않은 블록에서만 파싱하세요(또는 제한을 높여 다시 가져오세요). `text` 유형의 블록은 항상 동일한 서버 최대값인 약 1 MiB로 제한됩니다. 이를 높이는 매개변수는 없으며, 한도에 도달한 `text` 블록에도 `"truncated": true`가 포함됩니다.

Claude Science는 커넥터(MCP 서버)를 별도로 이름이 지정된 도구로 호출하지 않고 `repl` 도구를 통해 실행하는 코드에서 호출하므로, Claude Science 트랜스크립트에는 커넥터 이름을 딴 블록이 없습니다. 각 커넥터 호출은 `repl` `tool_use` 블록의 `input` 안에 있는 코드(예: `host.mcp("<server>", "<tool>", ...)` 호출)에 나타나며, 커넥터 출력은 해당 코드가 출력한 경우에만 대응하는 `tool_result`에 나타납니다. Cowork 및 Claude Code 세션은 다릅니다. 이들은 각 커넥터 도구를 고유한 `mcp__<server>__<tool>` 이름으로 호출하며, 이 이름이 `tool_use` 블록의 `name`입니다. Claude Science 세션에서 커넥터 사용을 모니터링하려면 도구 이름이 아니라 `input` 문자열을 파싱하여 그 안에 포함된 코드를 기준으로 일치시키세요. 이러한 세션에는 `tool_use_input_max_bytes=-1`을 전달하여, 긴 코드 입력이 커넥터 호출이 나타나기 전에 10,000바이트 기본값에서 잘리지 않고 서버 최대값까지 반환되도록 하세요.

트랜스크립트 콘텐츠는 [사용자 컴퓨터의 세션](https://platform.claude.com/docs/ko/manage-claude/compliance-sessions#retrieve-local-sessions)에서 설명한 보존 기간을 따릅니다. 세션의 시작 부분이 보존 기간을 지난 경우, 트랜스크립트는 `reason`이 `retention_elapsed`인 단일 `content_unavailable` 자리 표시자로 시작하고 보존된 메시지가 그 뒤에 이어집니다. 세션의 모든 호출이 보존 기간을 지난 경우, 메시지 엔드포인트는 키가 읽을 수 없는 조직의 세션, 존재하지 않는 세션, 제로 데이터 보존이 적용되는 세션과 마찬가지로 [404 Not Found](https://platform.claude.com/docs/ko/manage-claude/compliance-errors#404-not-found)를 반환합니다. 형식이 잘못된 세션 ID는 [400 Bad Request](https://platform.claude.com/docs/ko/manage-claude/compliance-errors#400-bad-request)를 반환합니다.

## 클라우드의 세션 (원격 세션)

claude.ai 웹 또는 모바일에서 시작된 Cowork 세션은 Anthropic이 관리하는 환경의 클라우드에서 실행됩니다. Compliance API는 두 개의 엔드포인트를 통해 이러한 원격 세션을 노출합니다. `GET /v1/compliance/apps/sessions/remote`는 세션 메타데이터를 나열하고, `GET /v1/compliance/apps/sessions/remote/{session_id}/messages`는 한 세션의 트랜스크립트를 반환합니다. 둘 다 `read:compliance_user_data` 범위가 필요하며, 둘 다 공유 Compliance API 속도 제한과 이 엔드포인트에 특정한 두 번째 요청 예산에 계산됩니다. [429 Too Many Requests](https://platform.claude.com/docs/ko/manage-claude/compliance-errors#429-too-many-requests)를 참조하세요.

목록 엔드포인트는 기본적으로 조직 전체 범위입니다. 키가 읽을 수 있는 모든 claude.ai 조직을 포함하려면 `organization_ids[]`를 생략하고, 범위를 좁히려면 최대 500개의 값을 전달하세요. 대신 특정 사용자로 목록 범위를 지정하려면 1\~10개의 `user_ids[]` 값을 전달하세요(ID는 [조직 사용자 나열](https://platform.claude.com/docs/ko/manage-claude/compliance-org-data#list-organization-users)에서 얻습니다). 이 필터는 세션의 소유 사용자와 일치하므로 `user_ids[]`가 설정되면 에이전트 소유 세션은 제외됩니다. `created_at` 범위 매개변수(`gte`, `gt`, `lt`, `lte`, RFC 3339 형식)로 결과를 시간 범위로 제한하세요. `updated_at` 필터는 없습니다. 다음 요청은 지정된 날짜 이후에 생성된 세션을 나열합니다.

```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"
}
```

결과는 `created_at` 기준 역시간순(최신순)으로 정렬되며 응답당 `limit`개의 결과로 제한됩니다(기본 100, 최대 500). 이 엔드포인트는 `page` 및 `next_page` 토큰으로 페이지네이션합니다([결과 페이지네이션](https://platform.claude.com/docs/ko/manage-claude/compliance-activity-feed#paginate-results) 참조). 응답의 `next_page` 값을 다음 요청의 `page` 쿼리 매개변수로 다시 전달하고, `next_page`가 `null`이면 중지하세요.

세션은 사용자 또는 에이전트 중 하나가 소유하며, 둘 다 소유하는 경우는 없습니다. 사용자 소유 세션의 경우 `user`에는 소유자의 ID와 이메일 주소가 담기며(사용자가 더 이상 키가 읽을 수 있는 조직의 구성원이 아니면 `email_address`는 `null`입니다), `agent_id`는 `null`입니다. 에이전트 소유 세션(예: 클라우드에서 실행되는 Cowork 예약 작업의 실행)의 경우 `user`는 `null`이고, `agent_id`에는 에이전트의 ID(접두사 `cagt_`)가 담기며, `started_by_user`는 실행을 시작한 사람을 식별합니다. 사용자 소유 세션에서는 `started_by_user`가 `null`입니다. 예약 작업의 각 실행은 별도의 세션이며, 어떤 세션 필드에도 작업의 이름이나 일정은 담기지 않습니다.

`claude_project_id`는 세션이 속한 claude.ai [프로젝트](https://platform.claude.com/docs/ko/manage-claude/compliance-content-data#retrieve-projects-and-attachments)의 ID(접두사 `claude_proj_`)이며, 세션이 프로젝트에 속하지 않은 경우 `null`입니다.

`status`는 `pending`, `active`, `paused`, `archived` 또는 `failed` 중 하나입니다. 세션은 프로비저닝되는 동안 `pending`입니다. `pending` 세션에는 아직 트랜스크립트가 없으며, 프로비저닝이 완료될 때까지 메시지 엔드포인트는 이에 대해 404를 반환합니다. 삭제된 세션은 반환되지 않습니다.

`product_surface`(문자열 또는 `null`)는 세션을 생성한 제품을 식별합니다. 이 엔드포인트는 현재 `product_surface`가 `cowork_remote`인 세션, 즉 claude.ai 웹 또는 모바일에서 시작된 Cowork 세션만 반환합니다.

클라우드에서 실행된 부분을 포함하여 통합 Claude 환경의 채팅을 검색하려면 원격 세션 엔드포인트가 아닌 채팅 엔드포인트([채팅 메시지 가져오기](https://platform.claude.com/docs/ko/api/compliance/apps/chats/messages/list))를 사용하세요.

<Note>
  **상위 호환 핸들러를 구축하세요.** 인식되지 않는 `status` 및 `product_surface` 값을 통과시키고 핸들러가 예상하지 않는 필드를 무시하여, 새로운 상태와 제품 표면이 출시되어도 통합이 계속 작동하도록 하세요.
</Note>

### 원격 세션 트랜스크립트 검색

메시지 엔드포인트는 세션의 트랜스크립트를 반환합니다. 사용자 프롬프트, 어시스턴트 응답, 도구 호출 및 결과입니다. 사고 블록과 이미지는 포함되지 않습니다. 지원 범위 요약은 [Compliance API FAQ](https://platform.claude.com/docs/ko/manage-claude/compliance-faq#data-coverage-and-retention)를 참조하세요. 원격 세션을 로컬 세션 및 Cowork의 OpenTelemetry 로깅과 비교하는 표는 이 페이지의 소개를 참조하세요.

```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
}
```

응답은 페이지네이션된 `data` 배열과 함께 `session` 엔벨로프를 포함합니다. 이 엔드포인트에서 엔벨로프의 `user.email_address`, `started_by_user`, `claude_project_id`는 항상 `null`로 설정됩니다. 해당 값은 대신 목록 엔드포인트에서 가져오세요.

메시지는 기본적으로 오래된 순으로 반환됩니다. 역순으로 하려면 `order=desc`를 전달하세요. 페이지네이션은 목록 엔드포인트와 동일한 `page`/`next_page` 방식을 사용하며, `limit` 기본값은 100이고 최대값은 1,000입니다. 응답이 크기 제한에 도달하면 페이지가 일찍 끝날 수 있으므로, `limit`보다 적은 메시지가 있는 페이지가 끝에 도달했다는 의미는 아닙니다. `next_page`가 `null`이 될 때까지 계속 페이지네이션하세요.

각 메시지에는 `role`(`user` 또는 `assistant`)과 `text`, `tool_use`, `tool_result` 블록의 `content` 배열이 있습니다. 메시지 `created_at` 값은 커밋 타임스탬프입니다. 연속된 메시지가 타임스탬프를 공유하거나 약간 역전될 수 있으므로, `created_at`으로 다시 정렬하지 말고 반환된 순서를 유지하세요. 에이전트 소유 세션에서 `sent_by_user_id`는 귀속 가능한 경우 특정 사용자 메시지를 보낸 사용자를 기록합니다. 그렇지 않으면 모든 어시스턴트 메시지를 포함하여 `null`입니다. 메시지의 콘텐츠를 전혀 반환할 수 없는 경우(예: 크기 한도 초과) 메시지에는 `content_unavailable`이 `true`로 설정됩니다.

두 개의 매개변수가 각 도구 블록에서 반환되는 바이트 수를 제한합니다. `tool_use_input_max_bytes`와 `tool_result_max_bytes`이며, 둘 다 기본값은 10,000바이트입니다. 서버 최대값(문자열당 약 1 MiB)을 원하면 `-1`을 전달하세요. `0`은 [400 Bad Request](https://platform.claude.com/docs/ko/manage-claude/compliance-errors#400-bad-request)를 반환합니다. 어느 한도에 의해 잘린 블록에는 `"truncated": true`가 있으며, 잘린 `tool_use` 입력은 더 이상 유효한 JSON이 아니므로, 잘리지 않은 블록에서만 도구 입력을 파싱하세요(또는 한도를 높이고 다시 가져오세요).

메시지 엔드포인트는 `pending` 세션, 존재하지 않거나 삭제된 세션, 키가 읽을 수 없는 조직의 세션에 대해 [404 Not Found](https://platform.claude.com/docs/ko/manage-claude/compliance-errors#404-not-found)를 반환합니다.

## 보존 및 삭제

세션 엔드포인트는 읽기 전용이며, 로컬 및 원격 세션은 Compliance API를 통해 삭제할 수 없습니다. 로컬 세션 트랜스크립트는 [사용자 컴퓨터의 세션](https://platform.claude.com/docs/ko/manage-claude/compliance-sessions#retrieve-local-sessions)에 설명된 대로 기본적으로 6년간 보존되며, 조직에 유한한 사용자 지정 대화 보존 기간이 설정된 경우 해당 기간 동안, HIPAA 준비가 활성화된 조직에서는 30일간 보존됩니다. 원격 세션 트랜스크립트는 사용자가 세션을 더 일찍 삭제하지 않는 한 6년간 보존됩니다. 사용자가 세션을 삭제하면 원격 세션 엔드포인트는 더 이상 해당 세션을 반환하지 않으며, 그 트랜스크립트는 Compliance API를 통해 복구할 수 없습니다. 이러한 기간이 Anthropic의 다른 보존 방식과 어떻게 함께 적용되는지 알아보려면 [API 및 데이터 보존](https://platform.claude.com/docs/ko/manage-claude/api-and-data-retention)을 참조하세요.

## 다음 단계

<CardGroup cols={2}>
  <Card title="채팅, 파일 및 프로젝트 조회 및 삭제" href="https://platform.claude.com/docs/ko/manage-claude/compliance-content-data">
    동일한 Compliance Access Key로 claude.ai 채팅 콘텐츠, 파일 첨부 및 프로젝트에 액세스하세요.
  </Card>

  <Card title="Compliance API FAQ" href="https://platform.claude.com/docs/ko/manage-claude/compliance-faq#data-coverage-and-retention">
    세션 트랜스크립트에 포함되는 내용에 대한 필드별 요약 및 기타 자주 묻는 질문입니다.
  </Card>

  <Card title="Compliance API 오류 처리" href="https://platform.claude.com/docs/ko/manage-claude/compliance-errors">
    오류 페이로드 원문과 각 오류에 대한 해결 방법입니다.
  </Card>

  <Card title="API 레퍼런스" href="https://platform.claude.com/docs/ko/api/compliance/apps">
    Compliance API의 엔드포인트 경로, 매개변수 및 응답 스키마입니다.
  </Card>
</CardGroup>
