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 Feed de Atividades. Consulte Obter acesso à Compliance API.
Escopo necessário: read:compliance_activities na Compliance Access Key ou na chave da Admin API.
Uma integração de produção com a Compliance API envolve três decisões de design: como ela consome o Activity Feed, como sua saída se correlaciona com seu sistema de "security information and event management" (gerenciamento de informações e eventos de segurança), ou SIEM, e onde as cópias de longo prazo de atividades e conteúdo residem. Essas decisões são independentes dos endpoints em si; esta página ajuda você a avaliar as compensações.
Esta página pressupõe que você leu Consultar o Activity Feed, que define os parâmetros e o contrato de paginação referenciados ao longo do texto, e Recuperar e excluir chats, arquivos e projetos, que define os endpoints de conteúdo e a semântica de deleted_at referenciada em Planejar a retenção de conteúdo.
O Activity Feed suporta dois padrões de consumo: "polling" (sondagem) periódico por janela delimitado por created_at.gte e created_at.lt, e leituras incrementais orientadas por cursor que persistem um cursor de uma resposta e o passam na próxima requisição. Ambos retornam objetos Activity idênticos; a diferença está no estado que seu cliente persiste entre as chamadas.
Ambos os padrões compartilham estas restrições:
limit máximo para cada página é 5.000./v1/compliance/*; consulte 429 Too Many Requests para os cabeçalhos de resposta e o contrato de retry.| Padrão | Escolha quando |
|---|---|
| Polling por janela | Seu pipeline é executado em um cronograma fixo, você prefere workers sem estado e pode tolerar reprocessar ou sobrepor janelas |
| Leituras incrementais orientadas por cursor | Você quer a menor latência entre uma atividade ocorrer e seu pipeline ingeri-la, quer evitar reler páginas que já esgotou e tem um local durável para persistir um cursor entre execuções |
Defina created_at.lt pelo menos 1 minuto no passado para que todas as atividades na janela já possam ser consultadas. Use created_at.gte para o limite inferior e created_at.lt para o limite superior, de modo que janelas consecutivas se encaixem sem lacunas ou sobreposição; reutilize o valor lt da janela anterior como o gte da próxima janela.
curl --fail-with-body -sS -G \
"https://api.anthropic.com/v1/compliance/activities" \
--header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
--data-urlencode "created_at.gte=2026-04-20T07:00:00Z" \
--data-urlencode "created_at.lt=2026-04-20T08:00:00Z" \
--data-urlencode "limit=5000"Quando a resposta tem has_more: true, a janela contém mais de uma página de atividades. Pagine dentro da janela passando o last_id da resposta como after_id na próxima requisição (parando quando has_more for false), ou escolha uma janela de tempo menor. Consulte Paginar resultados para o contrato completo.
Mesmo com encaixe perfeito, uma atividade que é indexada depois que sua janela foi fechada nunca aparece em uma janela posterior. Deduplique pelo id da atividade e amplie cada nova janela para que ela se sobreponha à anterior por alguns minutos, ou execute uma passagem periódica de reconciliação que reconsulte uma janela mais antiga.
Um limite created_at.lt muito próximo do presente descarta silenciosa e permanentemente atividades indexadas com atraso: uma vez que created_at.gte avança além delas, nenhuma janela posterior pode recuperá-las. Trate o valor de 1 minuto de consultabilidade como o atraso de indexação documentado, não como uma recomendação flexível.
first_id="activity_01XyDMpzjS89pFZXqSFUBDr6" # first_id from a previous response
curl --fail-with-body -sS -G \
"https://api.anthropic.com/v1/compliance/activities" \
--header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
--data-urlencode "limit=5000" \
--data-urlencode "before_id=$first_id"Pagine até que has_more seja false, então persista first_id da resposta final e passe-o inalterado como before_id na próxima execução para recuperar atividades mais recentes que o cursor salvo. Para percorrer na direção oposta para um backfill, persista last_id e passe-o como after_id em vez disso. Para a referência completa de cursor versus token de página e a semântica de retry, consulte Paginar resultados.
Um loop de catch-up (atualização) em produção busca atividades registradas desde seu último polling, conduzindo a iteração com base em has_more e first_id:
cursor = stored_cursor
loop:
page = GET /v1/compliance/activities?before_id={cursor}&limit=5000
store(page.data)
if page.first_id is not null:
cursor = page.first_id
if not page.has_more: break
persist(cursor)Os cursores sobrevivem à rotação de chaves; consulte Gerenciar e rotacionar chaves.
Cada página é adjacente ao cursor que você passa: o loop avança em direção ao presente, uma página por vez. Não trate uma única resposta como atualizada enquanto has_more for true. Persista o cursor somente depois que has_more for false; as páginas não buscadas são as mais recentes entre o first_id desta resposta e o presente, e elas permanecem não lidas até que você termine o loop ou execute novamente.
Cada Activity carrega campos que você pode cruzar com eventos já presentes no seu SIEM (Splunk, Datadog, Microsoft Sentinel, Cribl ou similar):
| Campo da Compliance API | Alvo de junção |
|---|---|
actor.user_id | Identificador de usuário estável do seu provedor de identidade |
actor.email_address | E-mail do diretório quando um ID estável não está disponível |
actor.ip_address | Logs de rede, VPN e endpoint |
created_at | Correlação por janela de tempo entre qualquer fonte |
actor.user_id e actor.email_address estão presentes quando actor.type é user_actor; verifique o discriminador antes de lê-los. user_id é um identificador estável e opaco para a conta do usuário: é consistente em todos os endpoints da Compliance API e payloads de atividade, e não muda quando o e-mail ou nome de exibição do usuário muda. Use user_id, não email_address, como a chave de junção primária.
Chamadas à própria Compliance API emitem atividades compliance_api_accessed. Ingira-as junto com outros tipos de atividade para que seu SIEM registre quem consultou dados de conformidade e quando. Passe activity_types[]=compliance_api_accessed para delimitar a consulta e, em seguida, no seu cliente, leia actor.api_key_id de cada atividade cujo actor.type seja api_actor para atribuir o acesso a uma Compliance Access Key ou chave da Admin API específica.
Três horizontes de retenção governam o que você pode recuperar posteriormente:
| Dados | Retidos por | Controlado por |
|---|---|---|
| Registros do Activity Feed | 6 anos | Anthropic |
| Conteúdo de chats, arquivos e projetos | A política de retenção do claude.ai da sua organização | Sua organização |
| Conteúdo excluído permanentemente através da Compliance API | Não retido; a exclusão é imediata e permanente | O chamador do endpoint DELETE |
Para saber como o restante da Claude Platform lida com retenção, consulte API e retenção de dados.
Decida entre exportar-e-arquivar e recuperação sob demanda via API da seguinte forma:
deleted_at preenchido, mas exclusões via Compliance API não.Em todos os outros casos, confie na recuperação direta via API e evite manter uma cópia paralela.
Trate o Activity Feed como at-least-once (pelo menos uma vez): uma travessia corretamente paginada retorna cada atividade pelo menos uma vez, mas um retry após uma falha parcial pode reentregar atividades que você já armazenou. Deduplique pelo campo id da atividade.
Os endpoints de listagem não retornam um campo total_count nem um checksum. Para atestar que uma execução de exportação está completa, registre:
last_id terminal.request-id da página final.Os endpoints de conteúdo (chats, arquivos, projetos e anexos de projetos) servem apenas dados do claude.ai; o Activity Feed expõe eventos administrativos e de recursos em toda a organização. A Compliance API não inclui:
Consulte o FAQ da Compliance API para mais informações sobre o que a Compliance API captura e o que não captura.
Para cadeia de custódia, armazene os registros exportados com metadados de proveniência: endpoint de origem, parâmetros de consulta, timestamp da execução e um hash de conteúdo de cada registro.
Parâmetros de filtro, paginação e o esquema do objeto Activity.
Os endpoints de conteúdo e de exclusão permanente.
Was this page helpful?