---
title: "Upsert a CustomPlugin"
method: PUT
path: "/v2/control-planes/{controlPlaneId}/core-entities/custom-plugins/{CustomPluginId}"
tags: ["CustomPlugins"]
---

# Upsert a CustomPlugin

`PUT /v2/control-planes/{controlPlaneId}/core-entities/custom-plugins/{CustomPluginId}`

Create or Update CustomPlugin using ID or name.

## Request body

- CustomPlugin
  - `created_at` integer, nullable — Unix epoch when the resource was created.
  - `handler` string, required — The handler for the given custom plugin.
  - `id` string, nullable — A string representing a UUID (universally unique identifier).
  - `name` string, required — The name to associate with the given custom plugin. Consider using a distinct prefix for custom plugins to avoid naming conflicts with new bundled plugins in future Kong releases.
  - `schema` string, required — The schema for the given custom plugin.
  - `tags` string[], nullable — A set of strings representing tags.
  - `updated_at` integer, nullable — Unix epoch when the resource was last updated.

## Response `200`

Successfully upserted CustomPlugin

- CustomPlugin
  - `created_at` integer, nullable — Unix epoch when the resource was created.
  - `handler` string, required — The handler for the given custom plugin.
  - `id` string, nullable — A string representing a UUID (universally unique identifier).
  - `name` string, required — The name to associate with the given custom plugin. Consider using a distinct prefix for custom plugins to avoid naming conflicts with new bundled plugins in future Kong releases.
  - `schema` string, required — The schema for the given custom plugin.
  - `tags` string[], nullable — A set of strings representing tags.
  - `updated_at` integer, nullable — Unix epoch when the resource was last updated.

## Other responses

- `401` — Unauthorized

## Changes

- **2025-07-22** `2c77aeaee5fb` — 1 breaking, 1 info
  - the response property `tags` became nullable for the status `200`
  - the request property `tags` became nullable
- **2025-04-22** `8b14ad5a4677` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/kong/apis/konnect-api/changes/v2/control-planes/:controlPlaneId/core-entities/custom-plugins/:CustomPluginId/put.md)

---

[API](https://skmtc.dev/kong/apis/konnect-api.md) · [All operations](https://skmtc.dev/kong/apis/konnect-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/kong/konnect-api/revisions/72502a676a92/schema)
