API7 Docs

Get all plugin schemas and priorities

GET /apisix/admin/plugins

GET /apisix/admin/plugins

Interactive request editor loads with JavaScript.

Authorization

X-API-KEY<token>

In: header

Query Parameters

subsystem?string

Type to filter the plugin list. http will only show L7 plugins and stream will only show L4 plugins.

Default"http"

Value in

  • "http"
  • "stream"

Response Body

application/json

application/json

curl -X GET "$API_BASE_URL/apisix/admin/plugins"

Successfully retrieved the detailed plugin schemas including configuration options.

{
  "value": {
    "acl": {
      "schema": {
        "$comment": "this is a mark for our injected plugin schema",
        "allOf": [
          {
            "if": {
              "properties": {
                "external_user_label_field_parser": {
                  "const": "segmented_text"
                }
              },
              "required": [
                "external_user_label_field_parser"
              ]
            },
            "then": {
              "required": [
                "external_user_label_field_separator"
              ]
            }
          }
        ],
        "anyOf": [
          {
            "required": [
              "allow_labels"
            ]
          },
          {
            "required": [
              "deny_labels"
            ]
          }
        ],
        "properties": {
          "_meta": {
            "properties": {
              "disable": {
                "type": "boolean"
              },
              "error_response": {
                "oneOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "object"
                  }
                ]
              },
              "filter": {
                "description": "filter determines whether the plugin needs to be executed at runtime",
                "type": "array"
              },
              "pre_function": {
                "description": "function to be executed in each phase before execution of plugins. The pre_function will have access to two arguments: `conf` and `ctx`.",
                "type": "string"
              },
              "priority": {
                "description": "priority of plugins by customized order",
                "type": "integer"
              }
            },
            "type": "object"
          },
          "allow_labels": {
            "minProperties": 1,
            "patternProperties": {
              ".*": {
                "items": {
                  "type": "string"
                },
                "minItems": 1,
                "type": "array"
              }
            },
            "type": "object"
          },
          "deny_labels": {
            "minProperties": 1,
            "patternProperties": {
              ".*": {
                "items": {
                  "type": "string"
                },
                "minItems": 1,
                "type": "array"
              }
            },
            "type": "object"
          },
          "external_user_label_field": {
            "default": "groups",
            "type": "string"
          },
          "external_user_label_field_key": {
            "minLength": 1,
            "type": "string"
          },
          "external_user_label_field_parser": {
            "enum": [
              "segmented_text",
              "json",
              "table"
            ],
            "type": "string"
          },
          "external_user_label_field_separator": {
            "description": "The separator(regex) of the segmented_text parser",
            "minLength": 1,
            "type": "string"
          },
          "rejected_code": {
            "default": 403,
            "minimum": 200,
            "type": "integer"
          },
          "rejected_msg": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "priority": 2410
    },
    "ai-aliyun-content-moderation": {
      "schema": {
        "$comment": "this is a mark for our injected plugin schema",
        "encrypt_fields": [
          "access_key_secret"
        ],
        "properties": {
          "_meta": {
            "additionalProperties": false,
            "properties": {
              "disable": {
                "type": "boolean"
              },
              "error_response": {
                "oneOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "object"
                  }
                ]
              },
              "filter": {
                "description": "filter determines whether the plugin needs to be executed at runtime",
                "type": "array"
              },
              "pre_function": {
                "description": "function to be executed in each phase before execution of plugins. The pre_function will have access to two arguments: `conf` and `ctx`.",
                "type": "string"
              },
              "priority": {
                "description": "priority of plugins by customized order",
                "type": "integer"
              }
            },
            "type": "object"
          },
          "access_key_id": {
            "minLength": 1,
            "type": "string"
          },
          "access_key_secret": {
            "minLength": 1,
            "type": "string"
          },
          "check_request": {
            "default": true,
            "type": "boolean"
          },
          "check_response": {
            "default": false,
            "type": "boolean"
          },
          "deny_code": {
            "default": 200,
            "type": "number"
          },
          "deny_message": {
            "type": "string"
          },
          "endpoint": {
            "minLength": 1,
            "type": "string"
          },
          "region_id": {
            "minLength": 1,
            "type": "string"
          },
          "request_check_length_limit": {
            "default": 2000,
            "type": "number"
          },
          "request_check_service": {
            "default": "llm_query_moderation",
            "minLength": 1,
            "type": "string"
          },
          "response_check_length_limit": {
            "default": 5000,
            "type": "number"
          },
          "response_check_service": {
            "default": "llm_response_moderation",
            "minLength": 1,
            "type": "string"
          },
          "risk_level_bar": {
            "default": "high",
            "enum": [
              "none",
              "low",
              "medium",
              "high",
              "max"
            ],
            "type": "string"
          },
          "ssl_verify": {
            "default": true,
            "type": "boolean"
          },
          "stream_check_cache_size": {
            "default": 128,
            "description": "max characters per moderation batch in realtime mode",
            "minimum": 1,
            "type": "integer"
          },
          "stream_check_interval": {
            "default": 3,
            "description": "seconds between batch checks in realtime mode",
            "minimum": 0.1,
            "type": "number"
          },
          "stream_check_mode": {
            "default": "final_packet",
            "description": "realtime: batched checks during streaming | final_packet: append risk_level at end\n",
            "enum": [
              "realtime",
              "final_packet"
            ],
            "type": "string"
          },
          "timeout": {
            "default": 10000,
            "description": "timeout in milliseconds",
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "endpoint",
          "region_id",
          "access_key_id",
          "access_key_secret"
        ],
        "type": "object"
      },
      "priority": 1029
    }
  }
}
Complete operation details and schema variants

GET /apisix/admin/plugins

Get all plugin schemas and priorities

Parameters

  • subsystem (query, string, optional): Type to filter the plugin list. http will only show L7 plugins and stream will only show L4 plugins.

Responses

  • 200: Successfully retrieved the detailed plugin schemas including configuration options.
  • allOf variant 1
  • value (object, optional): The specific resource.
  • allOf variant 2
  • value (object, optional):
  • value.*.schema (object, optional):
  • value.*.consumer_schema (object, optional):
  • value.*.metadata_schema (object, optional):
  • value.*.type (string, optional):
  • value.*.scope (string, optional):
  • value.*.priority (integer, optional):
  • 400: Bad Request — The request was malformed or contained invalid parameters. Check the error_msg field for details.
  • value (object, optional): The specific resource.
  • error_msg (string, optional): The error message.

cURL

curl -X GET '$API_BASE_URL/apisix/admin/plugins'