---
title: "Validate External Key"
method: POST
path: "/v1/organizations/external_keys/{external_key_id}/validate?beta=true"
---

# Validate External Key

`POST /v1/organizations/external_keys/{external_key_id}/validate?beta=true`

## Request

- Base URL: `https://api.anthropic.com`
- URL: `https://api.anthropic.com/v1/organizations/external_keys/{external_key_id}/validate?beta=true`
- Auth: none declared
- TypeScript: <https://skmtc.dev/anthropics/apis/anthropic-api/docs/v1/organizations/external_keys/:external_key_id/validate%3Fbeta=true/post.ts> (a function with typed inputs; its response is checked against the schema)

Validate an external key config against the customer's KMS.

Anthropic performs an encrypt/decrypt roundtrip against the configured
KMS key and waits up to 30 seconds for the result. The response status is
`success` if the roundtrip succeeded, or `failure` with an error
message if it failed or timed out.

## Path parameters

- `external_key_id` string, required: ID of the External Key.

## Headers

- `anthropic-version` string: The version of the Claude API you want to use. Read more about versioning and our version history [here](https://platform.claude.com/docs/en/api/versioning).

## Response `200`

Successful Response

- BetaValidateExternalKeyResponse: Result of a validation roundtrip against the customer's KMS. HTTP 200 for both outcomes — the operation completed; `status` says whether the key works.
  - `error` string, nullable, required: Error message when status is `failure`. Null otherwise.
  - `status` 'failure' | 'success', required: `success` — encrypt/decrypt roundtrip succeeded. `failure` — the roundtrip failed or timed out; see `error`.
  - `type` 'external_key_validation', required

## Other responses

- `400`: Invalid argument - The client specified an invalid argument
- `401`: Unauthenticated - The request does not have valid authentication credentials
- `403`: Permission denied - The caller does not have permission to execute the specified operation
- `404`: Not found - Some requested entity was not found
- `408`: Deadline exceeded - The deadline expired before the operation could complete
- `409`: Aborted - The operation was aborted due to concurrency issue
- `412`: Failed precondition - Operation was rejected because the system is not in required state
- `413`: Out of range - Operation was attempted past the valid range
- `429`: Resource exhausted - Some resource has been exhausted (rate limiting)
- `431`: Request header fields too large - Request metadata was too large
- `499`: Cancelled - The operation was cancelled by the client
- `500`: Internal - Internal server error
- `501`: Unimplemented - The operation is not implemented or supported
- `503`: Unavailable - The service is currently unavailable
- `504`: Deadline exceeded - Upstream service did not respond in time
- `529`: Overloaded - The service is temporarily overloaded

## Changes

- **2026-11-06** `7ee042695927`: 1 breaking, 5 info
  - the `error` response's property type changed from no type to `object` for status `403`
  - added the optional property `error/details` to the response with the `403` status
  - removed discriminator from `error` response property for the response status `403`
  - removed `#/components/schemas/BetaInvalidRequestError, #/components/schemas/BetaAuthenticationError, #/components/schemas/BetaBillingError, #/components/schemas/BetaPermissionError, #/components/schemas/BetaNotFoundError, #/components/schemas/BetaRateLimitError, #/components/schemas/BetaGatewayTimeoutError, #/components/schemas/BetaAPIError, #/components/schemas/BetaOverloadedError` from the `error` response property `oneOf` list for the response status `403`
  - …2 more
- **2026-09-04** `4789294140a2`: 16 info
  - added the non-success response with the status `400`
  - added the non-success response with the status `401`
  - added the non-success response with the status `403`
  - added the non-success response with the status `404`
  - …12 more
- **2026-08-26** `942a11636c42`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/anthropics/apis/anthropic-api/changes/v1/organizations/external_keys/:external_key_id/validate%3Fbeta=true/post.md)

---

[API](https://skmtc.dev/anthropics/apis/anthropic-api.md) - [All operations](https://skmtc.dev/anthropics/apis/anthropic-api/llms.txt) - [OpenAPI document](https://skmtc.dev/anthropics/apis/anthropic-api/revisions/3fc8060329f5?raw)
