Claude Platform Docs

Получение и удаление чатов, файлов и проектов

Доступ к содержимому чатов, файловым вложениям и проектам организаций claude.ai через Compliance API.

Конечные точки на этой странице предоставляют специалистам по комплаенсу доступ к содержимому чатов Claude Enterprise, загруженным файлам, проектам и вложениям проектов. Они поддерживают экспорт для «electronic discovery» (электронного раскрытия информации), или eDiscovery, применение политик «data loss prevention» (предотвращения утечки данных), или DLP, а также ответы на запросы об удалении учётных записей. Содержимое чатов, файлов и проектов хранится столько, сколько позволяет политика хранения вашей организации. Когда пользователь удаляет чат в claude.ai, вместе с ним удаляются содержимое его сообщений, прикреплённые файлы, файлы, созданные инструментами, и артефакты. Compliance API по-прежнему отображает этот чат в списке с заполненным полем deleted_at и пустым name и возвращает его сообщения без содержимого. Чаты, которые были удалены безвозвратно (через сам 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, чтобы сортировать по времени последнего обновления. Эта комбинация — рекомендуемый способ экспортировать чаты и поддерживать экспорт актуальным, поскольку один цикл с пагинацией подхватывает новые чаты, изменённые чаты и чаты, удалённые в claude.ai, для каждого пользователя без предварительного перечисления пользователей. Следующий запрос выводит список чатов, обновлённых после указанной даты.

cURL
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"
Response
{
  "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, больше не содержит данных для получения, поэтому считайте его удалённым, а не обновлённым.

К этим запросам в масштабе организации применяется несколько ограничений. Курсоры непрозрачны и привязаны к ключу сортировки, поэтому 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[] доступна только в этой форме с фильтром по пользователям. Сочетание user_ids[] с любой границей updated_at.* объявлено устаревшим и будет отклоняться с ошибкой 400 после 2026-09-22; чтобы поддерживать набор хранителей актуальным по времени обновления, выполняйте обход в масштабе организации с order_by=updated_at без user_ids[] и выбирайте чаты хранителей из его результатов, а список с фильтром по пользователям оставьте для экспортов, упорядоченных по created_at.

cURL
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 создаёт внутри чата), выполните запрос к конечной точке сообщений для каждого идентификатора чата:

cURL
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 завершил генерацию сообщения. Каждое сообщение содержит своё текстовое содержимое и, при наличии, любые загруженные файлы (обычно в сообщениях пользователя), любые файлы, созданные инструментами, и любые артефакты, которые ассистент создал или обновил (обычно в сообщениях ассистента):

Response
{
  "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 — это двоичные файлы, созданные ассистентом в ходе разговора посредством «tool use» (использования инструментов) (например, 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_*Только метаданные документа проектаПолучить метаданные документа проекта

Конечная точка содержимого файла передаёт содержимое, которое claude.ai сохранил для файла, в виде фрагментированного (chunked) двоичного ответа. Это содержимое не всегда идентично файлу, загруженному пользователем. Изображения могут отдаваться в виде обработанной копии, а не загруженных байтов. Некоторые документы, прикреплённые к чатам (например, файлы 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-дайджест отданных байтов в кодировке base64, как указано в RFC 1864.
  • Transfer-Encoding: chunked устанавливается всегда.
cURL
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, применяемых для чатов и Activity Feed. Передайте токен обратно как параметр запроса page в следующем запросе.

Файлы проекта и документы проекта

Вложение проекта имеет одну из двух различных форм, определяемых дискриминатором type в каждой записи:

Записи с type, равным project_file, — это загруженные файлы (PDF, изображения, электронные таблицы), идентификаторы которых начинаются с claude_file_; скачивайте их с помощью Скачать содержимое файла. Записи с type, равным project_doc, — это текстовые документы (всегда text/plain), идентификаторы которых начинаются с claude_proj_doc_, включая такие документы, как файлы Word, которые claude.ai преобразует в текст при добавлении в проект; получайте их с помощью Получить содержимое документа проекта.

Потребитель, обходящий список вложений, должен выполнять ветвление по type и вызывать соответствующую конечную точку содержимого для каждой записи. Следующий запрос выводит одну страницу вложений; выполняйте пагинацию, передавая next_page обратно как параметр page, пока has_more не станет false.

cURL
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"
Response
{
  "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 предоставляет конечные точки безвозвратного удаления для чатов, файлов, документов проектов и целых проектов. Безвозвратно удалённый чат невозможно восстановить, и после этого он перестаёт появляться в ответах со списками.

Все четыре конечные точки требуют области доступа delete:compliance_user_data, которая предоставляется отдельно от области чтения при создании ключа Compliance Access Key.

Следующий запрос удаляет один чат. Тот же шаблон применяется к остальным конечным точкам удаления; меняется только URL.

cURL
# ВНИМАНИЕ: эта операция БЕЗВОЗВРАТНО удаляет чат, все его сообщения
# и все прикреплённые файлы. Удаление происходит немедленно и не может быть отменено.
# Требуется область доступа `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"
Response
{
  "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), а затем повторите удаление проекта.

Следующие шаги

Полная схема запросов и ответов для каждой конечной точки чатов, файлов, проектов и артефактов.

Получайте список сессий, которые ваши пользователи запускают в приложениях и агентах Claude, таких как Cowork и Claude Code, и извлекайте их транскрипты.

Перечислите людей и команды, связанные с чатами и проектами на этой странице.

Was this page helpful?