Claude Platform Docs
AdministraçãoSecurity posture

Referência de resultados de Security posture

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.

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

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"
ItemRegra
organization_idO uuid de uma organização vinculada obtido em Listar organizações; qualquer outro valor retorna 404.
ChaveUma chave da organização pai pode indicar qualquer organização vinculada, e uma chave de uma única organização pode indicar apenas essa organização.
anthropic-versionObrigatório; uma requisição sem ele retorna 400.
Parâmetros de consultaNenhum; 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.

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

CampoTipoDescrição
typestringSempre security_posture.
organization_idstringO UUID da organização.
evaluated_atstring (RFC 3339, UTC)O momento em que todos os controles foram avaliados.
comments_statusstringSe os comentários das atestações foram lidos; consulte Quem atestou, e comentários.
controlsarray de objetosOs controles da organização, nunca vazio.

Campos de controls[]

CampoTipoDescrição
idstringO identificador do controle, que é o mesmo para todas as organizações e nunca muda.
display_namestringO nome de exibição do controle, como texto de exibição em inglês cuja redação pode mudar.
sectionstringA 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_namestring ou nullO name da entrada nas configurações efetivas da organização que este controle lê; null quando ele não lê nenhuma entrada desse tipo.
statusstringO motivo do resultado do controle; consulte Valores de status.
ratingstringO resultado do controle, que decorre de status; consulte Valores de status.
current_valuestring ou nullO 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_statestring ou nullO 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.
attestationobjeto ou nullA 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.

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 da mesma organização. A busca pode não encontrar nada, e dois controles podem compartilhar um mesmo setting_name.

Campos de attestation

CampoTipoDescrição
statestringSe a atestação está em vigor; consulte Estados da atestação.
attested_atstring (RFC 3339, UTC)Quando a atestação foi feita.
commentstring ou nullO 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_byobjeto ou nullA 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

CampoTipoDescrição
typestringSempre user_actor.
user_idstringO 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.

statusTipo de controleSignificadoratingNa página
passedautomáticoO valor atual atende ao valor recomendado.passedAprovado
matches_profileautomáticoO valor atual é igual ao valor recomendado.passedAprovado
exceeds_baselineautomáticoO valor atual é mais rigoroso que o valor recomendado.passedAprovado
failed_check_accepted_riskautomáticoA verificação automática falha, e um risco aceito está em vigor.passedAprovado
failedautomático ou manualO valor atual não atende ao valor recomendado, ou uma atestação que a resposta omite produz este resultado.failedReprovado, ou Aprovado com uma atestação Concluído em vigor
reviewautomáticoO valor atual é mais permissivo que o valor recomendado.failedReprovado
attested_completedmanualUma atestação com o valor Concluído (completed) está em vigor.passedAprovado
attested_accepted_riskmanualUma atestação com o valor Risco aceito (accepted_risk) está em vigor.passedAprovado
not_attestedmanualNenhuma atestação está em vigor.not_attestedNão atestado
attestation_not_enabledmanualNinguém pode atestar o controle.not_attestedDescritivo
descriptiveapenas informativoO controle é reportado, não classificado.descriptiveDescritivo
not_applicablequalquerO controle não se aplica à organização.descriptiveDescritivo
not_evaluatedqualquerA configuração, ou outra configuração que decide se o controle se aplica, não pôde ser lida.descriptiveDescritivo

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.

stateSignificado
in_forceA atestação está em vigor.
review_dueA data de término chegou.
setting_changedA verificação falha em um valor diferente daquele cujo risco foi aceito, ou o risco aceito já foi registrado como encerrado.
check_passingA 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 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 controleAtestado comostatusratingattestation
ManualSem atestaçãonot_attested, ou attestation_not_enabled quando ninguém pode atestarnot_attestednull
ManualConcluídoattested_completedpassedExibida
ManualRisco aceitoattested_accepted_riskpassedExibida
ManualReprovado (control_failed)failedfailednull: nunca exibida
Automático, a verificação falhouSem atestaçãofailed ou reviewfailednull
Automático, a verificação falhouRisco aceitofailed_check_accepted_riskpassedExibida
Automático, a verificação falhouConcluídofailed, mesmo quando a verificação automática produz reviewfailednull: nunca exibida
Automático, a verificação falhouReprovadoO status que a verificação automática produzfailednull: nunca exibida
Automático, a verificação passouSem atestaçãopassed, matches_profile ou exceeds_baselinepassednull
Automático, a verificação passouConcluídoO status que a verificação automática produzpassednull: nunca exibida
Automático, a verificação passouRisco aceitoO status que a verificação automática produzpassednull enquanto a verificação passa no valor aceito
Automático, a verificação passouReprovadofailedfailednull: nunca exibida
Apenas informativoQualquer valordescriptivedescriptivenull: nunca exibida
Qualquer, enquanto a atestação não estiver em vigorUm valor que uma linha anterior exibeComo sem atestaçãoComo sem atestaçãoExibida, com um state diferente de in_force
Qualquer, enquanto a atestação não estiver em vigorUm valor que uma linha anterior omiteComo sem atestaçãoComo sem atestaçãonull

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 também registra atestações dos tipos que a resposta omite.

Contar resultados

Verifique quatro pontos ao contar controles por rating.

Se você contarVerifique 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 controlesUm 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 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.

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_statusSignificado
not_permittedA 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_keyA 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.
availableOs comentários foram lidos, então um comentário null significa que não há nenhum, ou que ele foi salvo há instantes.
not_enabledEste endpoint não retorna comentários para a organização, então todo comment é null.
unavailableOs 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; esta tabela lista os que este endpoint retorna de forma própria.

Status e error.typeQuandoO que fazer
400 invalid_request_erroranthropic-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_errorA 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_errorA 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_errorConsulte 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_errorO 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.
503 overloaded_error, com error.details.error_code igual a posture_evaluation_failedO 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_errorUma 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).
  • 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.

Esta página foi útil?