---
title: Create External Key
url: https://platform.claude.com/docs/en/api/go/beta/organization/external_keys/create
---

# Create External Key

`client.Beta.Organization.ExternalKeys.New(ctx, body) (*BetaExternalKey, error)`

**POST** `/v1/organizations/external_keys`

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

## Parameters

- `body BetaOrganizationExternalKeyNewParams`

  - `ProviderConfig BetaOrganizationExternalKeyNewParamsProviderConfigUnion`

    KMS provider identity and auth coordinates.

    - `type BetaAWSExternalKeyConfig`

      - `Type AWS`

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

        maxLength: 2048

      - `Region string Optional`

        AWS region. Derived from `kms_arn` if omitted.

      - `RoleARN string Optional`

        **Deprecated**

        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.

    - `type BetaGCPExternalKeyConfig`

      - `Type GCP`

      - `KeyName string`

        Full resource name of the Cloud KMS key.

    - `type BetaAzureExternalKeyConfigParam`

      Azure Key Vault provider configuration.

      - `Type Azure`

      - `KeyName string`

        Name of the key within the vault.

      - `TenantID string`

        Azure AD tenant ID.

      - `VaultURI string`

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

      - `ClientID string Optional`

        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.

  - `DisplayName param.Opt[string] Optional`

    Human-friendly display name.

    minLength: 1, maxLength: 255

  - `Geo BetaOrganizationExternalKeyNewParamsGeo Optional`

    Data residency geo. Only `us` is supported.

    - `const BetaOrganizationExternalKeyNewParamsGeoUs BetaOrganizationExternalKeyNewParamsGeo = "us"`

## Returns

- `type BetaExternalKey`

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

  - `Type ExternalKey`

    default: external_key

  - `ID string`

    Identifier of the external key config. A tagged ID prefixed `ekey_`, or — for organizations on the Claude Platform on AWS — the AWS KMS key ARN.

  - `Attachment BetaExternalKeyAttachmentUnion`

    Whether any workspace uses this config to encrypt its data — counting live and archived workspaces (an archived workspace's data remains encrypted under the config), excluding deleted ones. Only an attached config is used by the encryption path; an `unattached` config is inert and can be deleted.

    - `type BetaExternalKeyAttachedAttachment`

      - `Type Attached`

        default: attached

    - `type BetaExternalKeyUnattachedAttachment`

      - `Type Unattached`

        default: unattached

  - `CreatedAt Time`

    format: date-time

  - `DisplayName string`

    Human-friendly display name. Null if none was set.

  - `Geo string`

    Data residency geo. Selects which regional validator handles this key's encrypt/decrypt roundtrips.

  - `ProviderConfig BetaExternalKeyProviderConfigUnion`

    KMS provider identity and auth coordinates.

    - `type BetaAWSExternalKeyConfig`

      - `Type AWS`

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

        maxLength: 2048

      - `Region string Optional`

        AWS region. Derived from `kms_arn` if omitted.

      - `RoleARN string Optional`

        **Deprecated**

        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.

    - `type BetaGCPExternalKeyConfig`

      - `Type GCP`

      - `KeyName string`

        Full resource name of the Cloud KMS key.

    - `type BetaAzureExternalKeyConfig`

      - `Type Azure`

      - `KeyName string`

        Name of the key within the vault.

      - `TenantID string`

        Azure AD tenant ID.

      - `VaultURI string`

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

      - `ClientID string Optional`

        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.

  - `UpdatedAt Time`

    format: date-time

## Example

```go
package main

import (
	"context"
	"fmt"

	"github.com/anthropics/anthropic-sdk-go"
	"github.com/anthropics/anthropic-sdk-go/option"
)

func main() {
	client := anthropic.NewClient(
		option.WithAPIKey("my-anthropic-api-key"),
	)
	betaExternalKey, err := client.Beta.Organization.ExternalKeys.New(context.TODO(), anthropic.BetaOrganizationExternalKeyNewParams{
		ProviderConfig: anthropic.BetaOrganizationExternalKeyNewParamsProviderConfigUnion{
			OfAWS: &anthropic.BetaAWSExternalKeyConfigParam{
				KMSARN: "arn:aws:kms:us-east-1:111122223333:key/abcd1234-5678-90ab-cdef-000011112222",
			},
		},
	})
	if err != nil {
		panic(err.Error())
	}
	fmt.Printf("%+v\n", betaExternalKey.ID)
}
```

### Response (200)

```json
{
  "id": "ekey_01SDCCSbTxrXDpWc1phhtcfK",
  "attachment": {
    "type": "attached"
  },
  "created_at": "2024-10-30T23:58:27.427722Z",
  "display_name": "prod-us-key",
  "geo": "us",
  "provider_config": {
    "kms_arn": "arn:aws:kms:us-east-1:111122223333:key/abcd1234-5678-90ab-cdef-000011112222",
    "type": "aws",
    "region": "us-east-1",
    "role_arn": "arn:aws:iam::111122223333:role/anthropic-cmek"
  },
  "type": "external_key",
  "updated_at": "2024-10-30T23:58:27.427722Z"
}
```
