---
title: "Changes to Update a KeyAuth plugin"
method: PUT
path: "/v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#KeyAuth"
---

# Changes to Update a KeyAuth plugin

`PUT /v2/control-planes/{controlPlaneId}/core-entities/plugins/{PluginId}#KeyAuth`

> Every recorded change to this endpoint, newest first.

## Timeline

Changed in 18 of 52 revisions.

- **2026-08-04** `06734a9c491f` — 2 info
- **2026-07-06** `36da5cb9a674` — 2 info
- **2026-06-11** `62c54f1094bb` — 1 breaking, 1 info
- **2026-04-24** `7d6a643707d9` — 2 info
- **2025-10-29** `19e869275e28` — 2 breaking
- **2025-09-16** `f03059016622` — 5 breaking
- **2025-08-22** `96118a9cd7f4` — 6 breaking, 22 info
- **2025-07-22** `2c77aeaee5fb` — 1 breaking, 1 info
- **2025-06-17** `c308b7426a7c` — 2 breaking
- **2025-05-21** `69704304ad5f` — 2 info
- **2025-05-01** `351c07039f3c` — 2 info
- **2025-04-15** `fc6abbc537f3` — 2 breaking, 6 info
- **2025-03-05** `ceb048468954` — 2 breaking, 2 info
- **2025-02-10** `d833d4dbb1fa` — 1 breaking, 1 warning, 8 info
- **2024-12-13** `8aedc289a938` — 1 breaking
- **2024-12-06** `426663331655` — 1 breaking
- **2024-11-11** `08ead66e9ebb` — 4 breaking, 1 warning, 25 info
- **2024-09-11** `be7c36317ba6` — 2 info

## Changes

- **2026-08-04** `06734a9c491f` — 2 info
  - the `scope` request property default value `cp` was added
  - the `scope` response's property default value `cp` was added for the status `200`
- **2026-07-06** `36da5cb9a674` — 2 info
  - added the new optional request property `allOf[#/components/schemas/KeyAuthPluginConfig]/config/principals`
  - added the optional property `allOf[#/components/schemas/KeyAuthPluginConfig]/config/principals` to the response with the `200` status
- **2026-06-11** `62c54f1094bb` — 1 breaking, 1 info
  - the request property `allOf[#/components/schemas/PluginBase]/partials/items/path` became required
  - the response property `allOf[#/components/schemas/PluginBase]/partials/items/path` became required for the status `200`
- **2026-04-24** `7d6a643707d9` — 2 info
  - added the new optional request property `allOf[#/components/schemas/PluginBase]/condition`
  - added the optional property `allOf[#/components/schemas/PluginBase]/condition` to the response with the `200` status
- **2025-10-29** `19e869275e28` — 2 breaking
  - the `allOf[#/components/schemas/KeyAuthPluginConfig]/name` request property type/format changed from `string`/`` to ``/``
  - the `allOf[#/components/schemas/KeyAuthPluginConfig]/name` response's property type/format changed from `string`/`` to ``/`` for status `200`
- **2025-09-16** `f03059016622` — 5 breaking
  - the request property `allOf[#/components/schemas/PluginBase]/partials/items/name` became not nullable
  - the request property `allOf[#/components/schemas/PluginBase]/partials/items/path` became not nullable
  - the `allOf[#/components/schemas/PluginBase]/id` request property's minLength was increased from `0` to `1`
  - the `allOf[#/components/schemas/PluginBase]/name` request property's minLength was increased from `0` to `1`
  - the `allOf[#/components/schemas/PluginBase]/partials/items/id` request property's minLength was increased from `0` to `1`
- **2025-08-22** `96118a9cd7f4` — 6 breaking, 22 info
  - the response property `allOf[#/components/schemas/KeyAuthPluginConfig]/config` became nullable for the status `200`
  - the response property `allOf[#/components/schemas/KeyAuthPluginConfig]/config/anonymous` became nullable for the status `200`
  - the response property `allOf[#/components/schemas/KeyAuthPluginConfig]/config/identity_realms/items/region` became nullable for the status `200`
  - the response property `allOf[#/components/schemas/KeyAuthPluginConfig]/config/realm` became nullable for the status `200`
  - the response property `allOf[#/components/schemas/PluginBase]/partials/items/name` became nullable for the status `200`
  - the response property `allOf[#/components/schemas/PluginBase]/partials/items/path` became nullable for the status `200`
  - the request property `allOf[#/components/schemas/KeyAuthPluginConfig]/config` became nullable
  - the request property `allOf[#/components/schemas/KeyAuthPluginConfig]/config/anonymous` became nullable
  - the request property `allOf[#/components/schemas/KeyAuthPluginConfig]/config/identity_realms/items/region` became nullable
  - the request property `allOf[#/components/schemas/KeyAuthPluginConfig]/config/realm` became nullable
  - the request property `allOf[#/components/schemas/PluginBase]/partials/items/name` became nullable
  - the request property `allOf[#/components/schemas/PluginBase]/partials/items/path` became nullable
  - the `enabled` request property default value `true` was added
  - the `hide_credentials` request property default value `false` was added
  - the `key_in_body` request property default value `false` was added
  - the `key_in_header` request property default value `true` was added
  - the `key_in_query` request property default value `true` was added
  - the `key_names` request property default value `apikey` was added
  - the `protocols` request property default value `grpc, grpcs, http, https, ws, wss` was added
  - the `run_on_preflight` request property default value `true` was added
  - the `enabled` response's property default value `true` was added for the status `200`
  - the `hide_credentials` response's property default value `false` was added for the status `200`
  - the `key_in_body` response's property default value `false` was added for the status `200`
  - the `key_in_header` response's property default value `true` was added for the status `200`
  - the `key_in_query` response's property default value `true` was added for the status `200`
  - the `key_names` response's property default value `apikey` was added for the status `200`
  - the `protocols` response's property default value `grpc, grpcs, http, https, ws, wss` was added for the status `200`
  - the `run_on_preflight` response's property default value `true` was added for the status `200`
- **2025-07-22** `2c77aeaee5fb` — 1 breaking, 1 info
  - the response property `allOf[#/components/schemas/PluginBase]/tags` became nullable for the status `200`
  - the request property `allOf[#/components/schemas/PluginBase]/tags` became nullable
- **2025-06-17** `c308b7426a7c` — 2 breaking
  - the `allOf[#/components/schemas/KeyAuthPluginConfig]/protocols` request property type/format changed from `array`/`` to `array`/`set`
  - the `allOf[#/components/schemas/KeyAuthPluginConfig]/protocols` response's property type/format changed from `array`/`` to `array`/`set` for status `200`
- **2025-05-21** `69704304ad5f` — 2 info
  - added the new optional request property `allOf[#/components/schemas/PluginBase]/partials`
  - added the optional property `allOf[#/components/schemas/PluginBase]/partials` to the response with the `200` status
- **2025-05-01** `351c07039f3c` — 2 info
  - added the new optional request property `allOf[#/components/schemas/KeyAuthPluginConfig]/config/identity_realms`
  - added the optional property `allOf[#/components/schemas/KeyAuthPluginConfig]/config/identity_realms` to the response with the `200` status
- **2025-04-15** `fc6abbc537f3` — 2 breaking, 6 info
  - the response property `allOf[#/components/schemas/PluginBase]/created_at` became nullable for the status `200`
  - the response property `allOf[#/components/schemas/PluginBase]/updated_at` became nullable for the status `200`
  - the request optional property `allOf[#/components/schemas/PluginBase]/created_at` became not read-only
  - the request optional property `allOf[#/components/schemas/PluginBase]/updated_at` became not read-only
  - the request property `allOf[#/components/schemas/PluginBase]/created_at` became nullable
  - the request property `allOf[#/components/schemas/PluginBase]/updated_at` became nullable
  - the response optional property `allOf[#/components/schemas/PluginBase]/created_at` became not read-only for the status `200`
  - the response optional property `allOf[#/components/schemas/PluginBase]/updated_at` became not read-only for the status `200`
- **2025-03-05** `ceb048468954` — 2 breaking, 2 info
  - the response property `allOf[#/components/schemas/KeyAuthPluginConfig]/route` became nullable for the status `200`
  - the response property `allOf[#/components/schemas/KeyAuthPluginConfig]/service` became nullable for the status `200`
  - the request property `allOf[#/components/schemas/KeyAuthPluginConfig]/route` became nullable
  - the request property `allOf[#/components/schemas/KeyAuthPluginConfig]/service` became nullable
- **2025-02-10** `d833d4dbb1fa` — 1 breaking, 1 warning, 8 info
  - added `#/components/schemas/PluginBase` to the request body `allOf` list
  - removed `#/components/schemas/Plugin` from the request body `allOf` list
  - added the new optional request property `allOf[#/components/schemas/KeyAuthPluginConfig]/protocols`
  - added the new optional request property `allOf[#/components/schemas/KeyAuthPluginConfig]/route`
  - added the new optional request property `allOf[#/components/schemas/KeyAuthPluginConfig]/service`
  - added `#/components/schemas/PluginBase` to the response body `allOf` list for the response status `200`
  - removed `#/components/schemas/Plugin` from the response body `allOf` list for the response status `200`
  - added the optional property `allOf[#/components/schemas/KeyAuthPluginConfig]/protocols` to the response with the `200` status
  - added the optional property `allOf[#/components/schemas/KeyAuthPluginConfig]/route` to the response with the `200` status
  - added the optional property `allOf[#/components/schemas/KeyAuthPluginConfig]/service` to the response with the `200` status
- **2024-12-13** `8aedc289a938` — 1 breaking
  - request body became required
- **2024-12-06** `426663331655` — 1 breaking
  - the request property `allOf[#/components/schemas/Plugin]/tags` became not nullable
- **2024-11-11** `08ead66e9ebb` — 4 breaking, 1 warning, 25 info
  - added the new required request property `allOf[#/components/schemas/Plugin]/config`
  - added the new required request property `allOf[#/components/schemas/Plugin]/name`
  - the `allOf[#/components/schemas/Plugin]/` request property type/format changed from ``/`` to `object`/``
  - the `allOf[#/components/schemas/Plugin]/` response's property type/format changed from ``/`` to `object`/`` for status `200`
  - removed `#/components/schemas/PluginWithoutParents, subschema #2` from the `allOf[#/components/schemas/Plugin]/` request property `allOf` list
  - added the new optional request property `allOf[#/components/schemas/Plugin]/consumer`
  - added the new optional request property `allOf[#/components/schemas/Plugin]/consumer_group`
  - added the new optional request property `allOf[#/components/schemas/Plugin]/enabled`
  - added the new optional request property `allOf[#/components/schemas/Plugin]/id`
  - added the new optional request property `allOf[#/components/schemas/Plugin]/instance_name`
  - added the new optional request property `allOf[#/components/schemas/Plugin]/ordering`
  - added the new optional request property `allOf[#/components/schemas/Plugin]/protocols`
  - added the new optional request property `allOf[#/components/schemas/Plugin]/route`
  - added the new optional request property `allOf[#/components/schemas/Plugin]/service`
  - added the new optional request property `allOf[#/components/schemas/Plugin]/tags`
  - added the optional property `allOf[#/components/schemas/Plugin]/consumer` to the response with the `200` status
  - added the optional property `allOf[#/components/schemas/Plugin]/consumer_group` to the response with the `200` status
  - added the optional property `allOf[#/components/schemas/Plugin]/created_at` to the response with the `200` status
  - added the optional property `allOf[#/components/schemas/Plugin]/enabled` to the response with the `200` status
  - added the optional property `allOf[#/components/schemas/Plugin]/id` to the response with the `200` status
  - added the optional property `allOf[#/components/schemas/Plugin]/instance_name` to the response with the `200` status
  - added the optional property `allOf[#/components/schemas/Plugin]/ordering` to the response with the `200` status
  - added the optional property `allOf[#/components/schemas/Plugin]/protocols` to the response with the `200` status
  - added the optional property `allOf[#/components/schemas/Plugin]/route` to the response with the `200` status
  - added the optional property `allOf[#/components/schemas/Plugin]/service` to the response with the `200` status
  - added the optional property `allOf[#/components/schemas/Plugin]/tags` to the response with the `200` status
  - added the optional property `allOf[#/components/schemas/Plugin]/updated_at` to the response with the `200` status
  - removed `#/components/schemas/PluginWithoutParents, subschema #2` from the `allOf[#/components/schemas/Plugin]/` response property `allOf` list for the response status `200`
  - added the required property `allOf[#/components/schemas/Plugin]/config` to the response with the `200` status
  - added the required property `allOf[#/components/schemas/Plugin]/name` to the response with the `200` status
- **2024-09-11** `be7c36317ba6` — 2 info
  - added the new optional request property `allOf[#/components/schemas/Plugin]/allOf[#/components/schemas/PluginWithoutParents]/ordering`
  - added the optional property `allOf[#/components/schemas/Plugin]/allOf[#/components/schemas/PluginWithoutParents]/ordering` to the response with the `200` status

---

[Operation](https://skmtc.dev/kong/apis/konnect-api/docs/v2/control-planes/:controlPlaneId/core-entities/plugins/:PluginId#KeyAuth/put.md) · [API](https://skmtc.dev/kong/apis/konnect-api.md) · [Page](https://skmtc.dev/kong/apis/konnect-api/changes/v2/control-planes/:controlPlaneId/core-entities/plugins/:PluginId#KeyAuth/put)
