---
title: "PUT /gateway/v2/interceptor"
method: PUT
path: "/gateway/v2/interceptor"
tags: ["cli_interceptor_gateway_v2_12"]
---

# PUT /gateway/v2/interceptor

`PUT /gateway/v2/interceptor`

## Request

- Base URL: `https://developers.conduktor.io` (the document declares no server; this is the origin it was published from)
- URL: `https://developers.conduktor.io/gateway/v2/interceptor`
- Auth: HTTP basic
- TypeScript: <https://skmtc.dev/conduktor/apis/conduktor-gateway-api/docs/gateway/v2/interceptor/put.ts> (a function with typed inputs; its response is checked against the schema)

[![Generally Available](https://img.shields.io/badge/Lifecycle-Generally%20Available-blue)](#tag/Versioning)

Upsert an interceptor

## Query parameters

- `dryMode` boolean

## Request body

- Interceptor
  - `kind` string, required: The kind of the interceptor
  - `apiVersion` string, required: The api version of the interceptor
  - `metadata` InterceptorMetadata, required: Metadata of the interceptor
    - `name` string, required: The name of the interceptor
    - `scope` InterceptorScope
      - `vCluster` string: An optional virtual cluster to filter the interceptors
      - `group` string: An optional group to filter the interceptors
      - `username` string: An optional username to filter the interceptors
  - `spec` InterceptorSpec, required: Spec of the interceptor
    - `comment` string: An optional comment for the interceptor
    - `pluginClass` string, required: The class of the plugin
    - `priority` integer, required: The priority of the interceptor
    - `config` MapJson, required: The configuration of the interceptor

## Response `200`

- ApplyResultInterceptor
  - `resource` Interceptor, required
    - `kind` string, required: The kind of the interceptor
    - `apiVersion` string, required: The api version of the interceptor
    - `metadata` InterceptorMetadata, required: Metadata of the interceptor
      - `name` string, required: The name of the interceptor
      - `scope` InterceptorScope
        - `vCluster` string: An optional virtual cluster to filter the interceptors
        - `group` string: An optional group to filter the interceptors
        - `username` string: An optional username to filter the interceptors
    - `spec` InterceptorSpec, required: Spec of the interceptor
      - `comment` string: An optional comment for the interceptor
      - `pluginClass` string, required: The class of the plugin
      - `priority` integer, required: The priority of the interceptor
      - `config` MapJson, required: The configuration of the interceptor
  - `upsertResult` 'Created' | 'NotChanged' | 'Updated', required: The result of the upsert operation (created, updated, not changed)

## Other responses

- `400`: The request is not valid
- `401`: The given credentials are not valid
- `403`: The plugin requires a feature not included in the current license
- `404`: The virtual cluster or the group specified in the scope does not exist
- `500`: An unexpected error occurred in the server

---

[API](https://skmtc.dev/conduktor/apis/conduktor-gateway-api.md) - [All operations](https://skmtc.dev/conduktor/apis/conduktor-gateway-api/llms.txt) - [OpenAPI document](https://skmtc.dev/conduktor/apis/conduktor-gateway-api/revisions/73ad742aa630?raw)
