本页面上的端点用于检索和删除 claude.ai 内容,该功能仅适用于使用 Claude Enterprise 计划的组织。Compliance API 需申请后启用。请参阅获取 Compliance API 访问权限。
**所需权限范围:**Compliance Access Key 上的 read:compliance_user_data。删除端点还需要 delete:compliance_user_data。
**前提条件:**要列出聊天,需要至少一个来自列出组织用户的用户 ID。本页面上的其他端点直接接受资源 ID。
本页面上的端点向合规审查人员公开 claude.ai 的聊天内容、文件上传、项目和项目附件。它们支持 "eDiscovery"(电子取证)导出、"data loss prevention"(数据丢失防护),即 DLP 执行,以及账户删除响应。内容的保留时长取决于您组织的保留策略。用户在 claude.ai 中软删除的聊天仍可通过 Compliance API 查看,且 deleted_at 字段会被填充;已被硬删除的聊天(通过 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[] 值(单个请求中最多接受 10 个),因此请先通过列出组织用户枚举用户 ID,然后为每个用户或每批用户列出聊天。以下请求列出自给定日期以来由特定用户拥有的聊天。
curl --fail-with-body -sS -G \
"https://api.anthropic.com/v1/compliance/apps/chats" \
--header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
--data-urlencode "user_ids[]=user_01XyDMpzjS89pFZXqSFUBDr6" \
--data-urlencode "organization_ids[]=91012d09-e48b-438e-a489-1bebfd8fa6f9" \
--data-urlencode "created_at.gte=2025-06-01T00:00:00Z" \
--data-urlencode "limit=100"{
"data": [
{
"id": "claude_chat_01H5CWunD7RpVJ5bHa8RCkja",
"name": "Product Requirements Discussion",
"created_at": "2026-04-10T08:09:10Z",
"updated_at": "2026-04-10T09:10:11Z",
"deleted_at": null,
"href": "https://claude.ai/chat/abcdef01-2345-6789-abcd-ef0123456789",
"model": "claude-opus-4-8",
"organization_uuid": "91012d09-e48b-438e-a489-1bebfd8fa6f9",
"project_id": "claude_proj_01KGp4eZNug9ri4kE35RSppq",
"user": {
"id": "user_01XyDMpzjS89pFZXqSFUBDr6",
"email_address": "[email protected]"
}
}
],
"has_more": true,
"first_id": "claude_chat_01H5CWunD7RpVJ5bHa8RCkja",
"last_id": "claude_chat_01H5CWunD7RpVJ5bHa8RCkja"
}列出聊天仅返回元数据。完整的筛选条件列表请参阅列出聊天;除了必需的 user_ids[] 之外,updated_at.* 范围边界对于增量审查自上次导出以来发生变化的聊天非常有用。
聊天结果按 created_at 升序排序(最早的在前),相同时间则按 id 排序。分页使用与对结果进行分页相同的 first_id/last_id/has_more 游标字段;将 last_id 作为 after_id 传递以向前遍历到较新的聊天,或将 first_id 作为 before_id 传递以向后遍历到较早的聊天。
要获取实际的聊天内容、附加文件和内联 "artifacts"(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 完成生成该消息的时间。每条消息都包含其文本内容,以及(如果存在)任何上传的文件(通常出现在用户消息中)、任何工具生成的文件,以及助手生成或更新的任何 artifacts(通常出现在助手消息中):
{
"id": "claude_chat_01H5CWunD7RpVJ5bHa8RCkja",
"name": "Product Requirements Discussion",
"created_at": "2026-04-10T08:09:10Z",
"updated_at": "2026-04-10T09:10:11Z",
"deleted_at": null,
"href": "https://claude.ai/chat/abcdef01-2345-6789-abcd-ef0123456789",
"model": "claude-opus-4-8",
"organization_uuid": "91012d09-e48b-438e-a489-1bebfd8fa6f9",
"project_id": "claude_proj_01KGp4eZNug9ri4kE35RSppq",
"user": {
"id": "user_01XyDMpzjS89pFZXqSFUBDr6",
"email_address": "[email protected]"
},
"chat_messages": [
{
"id": "claude_chat_msg_01VnBPkLmtj7YdW5QrXKEA8c",
"role": "user",
"created_at": "2026-04-10T08:09:10Z",
"content": [
{
"type": "text",
"text": "Can you help me draft requirements for our new dashboard feature?"
}
],
"files": [
{
"id": "claude_file_01UaT9wBcDfGhJkLmNpQrSv7",
"filename": "dashboard_mockup_v1.pdf",
"mime_type": "application/pdf"
}
]
},
{
"id": "claude_chat_msg_01M8tFcHwbQ2kY6NpEjRZv4D",
"role": "assistant",
"created_at": "2026-04-10T08:09:11Z",
"content": [
{
"type": "text",
"text": "I'd be happy to help you draft requirements for your dashboard feature..."
}
],
"generated_files": [
{
"id": "claude_gen_file_01TbR8wAcCeFhJkLnPqStUvX",
"filename": "requirements_summary.csv",
"mime_type": "text/csv"
}
],
"artifacts": [
{
"id": "claude_artifact_01HqRsTuVwXyZa2BcDeFgH4J",
"version_id": "claude_artifact_version_01KmNpQrSt3UvWxYz5AbCdEfG",
"title": "Dashboard Requirements Draft",
"artifact_type": "text/markdown"
}
]
}
],
"has_more": false,
"first_id": "eyJtc2dfdXVpZCI6ICIwZjcwYjA2Ni0uLi4ifQ==",
"last_id": "eyJtc2dfdXVpZCI6ICJhNGUwYjE3Mi0uLi4ifQ=="
}在给定消息中,files、generated_files 和 artifacts 均可能为 null。files 是用户附加到消息的二进制上传文件(PDF、图片、电子表格)。generated_files 是助手在对话期间通过工具使用创建的二进制文件(例如 PDF、电子表格或幻灯片)。artifacts 是助手在其响应中生成或更新的版本化文档(例如代码或 Markdown);一个 artifact 可以在同一聊天的多个助手轮次中被修订,每次修订都会在相同的 artifact id 下显示为一个新的 version_id。将每个条目的 id(对于 artifacts 则为 version_id)传递给检索文件和 artifacts 中对应的内容端点以进行下载。
文件和 artifacts 通过 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 | 某个 artifact 版本的文本 | 下载 artifact 内容 |
文件内容端点以分块二进制响应的形式流式传输原始上传文件,并带有以下标头:
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 中的文件名保存响应,即用户上传时的原始文件名。
Artifact 内容端点返回某个 artifact 版本的文本正文。请传递助手消息 artifacts 数组中某个条目的 version_id,而不是 artifact 的稳定 id。Artifact 的每个新版本都有自己的 version_id,Compliance API 会提供该版本的确切字节内容。
项目将相关聊天与自定义指令、知识库内容以及附加的文件或文本文档捆绑在一起。Compliance API 公开项目元数据、项目详情以及属于某个项目的附件列表。
项目结果按创建日期升序排序。附件结果按 created_at 升序排序,相同时间则按 id 排序。项目列表和附件列表响应使用不透明的 next_page 页面令牌进行分页,而不是聊天和 Activity Feed 所使用的 first_id/last_id 游标。在下一个请求中将该令牌作为 page 查询参数传回。
项目附件有两种不同的形态,通过每个条目上的 type 判别字段来识别:
type 为 project_file 的条目是二进制上传文件(PDF、图片、电子表格),其 ID 以 claude_file_ 开头;使用下载文件内容下载它们。type 为 project_doc 的条目是纯文本文档(始终为 text/plain),其 ID 以 claude_proj_doc_ 开头;使用获取项目文档内容获取它们。
遍历附件列表的使用方必须根据 type 进行分支处理,并为每个条目调用相应的内容端点。以下请求列出一页附件;通过将 next_page 作为 page 参数传回进行分页,直到 has_more 为 false。
project_id="claude_proj_01KGp4eZNug9ri4kE35RSppq"
curl --fail-with-body -sS -G \
"https://api.anthropic.com/v1/compliance/apps/projects/$project_id/attachments" \
--header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY"{
"data": [
{
"id": "claude_file_01UaT9wBcDfGhJkLmNpQrSv7",
"created_at": "2026-04-10T08:09:10Z",
"filename": "dashboard_mockup_v1.pdf",
"mime_type": "application/pdf",
"type": "project_file"
},
{
"id": "claude_proj_doc_01YnT8sBcWvUtXzQpMkRfDgH",
"created_at": "2026-04-10T08:09:11Z",
"filename": "requirements.md",
"mime_type": "text/plain",
"type": "project_doc"
}
],
"has_more": false,
"next_page": null
}每次成功的删除都是永久且立即生效的。没有恢复窗口期。
Compliance API 公开了针对聊天、文件、项目文档和整个项目的硬删除端点。硬删除的聊天无法恢复,并且此后不再出现在列表响应中(而从 claude.ai 软删除的聊天仍会出现,且 deleted_at 字段会被填充)。
所有四个端点都需要 delete:compliance_user_data 权限范围,该权限范围在创建 Compliance Access Key 时与读取权限范围分开授予。
以下请求删除一个聊天。相同的模式适用于其他删除端点;只需更改 URL。
# 警告:此操作将永久删除该对话、其中的所有消息
# 以及所有附加文件。删除会立即生效且无法撤销。此操作
# 需要 `delete:compliance_user_data` 权限范围,该权限在创建合规访问密钥时
# 与 `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} 列出该项目的聊天(聊天列表端点需要至少一个 user_ids[] 值;通过列出组织用户枚举 ID),使用 DELETE /v1/compliance/apps/chats/{claude_chat_id} 删除每个聊天(或从 claude.ai 中将其移出项目),然后重试项目删除。
Was this page helpful?
claude_artifact_version_* ID |
| 仅 artifact 版本的元数据 |
| 获取 artifact 元数据 |
claude_proj_doc_* ID | 项目文档的纯文本内容 | 获取项目文档内容 |
claude_proj_doc_* ID | 仅项目文档的元数据 | 获取项目文档元数据 |