Чтобы включить Compliance API, см. Настройка Compliance API.
Требуемая область доступа: read:compliance_activities на Compliance Access Key или ключе Admin API.
Как Compliance Access Keys (sk-ant-api01-...) с этой областью доступа, так и ключи Admin API (sk-ant-admin01-...) могут вызывать ленту активности. См. Настройка Compliance API для условий, при которых каждый тип ключа имеет эту область доступа.
Лента активности записывает каждое действие аутентификации, чата, файла, проекта, администрирования и платформы, которое происходит в вашей организации, в обратном хронологическом порядке. Активности доступны для запроса в течение 1 минуты после возникновения и хранятся в течение 6 лет.
curl --fail-with-body -sS \
"https://api.anthropic.com/v1/compliance/activities?limit=1" \
--header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY"{
"data": [
{
"id": "activity_01XyDMpzjS89pFZXqSFUBDr6",
"created_at": "2026-04-10T08:09:10Z",
"organization_id": "org_01Wv6QeBcDfGhJkLmNpQrSt8",
"organization_uuid": "abcdef01-2345-6789-abcd-ef0123456789",
"actor": {
"type": "user_actor",
"email_address": "[email protected]",
"user_id": "user_01TuVwXyZaBcDeFgH2JkLmN4",
"ip_address": "192.0.2.34",
"user_agent": "Mozilla/5.0..."
},
"type": "claude_chat_created",
"claude_chat_id": "claude_chat_01XyDMpzjS89pFZXqSFUBDr6",
"claude_project_id": "claude_proj_01KGp4eZNug9ri4kE35RSppq"
}
],
"has_more": true,
"first_id": "activity_01XyDMpzjS89pFZXqSFUBDr6",
"last_id": "activity_01XyDMpzjS89pFZXqSFUBDr6"
}Фильтруйте по организации, актору, типу активности или временному окну created_at, используя подпараметры с точкой created_at.gte, .gt, .lte и .lt. См. справочник API для типа и допустимых значений каждого параметра.
Повторяемые параметры используют синтаксис запроса с квадратными скобками массива: передавайте activity_types[]=..., actor_ids[]=... или organization_ids[]=... по одному разу для каждого значения.
curl --fail-with-body -sS -G \
"https://api.anthropic.com/v1/compliance/activities" \
--data-urlencode "activity_types[]=claude_file_uploaded" \
--data-urlencode "activity_types[]=claude_chat_created" \
--data-urlencode "created_at.gte=2026-04-01T00:00:00Z" \
--header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY"Лента активности производит сотни различных типов активности. См. Запрос активностей соответствия в справочнике API для полного списка значений, которые принимает activity_types[].
Активности возвращаются начиная с самых новых, при совпадении created_at порядок определяется по идентификатору активности, и ограничиваются limit результатами в каждом ответе (по умолчанию 100, максимум 5 000). См. справочник API для полной схемы ответа.
Compliance API использует две схемы разбиения на страницы в зависимости от семейства конечных точек:
| Семейство конечных точек | Порядок сортировки | Схема | Параметры |
|---|---|---|---|
| Активности | Сначала новые | Курсор | after_id, before_id (возвращаются как first_id, last_id) |
| Чаты и сообщения чатов | Сначала старые | Курсор | after_id, before_id (возвращаются как first_id, last_id) |
| Организации, проекты, вложения проектов, пользователи, роли, разрешения ролей, группы, участники групп | Зависит от конечной точки | Токен страницы | page (возвращается как next_page) |
Файлы не разбиваются на страницы: они извлекаются по отдельности по идентификатору.
Курсоры разбиения на страницы и токены страниц — это непрозрачные строки: передавайте их обратно без изменений. Их внутренний формат нестабилен, и их разбор перестанет работать без предупреждения. В каждом запросе может быть установлен только один из параметров after_id или before_id, и обе схемы возвращают has_more, чтобы вы знали, когда остановиться.
Чтобы пролистывать страницы активностей:
last_id из ответа как after_id, чтобы перейти к следующей странице в порядке результатов. Поскольку активности отсортированы начиная с самых новых, следующая страница содержит более старые записи.first_id как before_id, чтобы вернуться к предыдущей странице.has_more равен false.Параметр курсора задаёт направление страниц; порядок сортировки конечной точки задаёт направление по времени. Тот же параметр after_id здесь ведёт к более старым активностям. Чаты сортируются начиная с самых старых; см. Получение и удаление чатов, файлов и проектов для семантики курсоров там.
Курсоры безопасно использовать повторно при повторной попытке. Курсор или токен страницы из успешно возвращённой страницы остаётся действительным; запрос, который завершился неудачей (5xx, тайм-аут, сетевая ошибка), не продвигает вашу позицию. Повторите тот же запрос с тем же курсором. Переходите к следующему курсору только после того, как вы сохранили страницу, на которую он указывает.
# Получаем первую страницу (сначала самые новые действия) и сохраняем её завершающий курсор.
last_id=$(curl --fail-with-body -sS \
"https://api.anthropic.com/v1/compliance/activities?limit=2" \
--header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" | jq -er '.last_id')
# Передаём курсор обратно без изменений, чтобы получить следующую (более старую) страницу.
curl --fail-with-body -sS -G \
"https://api.anthropic.com/v1/compliance/activities" \
--header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
--data-urlencode "limit=2" \
--data-urlencode "after_id=${last_id}"Производственный цикл обратного заполнения (backfill) пролистывает более старые активности, управляя итерацией на основе has_more и last_id:
after_id, чтобы начать с начала).after_id=<last_id>, пока has_more не станет false.last_id только после того, как вы сохранили каждую страницу, которую он охватывает.cursor = stored_cursor
loop:
if cursor is not null:
page = GET /v1/compliance/activities?after_id={cursor}&limit=100
else:
page = GET /v1/compliance/activities?limit=100
store(page.data)
if page.last_id is not null:
cursor = page.last_id
if not page.has_more: break
persist(cursor)Каждая запись в data — это Activity со следующей структурой верхнего уровня:
| Поле | Тип | Описание |
|---|---|---|
id | string | Уникальный идентификатор активности. |
created_at | строка RFC 3339 | Когда произошла активность. |
organization_id | string или null | Организация, в которой произошла активность, или null для событий, не привязанных к организации (вход, выход, вызовы Compliance API). |
organization_uuid | string или null | Та же область действия, что и organization_id, выраженная как UUID. |
actor | объединение Actor | Кто или что выполнил(о) активность. См. следующую таблицу акторов. |
type | string | Тип активности, например claude_chat_created. |
| дополнительные поля | различается | Поля, специфичные для типа, например claude_chat_id для событий чата или filename для событий файлов. См. Запрос активностей соответствия в справочнике API для списка полей по каждому типу. |
Поле actor — это размеченное объединение (discriminated union). Дискриминатор type указывает, какие другие поля присутствуют:
actor.type | Когда появляется | Ключевые поля |
|---|---|---|
user_actor | Действие выполнил вошедший в систему пользователь claude.ai или Claude Console. | email_address, user_id, ip_address, user_agent |
api_actor | Запрос вызвал Claude API или Compliance API с ключом API, выданным клиенту. Вызовы Compliance API производят этот тип актора как для Compliance Access Keys, так и для ключей Admin API. | api_key_id, ip_address, user_agent |
admin_api_key_actor | Администратор организации использовал ключ Admin API для управления пользователями, приглашениями, рабочими пространствами или ключами API. | admin_api_key_id |
unauthenticated_user_actor | Действие произошло до завершения входа в систему, например sso_login_initiated. | unauthenticated_email_address, ip_address, user_agent |
anthropic_actor | Anthropic выполнил действие в отношении организации, например через внутренние инструменты. | email_address (всегда null; присутствует для согласованности структуры с user_actor, поскольку операторы Anthropic не представлены индивидуальным адресом электронной почты) |
scim_directory_sync_actor | Поставщик удостоверений (например, Okta, Microsoft Entra ID или JumpCloud) отправил изменение через синхронизацию каталога SCIM. | workos_event_id, directory_id, idp_connection_type (может быть null; например OktaSCIMV2, AzureSCIMV2) |
Создавайте обработчики с прямой совместимостью. Пропускайте
нераспознанные значения type и actor.type и игнорируйте поля, которые ваш
обработчик не ожидает, чтобы ваша интеграция продолжала работать при
появлении новых типов активности.
Полная схема запроса и ответа для GET /v1/compliance/activities, включая каждое поддерживаемое значение activity_types[].
Запрашивайте и удаляйте базовое содержимое для активностей, которые вы находите в ленте (требуется Compliance Access Key).
Выберите шаблон опроса или пакетного потребления и спланируйте корреляцию SIEM.
Полный каталог ошибок.
Was this page helpful?