A Compliance API é habilitada mediante solicitação. Organizações do Claude Enterprise têm acesso à API completa; organizações do Claude Console têm acesso apenas ao Activity Feed (esta página). Consulte Obter acesso à Compliance API.
Escopo necessário: read:compliance_activities na Compliance Access Key ou na Admin API key.
Tanto Compliance Access Keys (sk-ant-api01-...) que carregam esse escopo quanto Admin API keys (sk-ant-admin01-...) podem chamar o Activity Feed. Consulte Obter acesso à Compliance API para as condições sob as quais cada tipo de chave carrega o escopo.
O Activity Feed registra todas as ações de autenticação, chat, arquivo, projeto, administrativas e de plataforma que ocorrem na sua organização, em ordem cronológica inversa. As atividades podem ser consultadas dentro de 1 minuto após ocorrerem e são retidas por 6 anos.
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"
}Filtre por organização, ator, tipo de atividade ou uma janela de tempo de created_at usando os subparâmetros com notação de ponto created_at.gte, .gt, .lte e .lt. Consulte a referência da API para o tipo e os valores aceitos de cada parâmetro.
Parâmetros repetíveis usam a sintaxe de query com colchetes de array: passe activity_types[]=..., actor_ids[]=... ou organization_ids[]=... uma vez para cada valor.
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"O Activity Feed produz centenas de tipos de atividade distintos. Consulte Consultar atividades de compliance na referência da API para a lista completa de valores que activity_types[] aceita.
As atividades são retornadas da mais recente para a mais antiga, com empates em created_at resolvidos pelo ID da atividade, e limitadas a limit resultados em cada resposta (padrão 100, máximo 5.000). Consulte a referência da API para o esquema completo da resposta.
A Compliance API usa dois esquemas de paginação dependendo da família de endpoints:
| Família de endpoints | Ordem de classificação | Esquema | Parâmetros |
|---|---|---|---|
| Atividades | Mais recente primeiro | Cursor | after_id, before_id (retornados como first_id, last_id) |
| Chats e mensagens de chat | Mais antigo primeiro | Cursor | after_id, before_id (retornados como first_id, last_id) |
| Projetos, anexos de projeto, usuários, funções, permissões de função, grupos, membros de grupo | Específica do endpoint | Token de página | page (retornado como next_page) |
Organizações e arquivos não são paginados: Listar organizações retorna todos os resultados em uma única resposta, e arquivos são recuperados individualmente por ID.
Cursores de paginação e tokens de página são strings opacas: passe-os de volta sem alterações. Seu formato interno não é estável, e analisá-los causará falhas sem aviso prévio. Apenas um entre after_id ou before_id pode ser definido em cada requisição, e ambos os esquemas retornam has_more para que você saiba quando parar.
Para paginar pelas atividades:
last_id da resposta como after_id para avançar para a próxima página na ordem dos resultados. Com as atividades ordenadas da mais recente para a mais antiga, a próxima página contém entradas mais antigas.first_id como before_id para retornar à página anterior.has_more for false.O parâmetro de cursor define a direção da página; a ordem de classificação do endpoint define a direção temporal. O mesmo parâmetro after_id alcança atividades mais antigas aqui. Chats são ordenados do mais antigo para o mais recente; consulte Recuperar e excluir chats, arquivos e projetos para a semântica de cursor nesse caso.
Cursores são seguros para reutilizar em novas tentativas. Um cursor ou token de página de uma página retornada com sucesso permanece válido; uma requisição que falha (5xx, timeout, erro de rede) não avança sua posição. Tente novamente a mesma requisição com o mesmo cursor. Só avance para o próximo cursor depois de ter armazenado a página que ele deixa para trás.
# Busca a primeira página (atividades mais recentes primeiro) e captura seu cursor final.
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')
# Passa o cursor de volta sem alterações para buscar a próxima página (mais antiga).
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}"Um loop de backfill (preenchimento retroativo) em produção percorre atividades mais antigas controlando a iteração com base em has_more e last_id:
after_id para começar do início).after_id=<last_id> até que has_more seja false.last_id final somente depois de ter armazenado todas as páginas que ele cobre.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)Cada entrada em data é uma Activity com esta estrutura de nível superior:
| Campo | Tipo | Descrição |
|---|---|---|
id | string | Identificador único da atividade. |
created_at | string RFC 3339 | Quando a atividade ocorreu. |
organization_id | string ou null | Organização onde a atividade ocorreu, ou null para eventos não vinculados a uma organização (login, logout, chamadas à Compliance API). |
organization_uuid | string ou null | Mesmo escopo que organization_id, expresso como um UUID. |
actor | Union de Actor | Quem ou o que executou a atividade. Consulte a tabela de atores a seguir. |
type | string | O tipo de atividade, por exemplo claude_chat_created. |
| campos adicionais | varia | Campos específicos do tipo, por exemplo claude_chat_id em eventos de chat ou filename em eventos de arquivo. Consulte Consultar atividades de compliance na referência da API para a lista de campos por tipo. |
O campo actor é uma união discriminada. O discriminador type indica quais outros campos estão presentes:
actor.type | Quando aparece | Campos principais |
|---|---|---|
user_actor | Um usuário autenticado do claude.ai ou do Claude Console executou a ação. | email_address, user_id, ip_address, user_agent |
api_actor | Uma requisição chamou a Claude API ou a Compliance API com uma chave de API emitida pelo cliente. Chamadas à Compliance API produzem esse tipo de ator tanto para Compliance Access Keys quanto para Admin API keys. | api_key_id, ip_address, user_agent |
admin_api_key_actor | Um administrador da organização usou uma Admin API key para gerenciar usuários, convites, workspaces ou chaves de API. | admin_api_key_id |
unauthenticated_user_actor | Uma ação ocorreu antes da conclusão do login, por exemplo sso_login_initiated. | unauthenticated_email_address, ip_address, user_agent |
anthropic_actor | A Anthropic agiu sobre a organização, por exemplo por meio de ferramentas internas. | email_address (sempre null; presente para consistência de estrutura com user_actor, já que operadores da Anthropic não são representados por e-mail individual) |
scim_directory_sync_actor | Um provedor de identidade (como Okta, Microsoft Entra ID ou JumpCloud) enviou uma alteração por meio da sincronização de diretório SCIM. | workos_event_id, directory_id, idp_connection_type (anulável; por exemplo OktaSCIMV2, AzureSCIMV2) |
Crie handlers compatíveis com versões futuras. Repasse valores de type e
actor.type não reconhecidos e ignore campos que seu handler não espera, para que sua
integração continue funcionando quando novos tipos de atividade forem lançados.
O esquema completo de requisição e resposta para GET /v1/compliance/activities, incluindo todos os valores suportados de activity_types[].
Consulte e exclua o conteúdo subjacente das atividades que você encontrar no feed (Compliance Access Key necessária).
Escolha um padrão de consumo por polling ou em lote e planeje a correlação com SIEM.
O catálogo completo de erros.
Was this page helpful?