---
title: Referência de resultados de Security posture
url: https://platform.claude.com/docs/pt-BR/manage-claude/compliance-security-posture/results-reference
description: "Consulte o endpoint da Compliance API que retorna os resultados atuais de Security posture de uma organização: a requisição, os campos da resposta, o que cada status significa e os erros."
---

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

Este endpoint retorna uma entrada para a maioria dos controles de segurança de uma organização, avaliados no momento da requisição, com a [atestação do Security posture](https://platform.claude.com/docs/pt-BR/manage-claude/compliance-security-posture/overview#attestations) que a resposta exibe para cada controle. Você precisa de uma Compliance Access Key que cubra a organização, com o escopo `read:compliance_org_data` ou `read:org_audit`; [Disponibilidade do Security posture](https://platform.claude.com/docs/pt-BR/manage-claude/compliance-security-posture/overview#availability) informa quais organizações podem ser lidas.

## Requisição

Envie uma requisição `GET` para `/v1/compliance/organizations/{organization_id}/security_posture`. Cada chamada lê uma organização, e a resposta não é paginada.

```bash cURL
curl --fail-with-body -sS \
  "https://api.anthropic.com/v1/compliance/organizations/91012d09-e48b-438e-a489-1bebfd8fa6f9/security_posture" \
  -H "x-api-key: $ANTHROPIC_COMPLIANCE_ACCESS_KEY" \
  -H "anthropic-version: 2026-10-21"
```

| Item                   | Regra                                                                                                                                                                                                                                                                                                     |
| ---------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `organization_id`      | O `uuid` de uma [organização vinculada](https://platform.claude.com/docs/pt-BR/manage-claude/compliance-api#how-the-compliance-api-works) obtido em [Listar organizações](https://platform.claude.com/docs/pt-BR/manage-claude/compliance-org-data#list-organizations); qualquer outro valor retorna 404. |
| Chave                  | Uma [chave da organização pai](https://platform.claude.com/docs/pt-BR/manage-claude/compliance-api-access#set-up-the-compliance-api) pode indicar qualquer organização vinculada, e uma chave de uma única organização pode indicar apenas essa organização.                                              |
| `anthropic-version`    | Obrigatório; uma requisição sem ele retorna 400.                                                                                                                                                                                                                                                          |
| Parâmetros de consulta | Nenhum; uma requisição com qualquer parâmetro de consulta retorna 400.                                                                                                                                                                                                                                    |

## Resposta

O exemplo resumido a seguir mostra quatro dos controles que uma resposta pode conter. É a resposta para uma chave que possui `read:compliance_org_data` e `read:compliance_user_data`.

```json Response
{
  "type": "security_posture",
  "organization_id": "91012d09-e48b-438e-a489-1bebfd8fa6f9",
  "evaluated_at": "2027-02-09T09:00:02.417305Z",
  "comments_status": "not_enabled",
  "controls": [
    {
      "id": "sso_enabled",
      "display_name": "Single sign-on (SSO)",
      "section": "identity_access",
      "setting_name": "sso_enabled",
      "status": "passed",
      "rating": "passed",
      "current_value": "On",
      "desired_state": "On",
      "attestation": null
    },
    {
      "id": "directory_sync_enabled",
      "display_name": "Directory sync (SCIM)",
      "section": "identity_access",
      "setting_name": "directory_sync_enabled",
      "status": "failed_check_accepted_risk",
      "rating": "passed",
      "current_value": "Off",
      "desired_state": "On",
      "attestation": {
        "state": "in_force",
        "attested_at": "2026-10-20T15:04:00.220114Z",
        "comment": null,
        "attested_by": {
          "type": "user_actor",
          "user_id": "user_01WxYzAbCdEfGhJkMnPqRsTu"
        }
      }
    },
    {
      "id": "allowed_invite_domains",
      "display_name": "Allowed email domains",
      "section": "identity_access",
      "setting_name": "allowed_invite_domains",
      "status": "descriptive",
      "rating": "descriptive",
      "current_value": "example.com",
      "desired_state": null,
      "attestation": null
    },
    {
      "id": "oauth_conditional_access",
      "display_name": "OAuth conditional access on connected SaaS",
      "section": "connectors_integrations",
      "setting_name": null,
      "status": "not_attested",
      "rating": "not_attested",
      "current_value": null,
      "desired_state": "Completed",
      "attestation": {
        "state": "review_due",
        "attested_at": "2026-11-02T09:30:00.008771Z",
        "comment": null,
        "attested_by": {
          "type": "user_actor",
          "user_id": "user_01AbCdEfGhJkLmNpQrStUvWx"
        }
      }
    }
  ]
}
```

Todo campo está sempre presente, e um campo sem valor é `null`, nunca omitido. Um horário não tem dígitos fracionários ou tem exatamente seis, então compare horários como horários, não como strings.

### Campos de nível superior

| Campo             | Tipo                   | Descrição                                                                                                                                                                                                           |
| ----------------- | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `type`            | string                 | Sempre `security_posture`.                                                                                                                                                                                          |
| `organization_id` | string                 | O UUID da organização.                                                                                                                                                                                              |
| `evaluated_at`    | string (RFC 3339, UTC) | O momento em que todos os controles foram avaliados.                                                                                                                                                                |
| `comments_status` | string                 | Se os comentários das atestações foram lidos; consulte [Quem atestou, e comentários](https://platform.claude.com/docs/pt-BR/manage-claude/compliance-security-posture/results-reference#who-attested-and-comments). |
| `controls`        | array de objetos       | Os controles da organização, nunca vazio.                                                                                                                                                                           |

### Campos de `controls[]`

| Campo           | Tipo           | Descrição                                                                                                                                                                                                                                                                                                                   |
| --------------- | -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `id`            | string         | O identificador do controle, que é o mesmo para todas as organizações e nunca muda.                                                                                                                                                                                                                                         |
| `display_name`  | string         | O nome de exibição do controle, como texto de exibição em inglês cuja redação pode mudar.                                                                                                                                                                                                                                   |
| `section`       | string         | A seção à qual o controle pertence, uma das dez listadas depois desta tabela; mais valores podem ser adicionados, então trate um valor desconhecido como uma seção própria.                                                                                                                                                 |
| `setting_name`  | string ou null | O `name` da entrada nas configurações efetivas da organização que este controle lê; `null` quando ele não lê nenhuma entrada desse tipo.                                                                                                                                                                                    |
| `status`        | string         | O motivo do resultado do controle; consulte [Valores de status](https://platform.claude.com/docs/pt-BR/manage-claude/compliance-security-posture/results-reference#status-values).                                                                                                                                          |
| `rating`        | string         | O resultado do controle, que decorre de `status`; consulte [Valores de status](https://platform.claude.com/docs/pt-BR/manage-claude/compliance-security-posture/results-reference#status-values).                                                                                                                           |
| `current_value` | string ou null | O valor atual, como texto de exibição em inglês cuja redação pode mudar; `null` em um controle manual ou quando nenhum valor foi lido.                                                                                                                                                                                      |
| `desired_state` | string ou null | O valor recomendado, como texto de exibição em inglês cuja redação pode mudar; `null` quando não há nenhum para esta organização.                                                                                                                                                                                           |
| `attestation`   | objeto ou null | A atestação que a resposta exibe, também enquanto ela não estiver em vigor; `null` enquanto `status` for `descriptive`, `not_applicable` ou `not_evaluated`, e [nestes casos](https://platform.claude.com/docs/pt-BR/manage-claude/compliance-security-posture/results-reference#how-an-attestation-shows-in-the-response). |

`section` é um de `identity_access`, `data_privacy`, `capabilities`, `connectors_integrations`, `chats_desktop_mdm`, `cowork_admin_console`, `cowork_desktop_mdm`, `claude_code_admin_console`, `claude_code_managed_settings` e `healthy_adoption`.

Para comparar valores em código, procure `setting_name` nas [configurações efetivas](https://platform.claude.com/docs/pt-BR/manage-claude/compliance-org-data#get-effective-organization-settings) da mesma organização. A busca pode não encontrar nada, e dois controles podem compartilhar um mesmo `setting_name`.

### Campos de `attestation`

| Campo         | Tipo                   | Descrição                                                                                                                                                                                                                                         |
| ------------- | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `state`       | string                 | Se a atestação está em vigor; consulte [Estados da atestação](https://platform.claude.com/docs/pt-BR/manage-claude/compliance-security-posture/results-reference#attestation-states).                                                             |
| `attested_at` | string (RFC 3339, UTC) | Quando a atestação foi feita.                                                                                                                                                                                                                     |
| `comment`     | string ou null         | O comentário salvo com a atestação, de no máximo 2.000 caracteres; `null` se não houver nenhum, ou se `comments_status` não for `available`.                                                                                                      |
| `attested_by` | objeto ou null         | A pessoa que atestou; `null` quando a chave não possui nem `read:compliance_user_data` nem `read:org_audit`, quando a conta dessa pessoa foi excluída ou está sendo excluída, ou quando o endpoint não retorna, para a organização, quem atestou. |

### Campos de `attested_by`

| Campo     | Tipo   | Descrição                                |
| --------- | ------ | ---------------------------------------- |
| `type`    | string | Sempre `user_actor`.                     |
| `user_id` | string | O ID do usuário, que começa com `user_`. |

## Valores de status

`status` informa o motivo do resultado de um controle, e cada status tem um único `rating`.

| `status`                     | Tipo de controle     | Significado                                                                                                 | `rating`       | Na página                                                   |
| ---------------------------- | -------------------- | ----------------------------------------------------------------------------------------------------------- | -------------- | ----------------------------------------------------------- |
| `passed`                     | automático           | O valor atual atende ao valor recomendado.                                                                  | `passed`       | Aprovado                                                    |
| `matches_profile`            | automático           | O valor atual é igual ao valor recomendado.                                                                 | `passed`       | Aprovado                                                    |
| `exceeds_baseline`           | automático           | O valor atual é mais rigoroso que o valor recomendado.                                                      | `passed`       | Aprovado                                                    |
| `failed_check_accepted_risk` | automático           | A verificação automática falha, e um risco aceito está em vigor.                                            | `passed`       | Aprovado                                                    |
| `failed`                     | automático ou manual | O valor atual não atende ao valor recomendado, ou uma atestação que a resposta omite produz este resultado. | `failed`       | Reprovado, ou Aprovado com uma atestação Concluído em vigor |
| `review`                     | automático           | O valor atual é mais permissivo que o valor recomendado.                                                    | `failed`       | Reprovado                                                   |
| `attested_completed`         | manual               | Uma atestação com o valor Concluído (`completed`) está em vigor.                                            | `passed`       | Aprovado                                                    |
| `attested_accepted_risk`     | manual               | Uma atestação com o valor Risco aceito (`accepted_risk`) está em vigor.                                     | `passed`       | Aprovado                                                    |
| `not_attested`               | manual               | Nenhuma atestação está em vigor.                                                                            | `not_attested` | Não atestado                                                |
| `attestation_not_enabled`    | manual               | Ninguém pode atestar o controle.                                                                            | `not_attested` | Descritivo                                                  |
| `descriptive`                | apenas informativo   | O controle é reportado, não classificado.                                                                   | `descriptive`  | Descritivo                                                  |
| `not_applicable`             | qualquer             | O controle não se aplica à organização.                                                                     | `descriptive`  | Descritivo                                                  |
| `not_evaluated`              | qualquer             | A configuração, ou outra configuração que decide se o controle se aplica, não pôde ser lida.                | `descriptive`  | Descritivo                                                  |

Nenhum campo informa o tipo de controle; para `failed`, um `current_value` `null` indica um controle manual. Mais valores podem ser adicionados, então conte um controle com um `status` desconhecido pelo seu `rating`, e trate um `rating` desconhecido como não Aprovado. O status `review` e o estado da atestação `review_due` não estão relacionados.

## Estados da atestação

`state` informa se a atestação que a resposta exibe está em vigor.

| `state`           | Significado                                                                                                                  |
| ----------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| `in_force`        | A atestação está em vigor.                                                                                                   |
| `review_due`      | A data de término chegou.                                                                                                    |
| `setting_changed` | A verificação falha em um valor diferente daquele cujo risco foi aceito, ou o risco aceito já foi registrado como encerrado. |
| `check_passing`   | A verificação passa, então não há risco a aceitar.                                                                           |

Quando mais de um motivo se aplica, a resposta informa o primeiro entre `check_passing`, `setting_changed` e `review_due`. A partir de 00:00 UTC da sua data de término, uma atestação não está em vigor. A resposta não tem data de término, então `state` decide; uma data de término que foi salva é o [`review_date`](https://platform.claude.com/docs/pt-BR/manage-claude/compliance-security-posture/events-reference#attestation-activity) da atividade da atestação. Trate um `state` desconhecido como não em vigor.

## Como uma atestação aparece na resposta

A resposta exibe algumas atestações e omite outras, então um `attestation` `null` não prova que ninguém atestou.

| Tipo de controle                                    | Atestado como                         | `status`                                                                 | `rating`           | `attestation`                                       |
| --------------------------------------------------- | ------------------------------------- | ------------------------------------------------------------------------ | ------------------ | --------------------------------------------------- |
| Manual                                              | Sem atestação                         | `not_attested`, ou `attestation_not_enabled` quando ninguém pode atestar | `not_attested`     | `null`                                              |
| Manual                                              | Concluído                             | `attested_completed`                                                     | `passed`           | Exibida                                             |
| Manual                                              | Risco aceito                          | `attested_accepted_risk`                                                 | `passed`           | Exibida                                             |
| Manual                                              | Reprovado (`control_failed`)          | `failed`                                                                 | `failed`           | `null`: nunca exibida                               |
| Automático, a verificação falhou                    | Sem atestação                         | `failed` ou `review`                                                     | `failed`           | `null`                                              |
| Automático, a verificação falhou                    | Risco aceito                          | `failed_check_accepted_risk`                                             | `passed`           | Exibida                                             |
| Automático, a verificação falhou                    | Concluído                             | `failed`, mesmo quando a verificação automática produz `review`          | `failed`           | `null`: nunca exibida                               |
| Automático, a verificação falhou                    | Reprovado                             | O `status` que a verificação automática produz                           | `failed`           | `null`: nunca exibida                               |
| Automático, a verificação passou                    | Sem atestação                         | `passed`, `matches_profile` ou `exceeds_baseline`                        | `passed`           | `null`                                              |
| Automático, a verificação passou                    | Concluído                             | O `status` que a verificação automática produz                           | `passed`           | `null`: nunca exibida                               |
| Automático, a verificação passou                    | Risco aceito                          | O `status` que a verificação automática produz                           | `passed`           | `null` enquanto a verificação passa no valor aceito |
| Automático, a verificação passou                    | Reprovado                             | `failed`                                                                 | `failed`           | `null`: nunca exibida                               |
| Apenas informativo                                  | Qualquer valor                        | `descriptive`                                                            | `descriptive`      | `null`: nunca exibida                               |
| Qualquer, enquanto a atestação não estiver em vigor | Um valor que uma linha anterior exibe | Como sem atestação                                                       | Como sem atestação | Exibida, com um `state` diferente de `in_force`     |
| Qualquer, enquanto a atestação não estiver em vigor | Um valor que uma linha anterior omite | Como sem atestação                                                       | Como sem atestação | `null`                                              |

Cada linha, exceto as duas últimas, vale enquanto a atestação está em vigor. Em um controle automático, uma atestação não está em vigor enquanto o valor que a verificação lê for diferente daquele sobre o qual ela foi salva. Toda atestação que a resposta exibe em um controle automático é um risco aceito. O [Activity Feed](https://platform.claude.com/docs/pt-BR/manage-claude/compliance-activity-feed) também registra atestações dos tipos que a resposta omite.

## Contar resultados

Verifique quatro pontos ao contar controles por `rating`.

| Se você contar             | Verifique também                                                                                                                                                                               |
| -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Aprovado (`passed`)        | Inclui todo controle com um risco aceito em vigor, então procure `failed_check_accepted_risk` e `attested_accepted_risk`.                                                                      |
| Reprovado (`failed`)       | Inclui um controle atestado como Reprovado (`control_failed`), e uma verificação automática com falha com uma atestação Concluído em vigor, que a página Security posture exibe como Aprovado. |
| Descritivo (`descriptive`) | Pode ocultar um controle que não pôde ser lido, então procure `not_evaluated`.                                                                                                                 |
| Todos os controles         | Um controle ausente da resposta não conta como Aprovado e não é nomeado, então compare os valores de `id` com os que você já viu para a organização.                                           |

## Quem atestou, e comentários

`attested_by` é preenchido apenas para uma chave que possui `read:compliance_user_data` junto com `read:compliance_org_data`, ou que possui `read:org_audit`. Uma chave apenas com `read:compliance_user_data` recebe um 403. O `user_id` em `attested_by` é o mesmo que o `user_id` do `actor` na atividade da atestação. `attested_by` contém apenas o ID de usuário: [Listar usuários da organização](https://platform.claude.com/docs/pt-BR/manage-claude/compliance-org-data#list-organization-users) fornece o nome e o endereço de e-mail de cada membro atual. Antes de adicionar esses escopos, consulte [Quem pode ver quem atestou](https://platform.claude.com/docs/pt-BR/manage-claude/compliance-security-posture/overview#who-can-see-who-attested).

O endpoint não retorna comentários, mesmo quando a página Security posture mostra um: todo `comment` é `null`, e `comments_status` é `not_enabled` ou `not_permitted`. Portanto, `not_enabled` e um comentário `null` não significam que a atestação não tenha comentário. `comments_status` informa como interpretar um comentário `null`, e o esquema define estes valores.

| `comments_status`           | Significado                                                                                                                                                       |
| --------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `not_permitted`             | A chave de API não possui nem `read:compliance_user_data` nem `read:org_audit`, então todo `comment` e todo `attested_by` é `null`.                               |
| `requires_organization_key` | A chave de API não foi criada na organização, como acontece com uma chave da organização pai, então todo `comment` é `null`. Tentar novamente não ajuda.          |
| `available`                 | Os comentários foram lidos, então um comentário `null` significa que não há nenhum, ou que ele foi salvo há instantes.                                            |
| `not_enabled`               | Este endpoint não retorna comentários para a organização, então todo `comment` é `null`.                                                                          |
| `unavailable`               | Os comentários não puderam ser lidos para esta resposta; uma requisição posterior pode ter sucesso, mas algumas causas persistem até que o cliente tome uma ação. |

Mais valores podem ser adicionados; trate um valor desconhecido como `unavailable`.

## Erros

Os erros usam o mesmo corpo que o restante da [Compliance API](https://platform.claude.com/docs/pt-BR/manage-claude/compliance-errors); esta tabela lista os que este endpoint retorna de forma própria.

| Status e `error.type`                                                                      | Quando                                                                                                                                       | O que fazer                                                                                                                                                           |
| ------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 400 `invalid_request_error`                                                                | `anthropic-version` está ausente ou é inválido, a Compliance API não está habilitada para a organização pai, ou há um parâmetro de consulta. | Corrija o que `error.message` indicar.                                                                                                                                |
| 401 `authentication_error`                                                                 | A chave está ausente, não é reconhecida, ou não é uma Compliance Access Key nem uma chave da Admin API.                                      | Envie uma Compliance Access Key válida em `x-api-key`.                                                                                                                |
| 403 `permission_error`                                                                     | A chave não pode chamar este endpoint, geralmente porque não possui nem `read:compliance_org_data` nem `read:org_audit`.                     | Use uma chave com qualquer um dos escopos.                                                                                                                            |
| 404 `not_found_error`                                                                      | Consulte as causas listadas após esta tabela.                                                                                                | Não tente novamente de imediato, e nunca o interprete como ausência de controles Reprovados.                                                                          |
| 429 `rate_limit_error`                                                                     | O limite de taxa compartilhado da Compliance API, ou o limite mais baixo deste endpoint, foi esgotado; `error.message` informa qual.         | Aguarde `retry-after`; consulte [429 Too Many Requests](https://platform.claude.com/docs/pt-BR/manage-claude/compliance-errors#429-too-many-requests).                |
| 503 `overloaded_error`, com `error.details.error_code` igual a `posture_evaluation_failed` | O resultado não pôde ser produzido.                                                                                                          | Aguarde `retry-after` e tente novamente; se isso se repetir para uma organização em execuções posteriores, entre em contato com o suporte da Anthropic uma única vez. |
| 503 sem `error_code`, ou 504 `timeout_error`                                               | Uma falha temporária.                                                                                                                        | Tente novamente com backoff exponencial.                                                                                                                              |

Causas de um 404:

* `organization_id` não é um UUID, não corresponde a nenhuma organização, ou corresponde a uma organização excluída.
* `organization_id` corresponde à organização pai, a uma organização sob outra organização pai, ou a uma que uma chave de organização única não cobre.
* A organização não está no Claude Enterprise, ou o Security posture não está disponível para ela, como no caso de uma organização do Claude Console.
* A página Security posture foi desativada para a organização (veja [Disponibilidade do Security posture](https://platform.claude.com/docs/pt-BR/manage-claude/compliance-security-posture/overview#availability)).
* O Security posture está disponível para a organização, mas o endpoint não a atende.
* A disponibilidade não pôde ser verificada; uma requisição posterior pode ter sucesso.

Todo 404 tem o mesmo corpo, assim como um caminho que não existe.

## Atualidade e efeitos colaterais

O endpoint avalia todos os controles quando você o chama, e `evaluated_at` é esse momento.

* Uma alteração feita nos últimos minutos pode não aparecer.
* Um resultado pode mudar sem que nenhuma configuração tenha mudado, por exemplo quando uma data de término chega ou a Anthropic altera um valor recomendado.
* Se a Anthropic alterar a redação de um valor atual, um risco aceito sobre ele deixa de estar em vigor.
* Uma chamada não armazena nenhum resultado e não encerra nenhuma atestação.
* Cada requisição que passa nas verificações de chave, escopo e versão sem um parâmetro de consulta registra uma atividade `compliance_api_accessed`, seja ela bem-sucedida ou não; seu `url` indica a organização lida, e `organization_uuid` é `null` para uma chave da organização pai.
