Конечные точки на этой странице получают и удаляют содержимое claude.ai и доступны только организациям Claude Enterprise, которые имеют самостоятельный доступ к Compliance API. См. Настройка Compliance API.
Требуемая область действия: read:compliance_user_data на Compliance Access Key. Конечные точки удаления также требуют delete:compliance_user_data.
Предварительное условие: Отсутствует для получения списка чатов в масштабе всей организации. Чтобы отфильтровать список чатов по конкретным пользователям, вам нужны идентификаторы пользователей из Список пользователей организации. Остальные конечные точки на этой странице принимают идентификаторы ресурсов напрямую.
Конечные точки на этой странице предоставляют специалистам по комплаенсу доступ к содержимому чатов claude.ai, загруженным файлам, проектам и вложениям проектов. Они поддерживают экспорт для «eDiscovery» (электронное раскрытие информации), применение политик «data loss prevention» (предотвращение утечки данных), или DLP, и обработку запросов на удаление учётных записей. Содержимое сохраняется столько, сколько позволяет политика хранения вашей организации. Чаты, которые пользователь мягко удалил в claude.ai, остаются видимыми через Compliance API с заполненным полем deleted_at; чаты, которые были окончательно удалены (через сам Compliance API или после истечения окна хранения организации), недоступны для получения.
Обе области действия предоставляются только ключам Compliance Access Key (sk-ant-api01-...), созданным в claude.ai; см. Настройка 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 для сортировки по времени последнего обновления. Эта комбинация — рекомендуемый способ экспортировать чаты и поддерживать экспорт в актуальном состоянии, потому что один цикл пагинации захватывает как новые, так и изменённые чаты для каждого пользователя без предварительного перечисления пользователей. Следующий запрос выводит список чатов, обновлённых с указанной даты.
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-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": "eyJrIjogInVwZGF0ZWRfYXQiLCAidCI6ICIyMDI2LTA0LTEwVDA5OjEwOjExKzAwOjAwIiwgImlkIjogImFiY2RlZjAxLS4uLiJ9",
"last_id": "eyJrIjogInVwZGF0ZWRfYXQiLCAidCI6ICIyMDI2LTA0LTEwVDA5OjEwOjExKzAwOjAwIiwgImlkIjogImFiY2RlZjAxLS4uLiJ9"
}Результаты сортируются по возрастанию по полю order_by, начиная с самых старых, при совпадении значений порядок определяется по id. Пагинация использует стандартные поля курсора first_id/last_id/has_more, описанные в разделе Пагинация результатов. Чтобы двигаться вперёд к более новым чатам, передайте last_id из ответа обратно как after_id в следующем запросе.
Такое движение вперёд — это также способ поддерживать экспорт в актуальном состоянии между запусками: сохраните last_id последней страницы и возобновите с него как after_id при следующем запуске. Поскольку список упорядочен по updated_at, чат, изменившийся после вашего сохранённого курсора, появляется снова впереди него, поэтому каждый инкрементальный запуск возвращает как совершенно новые чаты, так и более старые чаты, которые с тех пор были изменены. Обрабатывайте результаты идемпотентно, используя id чата в качестве ключа, чтобы корректно обрабатывать такие повторные появления.
К этим запросам в масштабе всей организации применяется несколько ограничений. Курсоры непрозрачны и привязаны к ключу сортировки, поэтому after_id, выданный при одном значении order_by, отклоняется с ошибкой 400 при другом. Границы фильтра по времени также должны соответствовать ключу сортировки: сочетайте границы updated_at.* с order_by=updated_at, а границы created_at.* — со значением по умолчанию order_by=created_at. Обратная пагинация с before_id не поддерживается, а фильтр project_ids[] недоступен. Полный справочник по фильтрам см. в разделе Список чатов.
Чтобы вместо этого ограничить список конкретными пользователями (например, для юридического удержания данных по указанным хранителям), передайте от 1 до 10 значений user_ids[]. Получите идентификаторы из Список пользователей организации. Запросы с фильтром по пользователям всегда сортируются по created_at (передача order_by=updated_at возвращает ошибку 400) и поддерживают как after_id, так и before_id. Фильтрация по project_ids[] доступна только в этой форме с фильтром по пользователям.
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 генерирует внутри чата), выполните последующий запрос к конечной точке сообщений для каждого идентификатора чата:
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"Конечная точка сообщений возвращает метаданные чата плюс массив chat_messages, отсортированный по created_at. Если 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-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), которые ассистент сгенерировал или обновил в своём ответе; артефакт может быть пересмотрен в нескольких ходах ассистента в одном и том же чате, и каждая ревизия появляется как новый version_id под тем же id артефакта. Передайте id каждой записи (или version_id для артефактов) в соответствующую конечную точку содержимого в разделе Получение файлов и артефактов, чтобы скачать его.
Файлы и артефакты скачиваются по идентификатору, а не перечисляются отдельно. Идентификаторы поступают из конечной точки сообщений чата в разделе Получение чатов и сообщений (массивы files, generated_files и artifacts в каждом сообщении) или, для загрузок на уровне проекта, из конечной точки вложений проекта.
Выберите конечную точку, соответствующую типу вашего идентификатора и нужным данным. Одна и та же конечная точка содержимого файлов обслуживает как файлы чатов, так и файлы проектов.
| У вас есть | Вам нужно | Используйте эту конечную точку |
|---|---|---|
Идентификатор claude_file_* | Бинарное содержимое файла | Скачивание содержимого файла |
Идентификатор claude_file_* | Только метаданные файла | Получение метаданных файла |
Идентификатор claude_gen_file_* | Бинарное содержимое файла, сгенерированного инструментом | Скачивание файла, сгенерированного Claude |
Идентификатор claude_gen_file_* | Только метаданные файла, сгенерированного инструментом | Получение метаданных сгенерированного файла |
Идентификатор claude_artifact_version_* | Текст одной версии артефакта | Скачивание содержимого артефакта |
Идентификатор claude_artifact_version_* | Только метаданные версии артефакта | Получение метаданных артефакта |
Идентификатор claude_proj_doc_* | Текстовое содержимое документа проекта | Получение содержимого документа проекта |
Идентификатор claude_proj_doc_* | Только метаданные документа проекта | Получение метаданных документа проекта |
Конечная точка содержимого файла передаёт исходную загрузку в виде бинарного ответа с разбиением на части (chunked) со следующими заголовками:
Content-Disposition: attachment; filename*=utf-8''<percent-encoded filename> содержит исходное имя загруженного файла в расширенной форме RFC 5987. Расширенная форма используется для каждого имени файла, а не только для имён, содержащих символы вне ASCII.Content-Type содержит MIME-тип загрузки.Content-MD5 содержит MD5-дайджест файла, закодированный в base64, как указано в RFC 1864.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, то есть под исходным именем файла, который загрузил пользователь.
Конечная точка содержимого артефакта возвращает текстовое тело одной версии артефакта. Передайте version_id из одной из записей массива artifacts сообщения ассистента, а не стабильный id артефакта. Каждая новая версия артефакта имеет собственный version_id, и Compliance API возвращает точные байты этой версии.
Проекты объединяют связанные чаты вместе с пользовательскими инструкциями, содержимым базы знаний и вложенными файлами или текстовыми документами. Compliance API предоставляет метаданные проектов, сведения о проектах и список вложений, принадлежащих проекту.
Результаты по проектам сортируются по дате создания по возрастанию. Результаты по вложениям сортируются по created_at по возрастанию, при совпадении значений порядок определяется по id. Ответы со списком проектов и списком вложений используют пагинацию с непрозрачным токеном страницы next_page вместо курсоров first_id/last_id, используемых чатами и лентой активности. Передайте токен обратно как параметр запроса page в следующем запросе.
Вложение проекта имеет одну из двух различных форм, определяемых дискриминатором type в каждой записи:
Записи с type, равным project_file, — это бинарные загрузки (PDF, изображения, электронные таблицы), идентификаторы которых начинаются с claude_file_; скачивайте их с помощью Скачивание содержимого файла. Записи с type, равным project_doc, — это текстовые документы (всегда text/plain), идентификаторы которых начинаются с 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` при создании Compliance Access Key.
# Перед запуском убедитесь, что у вас есть явное разрешение.
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[]; перечислите идентификаторы через Список пользователей организации), удалите каждый из них с помощью DELETE /v1/compliance/apps/chats/{claude_chat_id} (или переместите его из проекта в claude.ai), а затем повторите удаление проекта.
Полная схема запросов и ответов для каждой конечной точки чатов, файлов, проектов и артефактов.
Перечислите людей и команды, связанные с чатами и проектами на этой странице.
Was this page helpful?