Claude Platform Docs

External Keys

Create External Key
POST/v1/organizations/external_keys

Create an external key config owned by the caller's organization.

List External Keys
GET/v1/organizations/external_keys

List external key configs in the caller's organization.

Get External Key
GET/v1/organizations/external_keys/{external_key_id}

Retrieve a single external key config in the caller's organization by ID.

Update External Key
POST/v1/organizations/external_keys/{external_key_id}

Partially update an external key config. Omitted fields are left unchanged.

Delete External Key
DELETE/v1/organizations/external_keys/{external_key_id}

Delete an external key config.

Validate External Key
POST/v1/organizations/external_keys/{external_key_id}/validate

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

Models
BetaAWSExternalKeyConfig object{ type: "aws", kms_arn, region, role_arn }
type: "aws"
kms_arn: string

Full ARN of the AWS KMS key. On Claude Platform on AWS the key must be a single-Region key in your organization's own AWS account; cross-account keys, multi-Region keys, and alias ARNs are rejected.

maxLength2048
region: optional string or null

AWS region. Derived from kms_arn if omitted.

role_arn: optional string or nullDeprecated

IAM role ARN. Deprecated — Anthropic reaches the KMS key through its own intermediate role (or, on Claude Platform on AWS, with credentials AWS issues for the Workspace); this field is ignored.

BetaAzureExternalKeyConfig object{ type: "azure", key_name, tenant_id, 2 more }
type: "azure"
key_name: string

Name of the key within the vault.

tenant_id: string

Azure AD tenant ID.

vault_uri: string

Key Vault data-plane URI — https://{vault-name}.vault.azure.net or https://{hsm-name}.managedhsm.azure.net.

client_id: optional string or null

Azure AD application (client) ID. Omit to use Anthropic's multitenant app. Provide only if using a single-tenant app registration in the customer's directory.

BetaAzureExternalKeyConfigParam object{ type: "azure", key_name, tenant_id, 2 more }

Azure Key Vault provider configuration.

type: "azure"
key_name: string

Name of the key within the vault.

tenant_id: string

Azure AD tenant ID.

vault_uri: string

Key Vault data-plane URI — https://{vault-name}.vault.azure.net or https://{hsm-name}.managedhsm.azure.net.

client_id: optional string or null

Azure AD application (client) ID. Omit to use Anthropic's multitenant app. Provide only if using a single-tenant app registration in the customer's directory.

BetaExternalKey object{ type: "external_key", id, attachment, 5 more }

CMEK external key config belonging to the caller's organization.

Configs are organization-scoped. Workspaces attach to a config; once any workspace references it, the provider fields become effectively immutable (existing encrypted data needs the config for decrypt).

BetaExternalKeyAttachedAttachment object{ type: "attached" }
type: "attached"
defaultattached
BetaExternalKeyUnattachedAttachment object{ type: "unattached" }
type: "unattached"
defaultunattached
BetaGCPExternalKeyConfig object{ type: "gcp", key_name }
type: "gcp"
key_name: string

Full resource name of the Cloud KMS key.

ExternalKeyDeleteResponse object{ type: "external_key_deleted", id }
type: "external_key_deleted"
defaultexternal_key_deleted
id: string

ID of the deleted External Key.

ExternalKeyValidateResponse object{ type: "external_key_validation", error, status }

Result of a validation roundtrip against the customer's KMS.

HTTP 200 for both outcomes — the operation completed; status says whether the key works.

type: "external_key_validation"
defaultexternal_key_validation
error: string or null

Error message when status is failure. Null otherwise.

status: "failure" or "success"

success — encrypt/decrypt roundtrip succeeded. failure — the roundtrip failed or timed out; see error.

One of the following:
"failure"
"success"