Compliance API включается по запросу. Организации Claude Enterprise имеют доступ ко всему API; организации Claude Console имеют доступ только к ленте активности (эта страница). См. Получение доступа к Compliance API.
Требуемая область доступа: read:compliance_activities для ключа Compliance Access Key или ключа Admin API.
Как ключи Compliance Access Key (sk-ant-api01-...), имеющие эту область доступа, так и ключи Admin API (sk-ant-admin01-...) могут обращаться к ленте активности. См. Получение доступа к Compliance API, чтобы узнать, при каких условиях каждый тип ключа имеет эту область доступа.
Лента активности (Activity Feed) фиксирует каждое действие аутентификации, чата, файла, проекта, администрирования и платформы, происходящее в вашей организации, в обратном хронологическом порядке. Активности становятся доступны для запроса в течение 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 | строка | Уникальный идентификатор активности. |
created_at | строка RFC 3339 | Время возникновения активности. |
organization_id | строка или null | Организация, в которой произошла активность, или null для событий, не привязанных к организации (вход, выход, вызовы Compliance API). |
organization_uuid | строка или null | Та же область действия, что и organization_id, выраженная в виде UUID. |
actor | объединение Actor | Кто или что выполнило активность. См. следующую таблицу субъектов. |
type | строка | Тип активности, например 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 Key, так и для ключей 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?