API7 Docs

List Plugin Attributes

GET /apisix/admin/plugins

GET /apisix/admin/plugins

Interactive request editor loads with JavaScript.

Authorization

X-API-KEY<token>

Admin API key configured in config.yaml under deployment.admin.admin_key. You can also pass the key as a query parameter api_key or cookie x_api_key.

In: header

Query Parameters

all*"true"
Deprecated

Deprecated. When true, return the full plugin catalog.

Value in

  • "true"
subsystem?string

Plugin subsystem.

Default"http"

Value in

  • "http"
  • "stream"

Response Body

application/json

application/json

application/json

curl -X GET "http://127.0.0.1:9180/apisix/admin/plugins?all=true"

Successful response.

{
  "limit-conn": {
    "priority": 1003,
    "version": 0.1,
    "schema": {
      "type": "object",
      "$comment": "this is a mark for our injected plugin schema",
      "required": [
        "conn",
        "burst",
        "default_conn_delay",
        "key"
      ],
      "properties": {
        "only_use_default_delay": {
          "type": "boolean",
          "default": false
        },
        "conn": {
          "type": "integer",
          "exclusiveMinimum": 0
        },
        "burst": {
          "type": "integer",
          "minimum": 0
        },
        "key_type": {
          "type": "string",
          "enum": [
            "var",
            "var_combination"
          ],
          "default": "var"
        },
        "_meta": {
          "type": "object",
          "properties": {
            "filter": {
              "type": "array",
              "description": "filter determines whether the plugin needs to be executed at runtime",
              "items": {}
            },
            "error_response": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "object"
                }
              ]
            },
            "priority": {
              "type": "integer",
              "description": "priority of plugins by customized order"
            },
            "disable": {
              "type": "boolean"
            }
          }
        },
        "key": {
          "type": "string"
        },
        "default_conn_delay": {
          "type": "number",
          "exclusiveMinimum": 0
        }
      }
    }
  },
  "syslog": {
    "schema": {
      "type": "object",
      "$comment": "this is a mark for our injected plugin schema",
      "required": [
        "host",
        "port"
      ],
      "properties": {
        "_meta": {
          "type": "object",
          "properties": {
            "filter": {
              "type": "array",
              "description": "filter determines whether the plugin needs to be executed at runtime",
              "items": {}
            },
            "error_response": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "object"
                }
              ]
            },
            "priority": {
              "type": "integer",
              "description": "priority of plugins by customized order"
            },
            "disable": {
              "type": "boolean"
            }
          }
        },
        "host": {
          "type": "string"
        },
        "max_retry_count": {
          "type": "integer",
          "default": 0,
          "minimum": 0
        },
        "drop_limit": {
          "type": "integer",
          "default": 1048576
        },
        "flush_limit": {
          "type": "integer",
          "default": 4096,
          "minimum": 1
        },
        "pool_size": {
          "type": "integer",
          "default": 5,
          "minimum": 5
        },
        "sock_type": {
          "type": "string",
          "default": "tcp",
          "enum": [
            "tcp",
            "udp"
          ]
        },
        "buffer_duration": {
          "type": "integer",
          "default": 60,
          "minimum": 1
        },
        "retry_delay": {
          "type": "integer",
          "default": 1,
          "minimum": 0
        },
        "tls": {
          "type": "boolean",
          "default": false
        },
        "name": {
          "type": "string",
          "default": "stream sys logger"
        },
        "log_format": {
          "type": "object"
        },
        "batch_max_size": {
          "type": "integer",
          "default": 1000,
          "minimum": 1
        },
        "timeout": {
          "type": "integer",
          "default": 3000,
          "minimum": 1
        },
        "inactive_timeout": {
          "type": "integer",
          "default": 5,
          "minimum": 1
        },
        "port": {
          "type": "integer"
        }
      }
    },
    "priority": 401,
    "version": 0.1,
    "metadata_schema": {
      "type": "object",
      "properties": {
        "log_format": {
          "type": "object",
          "default": {
            "@timestamp": "$time_iso8601",
            "host": "$host",
            "client_ip": "$remote_addr"
          }
        }
      }
    }
  },
  "ip-restriction": {
    "priority": 3000,
    "version": 0.1,
    "schema": {
      "type": "object",
      "oneOf": [
        {
          "required": [
            "whitelist"
          ]
        },
        {
          "required": [
            "blacklist"
          ]
        }
      ],
      "$comment": "this is a mark for our injected plugin schema",
      "properties": {
        "message": {
          "type": "string",
          "minLength": 1,
          "maxLength": 1024,
          "default": "Your IP address is not allowed"
        },
        "_meta": {
          "type": "object",
          "properties": {
            "filter": {
              "type": "array",
              "description": "filter determines whether the plugin needs to be executed at runtime",
              "items": {}
            },
            "error_response": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "object"
                }
              ]
            },
            "priority": {
              "type": "integer",
              "description": "priority of plugins by customized order"
            },
            "disable": {
              "type": "boolean"
            }
          }
        },
        "blacklist": {
          "type": "array",
          "minItems": 1,
          "items": {
            "anyOf": [
              {
                "type": "string",
                "format": "ipv4",
                "title": "IPv4"
              },
              {
                "type": "string",
                "pattern": "^([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])/([12]?[0-9]|3[0-2])$",
                "title": "IPv4/CIDR"
              },
              {
                "type": "string",
                "format": "ipv6",
                "title": "IPv6"
              },
              {
                "type": "string",
                "pattern": "^([a-fA-F0-9]{0,4}:){1,8}(:[a-fA-F0-9]{0,4}){0,8}([a-fA-F0-9]{0,4})?/[0-9]{1,3}$",
                "title": "IPv6/CIDR"
              }
            ]
          }
        },
        "whitelist": {
          "type": "array",
          "minItems": 1,
          "items": {
            "anyOf": [
              {
                "type": "string",
                "format": "ipv4",
                "title": "IPv4"
              },
              {
                "type": "string",
                "pattern": "^([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])/([12]?[0-9]|3[0-2])$",
                "title": "IPv4/CIDR"
              },
              {
                "type": "string",
                "format": "ipv6",
                "title": "IPv6"
              },
              {
                "type": "string",
                "pattern": "^([a-fA-F0-9]{0,4}:){1,8}(:[a-fA-F0-9]{0,4}){0,8}([a-fA-F0-9]{0,4})?/[0-9]{1,3}$",
                "title": "IPv6/CIDR"
              }
            ]
          }
        }
      }
    }
  },
  "mqtt-proxy": {
    "priority": 1000,
    "version": 0.1,
    "schema": {
      "type": "object",
      "$comment": "this is a mark for our injected plugin schema",
      "required": [
        "protocol_name",
        "protocol_level"
      ],
      "properties": {
        "_meta": {
          "type": "object",
          "properties": {
            "filter": {
              "type": "array",
              "description": "filter determines whether the plugin needs to be executed at runtime",
              "items": {}
            },
            "error_response": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "object"
                }
              ]
            },
            "priority": {
              "type": "integer",
              "description": "priority of plugins by customized order"
            },
            "disable": {
              "type": "boolean"
            }
          }
        },
        "protocol_name": {
          "type": "string"
        },
        "protocol_level": {
          "type": "integer"
        }
      }
    }
  }
}
Complete operation details and schema variants

GET /apisix/admin/plugins

List Plugin Attributes

Get attributes of all plugins configured on the APISIX instance.

Deprecated: This endpoint is being replaced. Use GET /plugins/list and GET /plugins/{plugin_name} instead.

Parameters

  • all (query, string, required): Deprecated. When true, return the full plugin catalog.
  • subsystem (query, string, optional): Plugin subsystem.

Responses

  • 200: Successful response.
  • plugin_name (object, optional): Plugin configuration and metadata.
  • plugin_name.version (number, optional): Plugin schema version number.
  • plugin_name.schema (object, optional): JSON Schema defining the plugin configuration structure.
  • plugin_name.schema.required (array, optional): Required fields for the plugin.
  • plugin_name.schema.type (string, optional): JSON Schema type definition.
  • plugin_name.schema.$comment (string, optional): Comment metadata for the schema.
  • plugin_name.schema.properties (object, optional): Plugin properties.
  • plugin_name.priority (integer, optional): Execution priority of the plugin.
  • 400: Bad Request — The request body is invalid or missing required fields.
  • error_msg (string, required): Human-readable error message describing what went wrong.
  • 401: Unauthorized — The API key is missing, invalid, or lacks permission.
  • error_msg (string, required): Authentication error message.
  • description (string, optional): Detailed reason for the authentication failure.

cURL

curl -X GET 'http://127.0.0.1:9180/apisix/admin/plugins'