---
title: "Update API Key"
method: POST
path: "/v1/organizations/api_keys/{api_key_id}?beta=true"
---

# Update API Key

`POST /v1/organizations/api_keys/{api_key_id}?beta=true`

## Path parameters

- `api_key_id` string, required — ID of the API 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).

## Request body

- BetaApiKeyUpdateParams
  - `name` string, nullable — Name of the API key.
  - `status` 'active' | 'archived' | 'inactive', nullable — Status of the API key.

## Response `200`

Successful Response

- BetaApiKey
  - `created_at` string, date-time, required — RFC 3339 datetime string indicating when the API Key was created.
  - `created_by` BetaCreatedBy, required
    - `id` string, required — ID of the actor that created the object.
    - `type` 'service_account' | 'user', required — Type of the actor that created the object.
  - `expires_at` string, date-time, nullable, required — RFC 3339 datetime string indicating when the API Key expires, or `null` if it never expires.
  - `id` string, required — ID of the API key.
  - `name` string, required — Name of the API key.
  - `partial_key_hint` string, nullable, required — Partially redacted hint for the API key.
  - `principal` union, required — The principal the API key acts as (a User or a Service Account), or `null` if the API key is not bound to a principal.
    - BetaApiKeyUserActor
      - `type` 'user_actor', required — Principal type. Always `"user_actor"` for a User.
      - `user_id` string, required — ID of the User the API key acts as.
    - BetaApiKeyServiceAccountActor
      - `service_account_id` string, required — ID of the Service Account the API key acts as.
      - `type` 'service_account_actor', required — Principal type. Always `"service_account_actor"` for a Service Account.
  - `scope` union, required — Where the API key belongs: its Workspace (`{"type": "workspace", "workspace_id": "wrkspc_..."}`, with the Workspace's real ID even when it is the organization's default Workspace), or the organization (`{"type": "organization"}`) for a principal-bound API key that has no Workspace.
    - BetaApiKeyOrganizationScope
      - `type` 'organization', required — Scope type. Always `"organization"`: the API key has no Workspace. Only a principal-bound API key can have this scope.
    - BetaApiKeyWorkspaceScope
      - `type` 'workspace', required — Scope type. Always `"workspace"`: the API key belongs to one Workspace.
      - `workspace_id` string, required — ID of the Workspace the API key belongs to. Unlike the deprecated top-level `workspace_id`, this is the Workspace's real ID even for the organization's default Workspace.
  - `status` 'active' | 'archived' | 'expired' | 'inactive', required — Status of the API key.
  - `type` 'api_key', required — Object type. For API Keys, this is always `"api_key"`.
  - `workspace_id` string, nullable, required — Deprecated: use `scope` instead. ID of the Workspace associated with the API key, or `null` if the API key belongs to the default Workspace. Also `null` for a principal-bound API key that has no Workspace; `scope` tells the two apart.

## Other responses

- `4XX` — Error response. See our [errors documentation](https://platform.claude.com/docs/en/api/errors) for more details.

## Changes

- **2026-08-26** `942a11636c42` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/anthropics/apis/anthropic-api/changes/v1/organizations/api_keys/:api_key_id?beta=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-service-production.skmtc.workers.dev/v1/apis/anthropics/anthropic-api/revisions/d1d189d791d1/schema)
