---
title: Projete sua integração de conformidade
url: https://platform.claude.com/docs/pt-BR/manage-claude/compliance-integration-patterns
description: Escolha entre polling e consumo do Activity Feed orientado por cursor, correlacione eventos da Compliance API com seu SIEM e planeje a retenção.
---

<Note>
  Para habilitar a Compliance API, consulte [Configurar a Compliance API](https://platform.claude.com/docs/pt-BR/manage-claude/compliance-api-access).
</Note>

<Check>
  **Escopo necessário:** `read:compliance_activities` na Compliance Access Key ou na chave de Admin API.
</Check>

Uma integração de produção com a Compliance API faz três escolhas 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 ficam as cópias de longo prazo de atividades e conteúdo. Essas escolhas são independentes dos próprios endpoints; esta página ajuda você a avaliar os tradeoffs.

Esta página pressupõe que você leu as seguintes páginas:

* [Consultar o Activity Feed](https://platform.claude.com/docs/pt-BR/manage-claude/compliance-activity-feed), que define os parâmetros e o contrato de paginação referenciados ao longo deste documento.
* [Recuperar e excluir chats, arquivos e projetos](https://platform.claude.com/docs/pt-BR/manage-claude/compliance-content-data), que define os endpoints de chat, arquivo e projeto e a semântica de `deleted_at` referenciada em [Planejar a retenção de conteúdo](https://platform.claude.com/docs/pt-BR/manage-claude/compliance-integration-patterns#plan-content-retention).
* [Recuperar transcrições de sessões](https://platform.claude.com/docs/pt-BR/manage-claude/compliance-sessions), que define os endpoints de sessões locais e remotas.

## Escolha um padrão de consumo do feed

O Activity Feed oferece suporte a dois padrões de consumo: "window polling" (polling por janela) periódico 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 é o estado que seu cliente persiste entre as chamadas.

Ambos os padrões compartilham estas restrições:

* As atividades ficam consultáveis dentro de 1 minuto após ocorrerem e são retidas por 6 anos. O registro não é retroativo: ele começa quando a Compliance API é habilitada pela primeira vez para sua organização, e a atividade anterior à habilitação não é preenchida retroativamente.
* O `limit` máximo para cada página é 5.000.
* Os valores de cursor são strings opacas que você não deve analisar.
* As requisições são limitadas a 600 por minuto por [organização pai](https://platform.claude.com/docs/pt-BR/manage-claude/compliance-api#how-the-compliance-api-works), compartilhadas entre todas as chaves, todas as organizações vinculadas e todos os endpoints `/v1/compliance/*`; diferentemente dos endpoints de sessões locais, os endpoints de sessões remotas têm um segundo orçamento de requisições adicional. Consulte [429 Too Many Requests](https://platform.claude.com/docs/pt-BR/manage-claude/compliance-errors#429-too-many-requests) para os cabeçalhos de resposta e o contrato de retentativa.

| Padrão                                      | Escolha quando                                                                                                                                                                                          |
| ------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Polling por janela                          | Seu pipeline é executado em um cronograma fixo, você prefere workers sem estado e pode tolerar a repetição ou sobreposição de janelas                                                                   |
| Leituras incrementais orientadas por cursor | Você quer a menor latência entre a ocorrência de uma atividade e a ingestão pelo seu pipeline, quer evitar reler páginas que já esgotou e tem um local durável para persistir um cursor entre execuções |

### Polling por janela

Defina `created_at.lt` pelo menos 1 minuto no passado para que todas as atividades na janela já estejam consultáveis. 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.

```bash cURL
curl --fail-with-body -sS -G \
  "https://api.anthropic.com/v1/compliance/activities" \
  --header "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
  --header "anthropic-version: 2023-06-01" \
  --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](https://platform.claude.com/docs/pt-BR/manage-claude/compliance-activity-feed#paginate-results) para o contrato completo.

Mesmo com um encaixe limpo, 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 consulte novamente uma janela mais antiga.

<Warning>
  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.
</Warning>

### Leituras incrementais orientadas por cursor

```bash cURL
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" \
  --header "anthropic-version: 2023-06-01" \
  --data-urlencode "limit=5000" \
  --data-urlencode "before_id=$first_id"
```

Pagine até que `has_more` seja `false`, então persista o `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 em um backfill, persista o `last_id` e passe-o como `after_id`. Para a referência completa de cursor versus token de página e a semântica de retentativa, consulte [Paginar resultados](https://platform.claude.com/docs/pt-BR/manage-claude/compliance-activity-feed#paginate-results).

Um loop de **catch-up** de produção busca as atividades registradas desde seu último polling conduzindo a iteração a partir de `has_more` e `first_id`:

```text
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](https://platform.claude.com/docs/pt-BR/manage-claude/compliance-api-access#manage-and-rotate-keys).

<Warning>
  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.
</Warning>

## Correlacione com seu SIEM

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 do cruzamento                                                                  |
| ----------------------- | ----------------------------------------------------------------------------------- |
| `actor.user_id`         | O 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                                                        |
| `actor.user_agent`      | Inventário de endpoints e dispositivos, e o aplicativo cliente que fez a requisição |
| `created_at`            | Correlação por janela de tempo em qualquer fonte                                    |

`actor.user_id` e `actor.email_address` estão presentes quando `actor.type` é `user_actor`. `actor.ip_address` e `actor.user_agent` estão ausentes em alguns tipos de ator, como `anthropic_actor` e `scim_directory_sync_actor`. Verifique o discriminador antes de ler qualquer um desses campos. `user_id` é um identificador estável e opaco para a conta do usuário: ele é consistente em todos os endpoints da Compliance API e payloads de atividade, e não muda quando o e-mail ou o nome de exibição do usuário muda. Use `user_id`, não `email_address`, como a chave primária de cruzamento.

As chamadas à própria Compliance API emitem atividades `compliance_api_accessed`. Ingira-as junto com os 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 de Admin API específica.

## Planeje a retenção de conteúdo

Cinco 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, a menos que um usuário o exclua antes                                                                                                    | Sua organização                                                                  |
| Transcrições de sessões locais (sessões nas máquinas dos usuários) | 6 anos por padrão, ou o período personalizado de retenção de conversas da sua organização quando um período finito estiver definido; 30 dias em organizações com prontidão para HIPAA habilitada | Anthropic por padrão; sua organização quando ela define um período personalizado |
| Transcrições de sessões remotas (sessões na nuvem)                 | 6 anos, a menos que um usuário exclua a sessão antes                                                                                                                                             | Anthropic                                                                        |
| Conteúdo excluído permanentemente por meio da Compliance API       | Não retido; a exclusão é imediata e permanente                                                                                                                                                   | Quem chama o endpoint `DELETE`                                                   |

Para saber como o restante da Claude Platform lida com retenção, consulte [API e retenção de dados](https://platform.claude.com/docs/pt-BR/manage-claude/api-and-data-retention).

Decida entre exportar e arquivar e a recuperação sob demanda via API da seguinte forma:

* Se o seu horizonte de "legal hold" (retenção legal) ou de auditoria exceder 6 anos para metadados de atividades ou transcrições de sessões, exporte as páginas do Activity Feed e as transcrições de sessões para seu próprio arquivo à medida que fizer a ingestão.
* Se a sua política de retenção de conteúdo for mais curta que o seu horizonte de eDiscovery, exporte o conteúdo de chats e arquivos antes que a janela de retenção expire; a Compliance API não pode retornar conteúdo que a retenção já removeu. O mesmo se aplica às transcrições de sessões locais, que seguem o período de retenção de conversas personalizado da sua organização quando um período finito está definido, mesmo quando esse período é inferior a 6 anos. Os endpoints de sessões locais deixam de retornar mensagens mais antigas que o período atual da sua organização assim que a configuração muda, e aumentar o período posteriormente não restaura transcrições que já expiraram; portanto, exporte qualquer transcrição que você precise manter além desse período.
* Se você precisar reter conteúdo de chats ou transcrições de sessões remotas depois que os usuários os excluírem no claude.ai (por exemplo, sob uma retenção legal), exporte o conteúdo de chats, arquivos, artefatos e sessões remotas para seu próprio arquivo à medida que fizer a ingestão; a Compliance API não pode retornar conteúdo que um usuário já excluiu.
* Se um fluxo de trabalho puder emitir um "hard-delete" (exclusão permanente) pela Compliance API (por exemplo, aplicação de "data loss prevention" (prevenção contra perda de dados), ou DLP), recupere e arquive o conteúdo de destino primeiro. Não há janela de recuperação após uma exclusão permanente.

Em todos os outros casos, confie na recuperação direta via API e evite manter uma cópia paralela.

### Garantias de entrega e completude

Trate o Activity Feed como **at-least-once** (pelo menos uma vez): uma travessia paginada corretamente retorna cada atividade pelo menos uma vez, mas uma retentativa 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:

* O cursor inicial e o `last_id` terminal.
* O número de registros exportados.
* O timestamp da execução e o `request-id` da página final.

O volume de atividades não é uma verificação de completude. Os tipos de atividade `claude_*_viewed`, como `claude_chat_viewed`, seguem o padrão de carregamento de cada aplicativo (consulte [Entenda o objeto Activity](https://platform.claude.com/docs/pt-BR/manage-claude/compliance-activity-feed#understand-the-activity-object)). Um período com mensagens de chat, mas sem atividades `claude_chat_viewed`, não indica por si só dados ausentes. Em vez disso, confie na travessia e na passagem de sobreposição ou reconciliação descrita em [Polling por janela](https://platform.claude.com/docs/pt-BR/manage-claude/compliance-integration-patterns#window-polling).

Os endpoints de conteúdo (chats, arquivos, projetos, anexos de projetos e transcrições de sessões locais e remotas) servem apenas dados do Claude Enterprise. O Activity Feed expõe eventos administrativos e de recursos em toda a organização. A Compliance API não inclui:

* Texto de prompts ou respostas do modelo do Claude Console, ou de cargas de trabalho da Claude API autenticadas com uma chave de API.
* Atividade no dispositivo em sessões locais que nunca é enviada à Anthropic, como arquivos locais que o Claude não leu.
* Uso do Claude Code autenticado com uma chave de API do Claude Console, executado por meio de uma plataforma de nuvem de terceiros (Amazon Bedrock, Google Cloud ou Microsoft Foundry) ou executado em uma [sessão na nuvem do Claude Code](https://code.claude.com/docs/en/claude-code-on-the-web), que é executada em infraestrutura de nuvem em vez de na máquina do usuário.
* Sessões locais de produtos que não sejam Cowork e Claude Code em organizações com [prontidão para HIPAA](https://platform.claude.com/docs/pt-BR/manage-claude/api-and-data-retention#hipaa-readiness) habilitada, e sessões locais para as quais a [retenção zero de dados](https://platform.claude.com/docs/pt-BR/manage-claude/api-and-data-retention#zero-data-retention-zdr-scope) esteja em vigor.
* Blocos de pensamento, e imagens ou outro conteúdo binário, dentro de transcrições de sessões (as transcrições contêm apenas prompts do usuário, respostas do assistente e atividade de ferramentas; as transcrições de sessões locais mostram um bloco `text` de espaço reservado onde o conteúdo binário foi omitido).
* O arquivo original de um anexo de chat que o claude.ai armazenou como texto extraído, como alguns uploads de Word, PowerPoint e PDF (o endpoint de conteúdo de arquivo retorna o texto extraído; consulte [Recuperar arquivos e artefatos](https://platform.claude.com/docs/pt-BR/manage-claude/compliance-content-data#retrieve-files-and-artifacts)).
* O prompt do sistema de sessões locais (uma mensagem marcadora o substitui).
* Definições de ferramentas e configuração de servidores MCP em transcrições de sessões (locais ou remotas), e metadados de citação em blocos `text` em transcrições de sessões locais.
* Conteúdo de transcrições de sessões locais em uma organização cuja [chave de criptografia gerenciada pelo cliente](https://platform.claude.com/docs/pt-BR/manage-claude/cmek) não possa ser usada no momento. Essas requisições retornam [503 Service Unavailable](https://platform.claude.com/docs/pt-BR/manage-claude/compliance-errors#local-sessions-temporarily-unavailable), e os metadados das sessões continuam sendo listados.
* Conteúdo removido pela política de retenção da sua organização.
* Conteúdo de chats que os usuários excluem no claude.ai (os chats continuam sendo listados, com `deleted_at` preenchido).
* Sessões remotas que os usuários excluem (as sessões excluídas deixam de ser listadas, e o endpoint de mensagens retorna 404 para elas).
* Conteúdo excluído permanentemente por meio da Compliance API.

Consulte as [Perguntas frequentes da Compliance API](https://platform.claude.com/docs/pt-BR/manage-claude/compliance-faq#data-coverage-and-retention) para saber mais sobre o que a Compliance API captura e não captura.

Para a 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.

## Próximos passos

<CardGroup cols={2}>
  <Card title="Consultar o Activity Feed" href="https://platform.claude.com/docs/pt-BR/manage-claude/compliance-activity-feed">
    Parâmetros de filtro, paginação e o esquema do objeto `Activity`.
  </Card>

  <Card title="Recuperar e excluir chats, arquivos e projetos" href="https://platform.claude.com/docs/pt-BR/manage-claude/compliance-content-data">
    Os endpoints de chat, arquivo e projeto, incluindo hard delete.
  </Card>

  <Card title="Recuperar transcrições de sessões" href="https://platform.claude.com/docs/pt-BR/manage-claude/compliance-sessions">
    Liste as sessões que seus usuários executam em aplicativos e agentes Claude, como Cowork e Claude Code, e recupere suas transcrições.
  </Card>
</CardGroup>
