채팅, 파일, 프로젝트 조회 및 삭제
Compliance API를 통해 claude.ai 조직의 채팅 콘텐츠, 파일 첨부, 프로젝트에 액세스합니다.
이 페이지의 엔드포인트는 Claude Enterprise 채팅 콘텐츠, 파일 업로드, 프로젝트, 프로젝트 첨부 파일을 컴플라이언스 검토자에게 노출합니다. 이 엔드포인트는 eDiscovery(전자 증거 개시) 내보내기, "data loss prevention"(데이터 손실 방지), 즉 DLP 시행, 계정 삭제 대응을 지원합니다. 채팅, 파일, 프로젝트 콘텐츠는 조직의 보존 정책이 허용하는 기간 동안 보존됩니다. 사용자가 claude.ai에서 채팅을 삭제하면 해당 채팅의 메시지 콘텐츠, 첨부 파일, 도구 생성 파일, 아티팩트가 함께 삭제됩니다. Compliance API는 여전히 해당 채팅을 나열하되 deleted_at이 채워지고 name이 비어 있는 상태로 표시하며, 콘텐츠 없이 메시지를 반환합니다. 하드 삭제된 채팅(Compliance API 자체를 통해 삭제되었거나 조직의 보존 기간이 만료된 후 삭제된 채팅)은 조회할 수 없습니다.
두 범위 모두 claude.ai에서 생성된 Compliance Access Key(sk-ant-api01-...)에만 부여됩니다. 키를 프로비저닝하려면 Compliance API 설정을 참조하세요. read:compliance_user_data 범위는 조회를 다루며, delete:compliance_user_data는 삭제 엔드포인트에만 필요합니다. 채팅, 파일, 프로젝트, 첨부 파일 엔드포인트는 Admin API 키(sk-ant-admin01-...)로는 사용할 수 없습니다. Admin API 키로 인증된 호출은 403 Forbidden을 반환합니다.
이 페이지의 엔드포인트는 두 가지 방식으로 페이지네이션합니다. 전체 참조는 결과 페이지네이션을 참조하세요. 각 섹션에서 어떤 방식이 적용되는지 명시합니다.
채팅 및 메시지 조회
채팅 나열을 사용하여 채팅 메타데이터를 페이지 단위로 탐색한 다음, 채팅 메시지 가져오기를 사용하여 한 채팅의 전체 메시지 콘텐츠를 가져오세요.
채팅 목록 엔드포인트는 기본적으로 조직 전체 범위입니다. user_ids[]를 생략하면 상위 조직 아래의 모든 채팅이 포함됩니다. 마지막 업데이트 시간으로 정렬하려면 order_by=updated_at을 추가하세요. 이 조합은 채팅을 내보내고 내보내기를 최신 상태로 유지하는 데 권장되는 방법입니다. 하나의 페이지네이션 루프로 사용자를 먼저 열거하지 않고도 모든 사용자의 새 채팅, 수정된 채팅, claude.ai에서 삭제된 채팅을 가져올 수 있기 때문입니다. 다음 요청은 지정된 날짜 이후에 업데이트된 채팅을 나열합니다.
curl --fail-with-body -sS -G \
"https://api.anthropic.com/v1/compliance/apps/chats" \
--header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
--data-urlencode "order_by=updated_at" \
--data-urlencode "updated_at.gte=2025-06-01T00:00:00Z" \
--data-urlencode "limit=100"{
"data": [
{
"id": "claude_chat_01H5CWunD7RpVJ5bHa8RCkja",
"name": "Product Requirements Discussion",
"created_at": "2026-04-10T08:09:10Z",
"updated_at": "2026-04-10T09:10:11Z",
"deleted_at": null,
"href": "https://claude.ai/chat/abcdef01-2345-6789-abcd-ef0123456789",
"model": "claude-opus-5",
"organization_uuid": "91012d09-e48b-438e-a489-1bebfd8fa6f9",
"project_id": "claude_proj_01KGp4eZNug9ri4kE35RSppq",
"user": {
"id": "user_01XyDMpzjS89pFZXqSFUBDr6",
"email_address": "user@example.com"
}
}
],
"has_more": true,
"first_id": "eyJrIjogInVwZGF0ZWRfYXQiLCAidCI6ICIyMDI2LTA0LTEwVDA5OjEwOjExKzAwOjAwIiwgImlkIjogImFiY2RlZjAxLS4uLiJ9",
"last_id": "eyJrIjogInVwZGF0ZWRfYXQiLCAidCI6ICIyMDI2LTA0LTEwVDA5OjEwOjExKzAwOjAwIiwgImlkIjogImFiY2RlZjAxLS4uLiJ9"
}결과는 order_by 필드 기준 오름차순(오래된 것부터)으로 정렬되며, 동일한 값은 id로 구분됩니다. 페이지네이션은 결과 페이지네이션에 설명된 표준 first_id/last_id/has_more 커서 필드를 사용합니다. 더 최신 채팅 쪽으로 앞으로 이동하려면 응답의 last_id를 다음 요청의 after_id로 다시 전달하세요.
이 전진 탐색은 실행 간에 내보내기를 최신 상태로 유지하는 방법이기도 합니다. 마지막 페이지의 last_id를 저장해 두고 다음 실행 시 이를 after_id로 사용하여 재개하세요. 목록이 updated_at 기준으로 정렬되므로, 저장된 커서 이후에 변경된 채팅은 커서보다 앞쪽에 다시 나타납니다. 따라서 각 증분 실행은 완전히 새로운 채팅과 그 이후 claude.ai에서 수정되거나 삭제된 기존 채팅을 모두 반환합니다. 이러한 재등장을 처리하려면 채팅 id를 키로 하여 결과를 멱등적으로 처리하세요. deleted_at이 채워진 상태로 돌아온 채팅은 가져올 콘텐츠가 남아 있지 않으므로 업데이트된 것이 아니라 삭제된 것으로 취급하세요.
이러한 조직 전체 쿼리에는 몇 가지 제약이 적용됩니다. 커서는 불투명하며 정렬 키에 바인딩되므로, 한 order_by 값에서 발급된 after_id는 다른 값에서 400 오류로 거부됩니다. 시간 필터 경계도 정렬 키와 일치해야 합니다. updated_at.* 경계는 order_by=updated_at과, created_at.* 경계는 기본값인 order_by=created_at과 함께 사용하세요. before_id를 사용한 역방향 페이지네이션은 지원되지 않으며, project_ids[] 필터는 사용할 수 없습니다. 전체 필터 참조는 채팅 나열을 참조하세요.
대신 목록을 특정 사용자로 범위를 지정하려면(예: 지정된 관리 대상자에 대한 법적 보존), 1~10개의 user_ids[] 값을 전달하세요. ID는 조직 사용자 나열에서 얻으세요. 사용자 필터링 쿼리는 항상 created_at 기준으로 정렬되며(order_by=updated_at을 전달하면 400 오류가 반환됨) after_id와 before_id를 모두 지원합니다. project_ids[] 필터링은 이 사용자 필터링 형식에서만 사용할 수 있습니다. user_ids[]를 updated_at.* 경계와 결합하는 것은 지원 중단되었으며 2026-09-22 이후에는 400 오류로 거부됩니다. 관리 대상자 집합을 업데이트 시간 기준으로 최신 상태로 유지하려면 user_ids[] 없이 조직 전체 order_by=updated_at 탐색을 실행하고 그 결과에서 관리 대상자의 채팅을 선택하세요. 사용자 필터링 목록은 created_at 순서의 내보내기에 사용하세요.
curl --fail-with-body -sS -G \
"https://api.anthropic.com/v1/compliance/apps/chats" \
--header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
--data-urlencode "user_ids[]=user_01XyDMpzjS89pFZXqSFUBDr6" \
--data-urlencode "created_at.gte=2025-06-01T00:00:00Z" \
--data-urlencode "limit=100"목록 응답에는 채팅 메타데이터만 포함됩니다. 실제 채팅 콘텐츠, 첨부 파일, 인라인 아티팩트(Claude가 채팅 내에서 생성하는 구조화된 문서)를 가져오려면 각 채팅 ID에 대해 메시지 엔드포인트를 후속 호출하세요.
chat_id="claude_chat_01H5CWunD7RpVJ5bHa8RCkja"
curl --fail-with-body -sS \
"https://api.anthropic.com/v1/compliance/apps/chats/$chat_id/messages" \
--header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY"메시지 엔드포인트는 채팅의 메타데이터와 created_at 기준으로 정렬된 chat_messages 배열을 반환합니다. limit을 생략하면 전체 메시지 집합이 하나의 응답으로 반환됩니다. 매우 긴 채팅을 페이지 단위로 탐색하려면 limit, after_id 또는 before_id를 전달하세요. 이 엔드포인트는 created_at.* 및 updated_at.* 범위 경계(gt, gte, lt, lte)와 order 매개변수(asc 또는 desc)도 받습니다. 전체 매개변수 목록은 채팅 메시지 가져오기를 참조하세요. 사용자 메시지의 경우 created_at은 메시지가 전송된 시점이고, 어시스턴트 메시지의 경우 Claude가 메시지 생성을 완료한 시점입니다. 각 메시지에는 텍스트 콘텐츠와 함께, 존재하는 경우 업로드된 파일(일반적으로 사용자 메시지), 도구 생성 파일, 어시스턴트가 생성하거나 업데이트한 아티팩트(일반적으로 어시스턴트 메시지)가 포함됩니다.
{
"id": "claude_chat_01H5CWunD7RpVJ5bHa8RCkja",
"name": "Product Requirements Discussion",
"created_at": "2026-04-10T08:09:10Z",
"updated_at": "2026-04-10T09:10:11Z",
"deleted_at": null,
"href": "https://claude.ai/chat/abcdef01-2345-6789-abcd-ef0123456789",
"model": "claude-opus-5",
"organization_uuid": "91012d09-e48b-438e-a489-1bebfd8fa6f9",
"project_id": "claude_proj_01KGp4eZNug9ri4kE35RSppq",
"user": {
"id": "user_01XyDMpzjS89pFZXqSFUBDr6",
"email_address": "user@example.com"
},
"chat_messages": [
{
"id": "claude_chat_msg_01VnBPkLmtj7YdW5QrXKEA8c",
"role": "user",
"created_at": "2026-04-10T08:09:10Z",
"content": [
{
"type": "text",
"text": "Can you help me draft requirements for our new dashboard feature?"
}
],
"files": [
{
"id": "claude_file_01UaT9wBcDfGhJkLmNpQrSv7",
"filename": "dashboard_mockup_v1.pdf",
"mime_type": "application/pdf",
"size_bytes": 482133,
"md5": "56367e4d2705cc9c025ad07424e944f0",
"created_at": "2026-04-10T08:09:10Z"
}
]
},
{
"id": "claude_chat_msg_01M8tFcHwbQ2kY6NpEjRZv4D",
"role": "assistant",
"created_at": "2026-04-10T08:09:11Z",
"content": [
{
"type": "text",
"text": "I'd be happy to help you draft requirements for your dashboard feature..."
}
],
"generated_files": [
{
"id": "claude_gen_file_01TbR8wAcCeFhJkLnPqStUvX",
"filename": "requirements_summary.csv",
"mime_type": "text/csv",
"size_bytes": 2048,
"md5": "89968669461d95416549937168269d6b"
}
],
"artifacts": [
{
"id": "claude_artifact_01HqRsTuVwXyZa2BcDeFgH4J",
"version_id": "claude_artifact_version_01KmNpQrSt3UvWxYz5AbCdEfG",
"title": "Dashboard Requirements Draft",
"artifact_type": "text/markdown"
}
]
}
],
"has_more": false,
"first_id": "eyJtc2dfdXVpZCI6ICIwZjcwYjA2Ni0uLi4ifQ==",
"last_id": "eyJtc2dfdXVpZCI6ICJhNGUwYjE3Mi0uLi4ifQ=="
}files, generated_files, artifacts는 각각 특정 메시지에서 null일 수 있습니다. files는 사용자가 메시지에 첨부한 파일 및 텍스트 첨부(예: PDF, 이미지, 스프레드시트, 문서, 붙여넣은 텍스트)로, claude.ai가 저장한 형태입니다. generated_files는 어시스턴트가 대화 중 도구 사용을 통해 생성한 바이너리 파일(예: PDF, 스프레드시트, 슬라이드 덱)입니다. artifacts는 어시스턴트가 응답에서 생성하거나 업데이트한 버전 관리 문서(예: 코드 또는 마크다운)입니다. 아티팩트는 같은 채팅 내 여러 어시스턴트 턴에 걸쳐 수정될 수 있으며, 각 수정본은 동일한 아티팩트 id 아래 새로운 version_id로 나타납니다. 각 항목의 id(아티팩트의 경우 version_id)를 파일 및 아티팩트 조회의 해당 콘텐츠 엔드포인트에 전달하여 다운로드하세요.
파일 및 아티팩트 조회
파일과 아티팩트는 독립적으로 나열되지 않고 ID로 다운로드됩니다. ID는 채팅 및 메시지 조회의 채팅 메시지 엔드포인트(각 메시지의 files, generated_files, artifacts 배열)에서 얻거나, 프로젝트 수준 업로드의 경우 프로젝트 첨부 파일 엔드포인트에서 얻습니다.
ID 유형과 필요한 데이터에 맞는 엔드포인트를 선택하세요. 동일한 파일 콘텐츠 엔드포인트가 채팅 파일과 프로젝트 파일을 모두 제공합니다.
| 보유한 것 | 원하는 것 | 사용할 엔드포인트 |
|---|---|---|
claude_file_* ID | 파일의 콘텐츠 | 파일 콘텐츠 다운로드 |
claude_file_* ID | 파일의 메타데이터만 | 파일 메타데이터 가져오기 |
claude_gen_file_* ID | 도구 생성 파일의 바이너리 콘텐츠 | Claude 생성 파일 다운로드 |
claude_gen_file_* ID | 도구 생성 파일의 메타데이터만 | 생성 파일 메타데이터 가져오기 |
claude_artifact_version_* ID | 한 아티팩트 버전의 텍스트 | 아티팩트 콘텐츠 다운로드 |
claude_artifact_version_* ID | 아티팩트 버전의 메타데이터만 | 아티팩트 메타데이터 가져오기 |
claude_proj_doc_* ID | 프로젝트 문서의 일반 텍스트 콘텐츠 | 프로젝트 문서 콘텐츠 가져오기 |
claude_proj_doc_* ID | 프로젝트 문서의 메타데이터만 | 프로젝트 문서 메타데이터 가져오기 |
파일 콘텐츠 엔드포인트는 claude.ai가 해당 파일에 대해 저장한 콘텐츠를 청크 바이너리 응답으로 스트리밍합니다. 이 콘텐츠는 사용자가 업로드한 파일과 항상 동일하지는 않습니다. 이미지는 업로드된 바이트가 아닌 처리된 사본으로 제공될 수 있습니다. 채팅에 첨부된 일부 문서(예: Word 파일, PowerPoint 파일, 일부 PDF)는 claude.ai가 추출한 텍스트로 저장됩니다. 이러한 문서의 경우 엔드포인트는 원본 파일 이름으로 추출된 텍스트를 반환하며, 원본 문서는 Compliance API를 통해 사용할 수 없습니다. size_bytes 및 md5 필드는 업로드된 파일이 아닌 저장된 콘텐츠를 설명합니다. 파일 이름과 mime_type은 여전히 업로드된 문서의 형식을 나타낼 수 있습니다. 파일의 형식은 이름이나 선언된 유형이 아닌 반환된 바이트로 식별하세요.
응답에는 다음 헤더가 포함됩니다.
Content-Disposition: attachment; filename*=utf-8''<percent-encoded filename>은 원본 업로드 파일 이름을 RFC 5987 확장 형식으로 전달합니다. 확장 형식은 비ASCII 파일 이름뿐만 아니라 모든 파일 이름에 사용됩니다.Content-Type은 저장된 콘텐츠에 대해 기록된 MIME 유형을 전달하며, 추출된 텍스트로 저장된 문서의 경우 여전히 원본 문서 형식을 나타낼 수 있습니다.Content-MD5는 제공된 바이트의 MD5 다이제스트를 RFC 1864에 명시된 대로 base64로 인코딩하여 전달합니다.Transfer-Encoding: chunked는 항상 설정됩니다.
file_id="claude_file_01UaT9wBcDfGhJkLmNpQrSv7"
curl --fail-with-body -sS -OJ \
--header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
"https://api.anthropic.com/v1/compliance/apps/chats/files/$file_id/content"-OJ 플래그는 curl이 Content-Disposition의 파일 이름, 즉 사용자가 업로드한 원본 파일 이름으로 응답을 저장하도록 지시합니다.
아티팩트 콘텐츠 엔드포인트는 한 아티팩트 버전의 텍스트 본문을 반환합니다. 아티팩트의 고정 id가 아니라 어시스턴트 메시지의 artifacts 배열 항목 중 하나의 version_id를 전달하세요. 아티팩트의 각 새 버전은 고유한 version_id를 가지며, Compliance API는 해당 버전의 정확한 바이트를 제공합니다.
프로젝트 및 첨부 파일 조회
프로젝트는 관련 채팅을 사용자 지정 지침, 지식 베이스 콘텐츠, 첨부된 파일 또는 텍스트 문서와 함께 묶습니다. Compliance API는 프로젝트 메타데이터, 프로젝트 세부 정보, 프로젝트에 속한 첨부 파일 목록을 노출합니다.
프로젝트 결과는 생성 날짜 기준 오름차순으로 정렬됩니다. 첨부 파일 결과는 created_at 기준 오름차순으로 정렬되며, 동일한 값은 id로 구분됩니다. 프로젝트 목록 및 첨부 파일 목록 응답은 채팅과 Activity Feed에서 사용하는 first_id/last_id 커서 대신 불투명한 next_page 페이지 토큰으로 페이지네이션합니다. 다음 요청에서 토큰을 page 쿼리 매개변수로 다시 전달하세요.
프로젝트 파일과 프로젝트 문서
프로젝트 첨부 파일은 각 항목의 type 판별자로 식별되는 두 가지 서로 다른 형태 중 하나입니다.
type이 project_file인 항목은 ID가 claude_file_로 시작하는 파일 업로드(PDF, 이미지, 스프레드시트)이며, 파일 콘텐츠 다운로드로 다운로드하세요. type이 project_doc인 항목은 ID가 claude_proj_doc_로 시작하는 일반 텍스트 문서(항상 text/plain)이며, 프로젝트에 추가될 때 claude.ai가 텍스트로 변환하는 Word 파일과 같은 문서를 포함합니다. 프로젝트 문서 콘텐츠 가져오기로 가져오세요.
첨부 파일 목록을 탐색하는 소비자는 type에 따라 분기하여 각 항목에 맞는 콘텐츠 엔드포인트를 호출해야 합니다. 다음 요청은 첨부 파일 한 페이지를 나열합니다. has_more가 false가 될 때까지 next_page를 page 매개변수로 다시 전달하여 페이지네이션하세요.
project_id="claude_proj_01KGp4eZNug9ri4kE35RSppq"
curl --fail-with-body -sS -G \
"https://api.anthropic.com/v1/compliance/apps/projects/$project_id/attachments" \
--header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY"{
"data": [
{
"id": "claude_file_01UaT9wBcDfGhJkLmNpQrSv7",
"created_at": "2026-04-10T08:09:10Z",
"filename": "dashboard_mockup_v1.pdf",
"mime_type": "application/pdf",
"size_bytes": 482133,
"md5": "56367e4d2705cc9c025ad07424e944f0",
"type": "project_file"
},
{
"id": "claude_proj_doc_01YnT8sBcWvUtXzQpMkRfDgH",
"created_at": "2026-04-10T08:09:11Z",
"filename": "requirements.md",
"mime_type": "text/plain",
"type": "project_doc"
}
],
"has_more": false,
"next_page": null
}콘텐츠 삭제
Compliance API는 채팅, 파일, 프로젝트 문서, 전체 프로젝트에 대한 하드 삭제 엔드포인트를 노출합니다. 하드 삭제된 채팅은 복원할 수 없으며, 이후 목록 응답에 더 이상 나타나지 않습니다.
- 채팅 삭제: 채팅의 메시지와 해당 메시지에 첨부된 모든 파일도 제거합니다.
- 파일 삭제: 채팅 파일과 프로젝트 파일을 모두 처리합니다.
- 프로젝트 문서 삭제: ID로 단일 프로젝트 문서를 제거합니다.
- 프로젝트 삭제: 프로젝트 삭제 전 채팅 분리를 참조하세요.
네 엔드포인트 모두 delete:compliance_user_data 범위가 필요하며, 이 범위는 Compliance Access Key 생성 시 읽기 범위와 별도로 부여됩니다.
다음 요청은 채팅 하나를 삭제합니다. 다른 삭제 엔드포인트에도 동일한 패턴이 적용되며 URL만 변경됩니다.
# 경고: 이 작업은 채팅과 해당 채팅의 모든 메시지,
# 그리고 첨부된 모든 파일을 영구적으로 삭제합니다. 삭제는 즉시 이루어지며 되돌릴 수 없습니다.
# 이 작업에는 `delete:compliance_user_data` 범위가 필요하며, 이는 Compliance Access Key 생성 시
# `read:compliance_user_data`와 별도로 부여됩니다.
# 실행하기 전에 명시적인 권한이 있는지 확인하세요.
chat_id="claude_chat_01H5CWunD7RpVJ5bHa8RCkja"
curl --fail-with-body -sS -X DELETE \
"https://api.anthropic.com/v1/compliance/apps/chats/$chat_id" \
--header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY"{
"id": "claude_chat_01H5CWunD7RpVJ5bHa8RCkja",
"type": "claude_chat_deleted"
}성공한 각 삭제는 id와 type 판별자가 포함된 작은 확인 엔벨로프를 반환합니다. 채팅 엔드포인트는 claude_chat_deleted를 반환합니다. 삭제가 확인된 것으로 취급하기 전에 type 필드를 확인하세요. 다른 엔드포인트가 반환하는 정확한 type 값은 각 삭제 엔드포인트의 API 참조 페이지에 있는 응답 스키마를 참조하세요.
프로젝트 삭제 전 채팅 분리
프로젝트에 연결된 채팅이 남아 있는 동안에는 프로젝트를 삭제할 수 없습니다. API는 다음 본문과 함께 409를 반환합니다.
{
"error": {
"type": "conflict_error",
"message": "The \"claude_proj_01KGp4eZNug9ri4kE35RSppq\" project cannot be deleted as it has chats attached to it. Delete or detach all chats, and try deleting the project again."
}
}해결하려면 GET /v1/compliance/apps/chats?user_ids[]={user_id}&project_ids[]={project_id}로 프로젝트의 채팅을 나열하고(project_ids[] 필터에는 최소 하나의 user_ids[] 값이 필요합니다. 조직 사용자 나열을 통해 ID를 열거하세요), 각 채팅을 DELETE /v1/compliance/apps/chats/{claude_chat_id}로 삭제한 다음(또는 claude.ai에서 프로젝트 밖으로 이동), 프로젝트 삭제를 다시 시도하세요.
다음 단계
모든 채팅, 파일, 프로젝트, 아티팩트 엔드포인트에 대한 전체 요청 및 응답 스키마입니다.
사용자가 Cowork 및 Claude Code와 같은 Claude 앱과 에이전트에서 실행하는 세션을 나열하고 해당 트랜스크립트를 조회합니다.
이 페이지의 채팅 및 프로젝트와 연관된 사람과 팀을 열거합니다.
Was this page helpful?