---
title: "Update an API key"
method: PATCH
path: "/v2/api_keys/{api_key_id}"
tags: ["API Keys"]
---

# Update an API key

`PATCH /v2/api_keys/{api_key_id}`

Updates an API key. Enable or disable the key to temporarily remove access without deleting the key. This is useful for maintenance windows, or when your team no longer requires access to a specific corpus.

## Path parameters

- `api_key_id` string, required

## Headers

- `Request-Timeout` integer
- `Request-Timeout-Millis` integer

## Request body

- UpdateApiKeyRequest — Request to update an existing API key's properties or permissions.
  - `enabled` boolean — Indicates whether to disable or enable an API key.

## Response `200`

The API key.

- ApiKey — An API key used to authenticate and authorize requests to the Vectara platform.
  - `id` string, required — The ID of the API key.
  - `name` string, required — The human-readable name of the API key.
  - `secret_key` string, required — The key used in API requests. Keep the key secure.
  - `enabled` boolean — Indicates whether the API key is enabled.
  - `api_roles` ApiRole[] — Customer-level roles for this API key.
  - `api_key_role` 'serving' | 'serving_and_indexing' | 'personal' — Role of the API key. A serving API key can only perform query type requests on its corpora. A serving and indexing key can perform both indexing and query type requests on its corpora. A personal API key has all the same permissions as the creator of the API key.
  - `corpus_roles` CorpusRole[] — Corpus-specific role assignments for this API key.
    - `corpus_key` string, required — The key of the corpus this role applies to.
    - `role` 'owner' | 'administrator' | 'viewer' | 'editor', required — The role assigned for this specific corpus.
  - `agent_roles` AgentRole[] — Agent-specific role assignments for this API key.
    - `agent_key` string, required — The key of the agent this role applies to.
    - `role` 'agent_administrator' | 'agent_viewer' | 'agent_developer' | 'agent_user' | 'agent_end_user', required — The role assigned for this specific agent. * `agent_administrator` - Full administrative access to the agent including deletion and configuration. * `agent_viewer` - Read-only access to view agent configuration, sessions, events, instructions, and tools. * `agent_developer` - Can modify agent configuration, create/manage sessions, update tools and instructions. * `agent_user` - Limited access to interact with the agent by creating sessions and sending inputs. Cannot view agent configuration or modify settings. * `agent_end_user` - Granted on an alias, lets a user create sessions and send messages through it. They see only their own sessions, and within them only their own messages and the agent's replies. This must be the only role the user holds. The platform rejects assigning it alongside any other role.
  - `api_policy` ApiPolicy — The actions a principal can take on the Vectara platform.
    - `name` string, required — The name of the API role.
    - `allowed_operations` object, required — The operations the API role allows. Each operation may allow only certain resources, described by a map of resource path to resource values. If the value is null, the operation allows any resource.

## Other responses

- `403` — Permissions do not allow updating this API key.

## Changes

- **2026-08-05** `fca567a46b3a` — 1 warning
  - added the new `agent_end_user` enum value to the `agent_roles/items/role` response property for the response status `200`

[Change history](https://skmtc.dev/vectara/apis/vectara-rest-api-v2/changes/v2/api_keys/:api_key_id/patch.md)

---

[API](https://skmtc.dev/vectara/apis/vectara-rest-api-v2.md) · [All operations](https://skmtc.dev/vectara/apis/vectara-rest-api-v2/llms.txt) · [OpenAPI document](https://skmtc.dev/vectara/apis/vectara-rest-api-v2/revisions/fca567a46b3a?raw)
