openapi: 3.1.0 info: title: Apache APISIX Admin API description: >- The Apache APISIX Admin API provides a RESTful interface to dynamically control and configure your deployed Apache APISIX instance. It allows management of routes, services, upstreams, consumers, SSL certificates, global rules, plugin configurations, consumer groups, secrets, and more. By default, the Admin API listens on port 9180 and requires API key authentication via the X-API-KEY header. version: 3.14.0 contact: name: Apache APISIX url: https://apisix.apache.org license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0.html servers: - url: http://127.0.0.1:9180/apisix/admin description: Default local Admin API server security: - apiKey: [] paths: /routes: get: operationId: listRoutes summary: Apache APISIX List All Routes description: Fetches a list of all configured routes. tags: - Routes responses: '200': description: Successful response with list of routes. content: application/json: schema: $ref: '#/components/schemas/ResourceList' post: operationId: createRoute summary: Apache APISIX Create a Route description: Creates a new route with a server-generated ID. tags: - Routes requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Route' responses: '201': description: Route created successfully. content: application/json: schema: $ref: '#/components/schemas/ResourceCreated' /routes/{route_id}: get: operationId: getRoute summary: Apache APISIX Get a Route description: Fetches the specified route by its ID. tags: - Routes parameters: - $ref: '#/components/parameters/RouteId' responses: '200': description: Successful response with route details. content: application/json: schema: $ref: '#/components/schemas/ResourceResponse' '404': description: Route not found. put: operationId: createOrUpdateRoute summary: Apache APISIX Create or Update a Route description: Creates a route with the specified ID, or updates it if it already exists. tags: - Routes parameters: - $ref: '#/components/parameters/RouteId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Route' responses: '200': description: Route updated successfully. content: application/json: schema: $ref: '#/components/schemas/ResourceResponse' '201': description: Route created successfully. content: application/json: schema: $ref: '#/components/schemas/ResourceCreated' patch: operationId: patchRoute summary: Apache APISIX Patch a Route description: Updates partial attributes of the specified route. tags: - Routes parameters: - $ref: '#/components/parameters/RouteId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Route' responses: '200': description: Route patched successfully. content: application/json: schema: $ref: '#/components/schemas/ResourceResponse' '404': description: Route not found. delete: operationId: deleteRoute summary: Apache APISIX Delete a Route description: Removes the specified route. tags: - Routes parameters: - $ref: '#/components/parameters/RouteId' responses: '200': description: Route deleted successfully. '404': description: Route not found. /services: get: operationId: listServices summary: Apache APISIX List All Services description: Fetches a list of all configured services. tags: [] responses: '200': description: Successful response with list of services. content: application/json: schema: $ref: '#/components/schemas/ResourceList' post: operationId: createService summary: Apache APISIX Create a Service description: Creates a new service with a server-generated ID. tags: [] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Service' responses: '201': description: Service created successfully. content: application/json: schema: $ref: '#/components/schemas/ResourceCreated' /services/{service_id}: get: operationId: getService summary: Apache APISIX Get a Service description: Fetches the specified service by its ID. tags: [] parameters: - $ref: '#/components/parameters/ServiceId' responses: '200': description: Successful response with service details. content: application/json: schema: $ref: '#/components/schemas/ResourceResponse' '404': description: Service not found. put: operationId: createOrUpdateService summary: Apache APISIX Create or Update a Service description: Creates a service with the specified ID, or updates it if it already exists. tags: [] parameters: - $ref: '#/components/parameters/ServiceId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Service' responses: '200': description: Service updated successfully. content: application/json: schema: $ref: '#/components/schemas/ResourceResponse' '201': description: Service created successfully. content: application/json: schema: $ref: '#/components/schemas/ResourceCreated' patch: operationId: patchService summary: Apache APISIX Patch a Service description: Updates partial attributes of the specified service. tags: [] parameters: - $ref: '#/components/parameters/ServiceId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Service' responses: '200': description: Service patched successfully. content: application/json: schema: $ref: '#/components/schemas/ResourceResponse' '404': description: Service not found. delete: operationId: deleteService summary: Apache APISIX Delete a Service description: Removes the specified service. tags: [] parameters: - $ref: '#/components/parameters/ServiceId' responses: '200': description: Service deleted successfully. '404': description: Service not found. /upstreams: get: operationId: listUpstreams summary: Apache APISIX List All Upstreams description: Fetches a list of all configured upstreams. tags: - Upstreams responses: '200': description: Successful response with list of upstreams. content: application/json: schema: $ref: '#/components/schemas/ResourceList' post: operationId: createUpstream summary: Apache APISIX Create an Upstream description: Creates a new upstream with a server-generated ID. tags: - Upstreams requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Upstream' responses: '201': description: Upstream created successfully. content: application/json: schema: $ref: '#/components/schemas/ResourceCreated' /upstreams/{upstream_id}: get: operationId: getUpstream summary: Apache APISIX Get an Upstream description: Fetches the specified upstream by its ID. tags: - Upstreams parameters: - $ref: '#/components/parameters/UpstreamId' responses: '200': description: Successful response with upstream details. content: application/json: schema: $ref: '#/components/schemas/ResourceResponse' '404': description: Upstream not found. put: operationId: createOrUpdateUpstream summary: Apache APISIX Create or Update an Upstream description: Creates an upstream with the specified ID, or updates it if it already exists. tags: - Upstreams parameters: - $ref: '#/components/parameters/UpstreamId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Upstream' responses: '200': description: Upstream updated successfully. content: application/json: schema: $ref: '#/components/schemas/ResourceResponse' '201': description: Upstream created successfully. content: application/json: schema: $ref: '#/components/schemas/ResourceCreated' patch: operationId: patchUpstream summary: Apache APISIX Patch an Upstream description: Updates partial attributes of the specified upstream. tags: - Upstreams parameters: - $ref: '#/components/parameters/UpstreamId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Upstream' responses: '200': description: Upstream patched successfully. content: application/json: schema: $ref: '#/components/schemas/ResourceResponse' '404': description: Upstream not found. delete: operationId: deleteUpstream summary: Apache APISIX Delete an Upstream description: Removes the specified upstream. tags: - Upstreams parameters: - $ref: '#/components/parameters/UpstreamId' responses: '200': description: Upstream deleted successfully. '404': description: Upstream not found. /consumers: get: operationId: listConsumers summary: Apache APISIX List All Consumers description: Fetches a list of all configured consumers. tags: - Consumers responses: '200': description: Successful response with list of consumers. content: application/json: schema: $ref: '#/components/schemas/ResourceList' /consumers/{username}: get: operationId: getConsumer summary: Apache APISIX Get a Consumer description: Fetches the specified consumer by username. tags: - Consumers parameters: - $ref: '#/components/parameters/ConsumerUsername' responses: '200': description: Successful response with consumer details. content: application/json: schema: $ref: '#/components/schemas/ResourceResponse' '404': description: Consumer not found. put: operationId: createOrUpdateConsumer summary: Apache APISIX Create or Update a Consumer description: Creates a consumer with the specified username, or updates it if it already exists. tags: - Consumers parameters: - $ref: '#/components/parameters/ConsumerUsername' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Consumer' responses: '200': description: Consumer updated successfully. content: application/json: schema: $ref: '#/components/schemas/ResourceResponse' '201': description: Consumer created successfully. content: application/json: schema: $ref: '#/components/schemas/ResourceCreated' delete: operationId: deleteConsumer summary: Apache APISIX Delete a Consumer description: Removes the specified consumer. tags: - Consumers parameters: - $ref: '#/components/parameters/ConsumerUsername' responses: '200': description: Consumer deleted successfully. '404': description: Consumer not found. /consumers/{username}/credentials: get: operationId: listConsumerCredentials summary: Apache APISIX List Consumer Credentials description: Fetches all credentials for the specified consumer. tags: - Consumers parameters: - $ref: '#/components/parameters/ConsumerUsername' responses: '200': description: Successful response with list of credentials. content: application/json: schema: $ref: '#/components/schemas/ResourceList' /consumers/{username}/credentials/{credential_id}: get: operationId: getConsumerCredential summary: Apache APISIX Get a Consumer Credential description: Fetches a specific credential for the specified consumer. tags: - Consumers parameters: - $ref: '#/components/parameters/ConsumerUsername' - $ref: '#/components/parameters/CredentialId' responses: '200': description: Successful response with credential details. content: application/json: schema: $ref: '#/components/schemas/ResourceResponse' '404': description: Credential not found. put: operationId: createOrUpdateConsumerCredential summary: Apache APISIX Create or Update a Consumer Credential description: Creates or updates a credential for the specified consumer. tags: - Consumers parameters: - $ref: '#/components/parameters/ConsumerUsername' - $ref: '#/components/parameters/CredentialId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Credential' responses: '200': description: Credential updated successfully. content: application/json: schema: $ref: '#/components/schemas/ResourceResponse' '201': description: Credential created successfully. content: application/json: schema: $ref: '#/components/schemas/ResourceCreated' patch: operationId: patchConsumerCredential summary: Apache APISIX Patch a Consumer Credential description: Updates partial attributes of a credential for the specified consumer. tags: - Consumers parameters: - $ref: '#/components/parameters/ConsumerUsername' - $ref: '#/components/parameters/CredentialId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Credential' responses: '200': description: Credential patched successfully. content: application/json: schema: $ref: '#/components/schemas/ResourceResponse' delete: operationId: deleteConsumerCredential summary: Apache APISIX Delete a Consumer Credential description: Removes a specific credential for the specified consumer. tags: - Consumers parameters: - $ref: '#/components/parameters/ConsumerUsername' - $ref: '#/components/parameters/CredentialId' responses: '200': description: Credential deleted successfully. '404': description: Credential not found. /consumer_groups: get: operationId: listConsumerGroups summary: Apache APISIX List All Consumer Groups description: Fetches a list of all configured consumer groups. tags: - Consumer Groups responses: '200': description: Successful response with list of consumer groups. content: application/json: schema: $ref: '#/components/schemas/ResourceList' /consumer_groups/{group_id}: get: operationId: getConsumerGroup summary: Apache APISIX Get a Consumer Group description: Fetches the specified consumer group by its ID. tags: - Consumer Groups parameters: - $ref: '#/components/parameters/ConsumerGroupId' responses: '200': description: Successful response with consumer group details. content: application/json: schema: $ref: '#/components/schemas/ResourceResponse' '404': description: Consumer group not found. put: operationId: createOrUpdateConsumerGroup summary: Apache APISIX Create or Update a Consumer Group description: Creates a consumer group with the specified ID, or updates it if it already exists. tags: - Consumer Groups parameters: - $ref: '#/components/parameters/ConsumerGroupId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ConsumerGroup' responses: '200': description: Consumer group updated successfully. content: application/json: schema: $ref: '#/components/schemas/ResourceResponse' '201': description: Consumer group created successfully. content: application/json: schema: $ref: '#/components/schemas/ResourceCreated' patch: operationId: patchConsumerGroup summary: Apache APISIX Patch a Consumer Group description: Updates partial attributes of the specified consumer group. tags: - Consumer Groups parameters: - $ref: '#/components/parameters/ConsumerGroupId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ConsumerGroup' responses: '200': description: Consumer group patched successfully. content: application/json: schema: $ref: '#/components/schemas/ResourceResponse' delete: operationId: deleteConsumerGroup summary: Apache APISIX Delete a Consumer Group description: Removes the specified consumer group. tags: - Consumer Groups parameters: - $ref: '#/components/parameters/ConsumerGroupId' responses: '200': description: Consumer group deleted successfully. '404': description: Consumer group not found. /ssls: get: operationId: listSSLs summary: Apache APISIX List All SSL Certificates description: Fetches a list of all configured SSL certificate resources. tags: - SSL responses: '200': description: Successful response with list of SSL certificates. content: application/json: schema: $ref: '#/components/schemas/ResourceList' /ssls/{ssl_id}: get: operationId: getSSL summary: Apache APISIX Get an SSL Certificate description: Fetches the specified SSL certificate resource by its ID. tags: - SSL parameters: - $ref: '#/components/parameters/SSLId' responses: '200': description: Successful response with SSL certificate details. content: application/json: schema: $ref: '#/components/schemas/ResourceResponse' '404': description: SSL certificate not found. put: operationId: createOrUpdateSSL summary: Apache APISIX Create or Update an SSL Certificate description: Creates an SSL certificate with the specified ID, or updates it if it already exists. tags: - SSL parameters: - $ref: '#/components/parameters/SSLId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SSL' responses: '200': description: SSL certificate updated successfully. content: application/json: schema: $ref: '#/components/schemas/ResourceResponse' '201': description: SSL certificate created successfully. content: application/json: schema: $ref: '#/components/schemas/ResourceCreated' patch: operationId: patchSSL summary: Apache APISIX Patch an SSL Certificate description: Updates partial attributes of the specified SSL certificate. tags: - SSL parameters: - $ref: '#/components/parameters/SSLId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SSL' responses: '200': description: SSL certificate patched successfully. content: application/json: schema: $ref: '#/components/schemas/ResourceResponse' delete: operationId: deleteSSL summary: Apache APISIX Delete an SSL Certificate description: Removes the specified SSL certificate. tags: - SSL parameters: - $ref: '#/components/parameters/SSLId' responses: '200': description: SSL certificate deleted successfully. '404': description: SSL certificate not found. /global_rules: get: operationId: listGlobalRules summary: Apache APISIX List All Global Rules description: Fetches a list of all configured global plugin rules. tags: - Global Rules responses: '200': description: Successful response with list of global rules. content: application/json: schema: $ref: '#/components/schemas/ResourceList' /global_rules/{rule_id}: get: operationId: getGlobalRule summary: Apache APISIX Get a Global Rule description: Fetches the specified global rule by its ID. tags: - Global Rules parameters: - $ref: '#/components/parameters/GlobalRuleId' responses: '200': description: Successful response with global rule details. content: application/json: schema: $ref: '#/components/schemas/ResourceResponse' '404': description: Global rule not found. put: operationId: createOrUpdateGlobalRule summary: Apache APISIX Create or Update a Global Rule description: Creates a global rule with the specified ID, or updates it if it already exists. tags: - Global Rules parameters: - $ref: '#/components/parameters/GlobalRuleId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/GlobalRule' responses: '200': description: Global rule updated successfully. content: application/json: schema: $ref: '#/components/schemas/ResourceResponse' '201': description: Global rule created successfully. content: application/json: schema: $ref: '#/components/schemas/ResourceCreated' patch: operationId: patchGlobalRule summary: Apache APISIX Patch a Global Rule description: Updates partial attributes of the specified global rule. tags: - Global Rules parameters: - $ref: '#/components/parameters/GlobalRuleId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/GlobalRule' responses: '200': description: Global rule patched successfully. content: application/json: schema: $ref: '#/components/schemas/ResourceResponse' delete: operationId: deleteGlobalRule summary: Apache APISIX Delete a Global Rule description: Removes the specified global rule. tags: - Global Rules parameters: - $ref: '#/components/parameters/GlobalRuleId' responses: '200': description: Global rule deleted successfully. '404': description: Global rule not found. /plugin_configs: get: operationId: listPluginConfigs summary: Apache APISIX List All Plugin Configs description: Fetches a list of all configured plugin config resources. tags: - Plugin Configs responses: '200': description: Successful response with list of plugin configs. content: application/json: schema: $ref: '#/components/schemas/ResourceList' /plugin_configs/{config_id}: get: operationId: getPluginConfig summary: Apache APISIX Get a Plugin Config description: Fetches the specified plugin config by its ID. tags: - Plugin Configs parameters: - $ref: '#/components/parameters/PluginConfigId' responses: '200': description: Successful response with plugin config details. content: application/json: schema: $ref: '#/components/schemas/ResourceResponse' '404': description: Plugin config not found. put: operationId: createOrUpdatePluginConfig summary: Apache APISIX Create or Update a Plugin Config description: Creates a plugin config with the specified ID, or updates it if it already exists. tags: - Plugin Configs parameters: - $ref: '#/components/parameters/PluginConfigId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PluginConfig' responses: '200': description: Plugin config updated successfully. content: application/json: schema: $ref: '#/components/schemas/ResourceResponse' '201': description: Plugin config created successfully. content: application/json: schema: $ref: '#/components/schemas/ResourceCreated' patch: operationId: patchPluginConfig summary: Apache APISIX Patch a Plugin Config description: Updates partial attributes of the specified plugin config. tags: - Plugin Configs parameters: - $ref: '#/components/parameters/PluginConfigId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PluginConfig' responses: '200': description: Plugin config patched successfully. content: application/json: schema: $ref: '#/components/schemas/ResourceResponse' delete: operationId: deletePluginConfig summary: Apache APISIX Delete a Plugin Config description: Removes the specified plugin config. tags: - Plugin Configs parameters: - $ref: '#/components/parameters/PluginConfigId' responses: '200': description: Plugin config deleted successfully. '404': description: Plugin config not found. /plugin_metadata/{plugin_name}: get: operationId: getPluginMetadata summary: Apache APISIX Get Plugin Metadata description: Fetches metadata for the specified plugin. tags: - Plugin Metadata parameters: - $ref: '#/components/parameters/PluginName' responses: '200': description: Successful response with plugin metadata. content: application/json: schema: $ref: '#/components/schemas/ResourceResponse' '404': description: Plugin metadata not found. put: operationId: createOrUpdatePluginMetadata summary: Apache APISIX Create or Update Plugin Metadata description: Creates or updates metadata for the specified plugin. tags: - Plugin Metadata parameters: - $ref: '#/components/parameters/PluginName' requestBody: required: true content: application/json: schema: type: object description: Plugin-specific metadata configuration. responses: '200': description: Plugin metadata updated successfully. content: application/json: schema: $ref: '#/components/schemas/ResourceResponse' '201': description: Plugin metadata created successfully. content: application/json: schema: $ref: '#/components/schemas/ResourceCreated' delete: operationId: deletePluginMetadata summary: Apache APISIX Delete Plugin Metadata description: Removes metadata for the specified plugin. tags: - Plugin Metadata parameters: - $ref: '#/components/parameters/PluginName' responses: '200': description: Plugin metadata deleted successfully. '404': description: Plugin metadata not found. /plugins: get: operationId: listPlugins summary: Apache APISIX List All Plugins description: Fetches a list of all available plugins on the APISIX instance. tags: - Plugins parameters: - name: subsystem in: query description: Filter plugins by subsystem (http or stream). schema: type: string enum: - http - stream responses: '200': description: Successful response with list of plugin names. content: application/json: schema: type: array items: type: string /plugins/{plugin_name}: get: operationId: getPluginSchema summary: Apache APISIX Get Plugin Schema description: Fetches the JSON Schema of the specified plugin. tags: - Plugins parameters: - $ref: '#/components/parameters/PluginName' responses: '200': description: Successful response with plugin JSON Schema. content: application/json: schema: type: object '404': description: Plugin not found. /protos: get: operationId: listProtos summary: Apache APISIX List All Protos description: Fetches a list of all configured Protocol Buffer definition resources. tags: - Protos responses: '200': description: Successful response with list of protos. content: application/json: schema: $ref: '#/components/schemas/ResourceList' /protos/{proto_id}: get: operationId: getProto summary: Apache APISIX Get a Proto description: Fetches the specified Protocol Buffer definition by its ID. tags: - Protos parameters: - $ref: '#/components/parameters/ProtoId' responses: '200': description: Successful response with proto details. content: application/json: schema: $ref: '#/components/schemas/ResourceResponse' '404': description: Proto not found. put: operationId: createOrUpdateProto summary: Apache APISIX Create or Update a Proto description: Creates a proto with the specified ID, or updates it if it already exists. tags: - Protos parameters: - $ref: '#/components/parameters/ProtoId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Proto' responses: '200': description: Proto updated successfully. content: application/json: schema: $ref: '#/components/schemas/ResourceResponse' '201': description: Proto created successfully. content: application/json: schema: $ref: '#/components/schemas/ResourceCreated' delete: operationId: deleteProto summary: Apache APISIX Delete a Proto description: Removes the specified Protocol Buffer definition. tags: - Protos parameters: - $ref: '#/components/parameters/ProtoId' responses: '200': description: Proto deleted successfully. '404': description: Proto not found. /stream_routes: get: operationId: listStreamRoutes summary: Apache APISIX List All Stream Routes description: Fetches a list of all configured stream (Layer 4) routes. tags: - Stream Routes responses: '200': description: Successful response with list of stream routes. content: application/json: schema: $ref: '#/components/schemas/ResourceList' /stream_routes/{route_id}: get: operationId: getStreamRoute summary: Apache APISIX Get a Stream Route description: Fetches the specified stream route by its ID. tags: - Stream Routes parameters: - $ref: '#/components/parameters/StreamRouteId' responses: '200': description: Successful response with stream route details. content: application/json: schema: $ref: '#/components/schemas/ResourceResponse' '404': description: Stream route not found. put: operationId: createOrUpdateStreamRoute summary: Apache APISIX Create or Update a Stream Route description: Creates a stream route with the specified ID, or updates it if it already exists. tags: - Stream Routes parameters: - $ref: '#/components/parameters/StreamRouteId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/StreamRoute' responses: '200': description: Stream route updated successfully. content: application/json: schema: $ref: '#/components/schemas/ResourceResponse' '201': description: Stream route created successfully. content: application/json: schema: $ref: '#/components/schemas/ResourceCreated' delete: operationId: deleteStreamRoute summary: Apache APISIX Delete a Stream Route description: Removes the specified stream route. tags: - Stream Routes parameters: - $ref: '#/components/parameters/StreamRouteId' responses: '200': description: Stream route deleted successfully. '404': description: Stream route not found. /secrets/{secret_manager}/{secret_id}: get: operationId: getSecret summary: Apache APISIX Get a Secret description: Fetches the specified secret resource from the given secret manager. tags: - Secrets parameters: - $ref: '#/components/parameters/SecretManager' - $ref: '#/components/parameters/SecretId' responses: '200': description: Successful response with secret details. content: application/json: schema: $ref: '#/components/schemas/ResourceResponse' '404': description: Secret not found. put: operationId: createOrUpdateSecret summary: Apache APISIX Create or Update a Secret description: Creates a secret with the specified ID in the given manager, or updates it if it already exists. tags: - Secrets parameters: - $ref: '#/components/parameters/SecretManager' - $ref: '#/components/parameters/SecretId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Secret' responses: '200': description: Secret updated successfully. content: application/json: schema: $ref: '#/components/schemas/ResourceResponse' '201': description: Secret created successfully. content: application/json: schema: $ref: '#/components/schemas/ResourceCreated' patch: operationId: patchSecret summary: Apache APISIX Patch a Secret description: Updates partial attributes of the specified secret. tags: - Secrets parameters: - $ref: '#/components/parameters/SecretManager' - $ref: '#/components/parameters/SecretId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Secret' responses: '200': description: Secret patched successfully. content: application/json: schema: $ref: '#/components/schemas/ResourceResponse' delete: operationId: deleteSecret summary: Apache APISIX Delete a Secret description: Removes the specified secret resource. tags: - Secrets parameters: - $ref: '#/components/parameters/SecretManager' - $ref: '#/components/parameters/SecretId' responses: '200': description: Secret deleted successfully. '404': description: Secret not found. /schema/validate/{resource}: post: operationId: validateSchema summary: Apache APISIX Validate Resource Schema description: Validates the given request body against the schema of the specified resource type. tags: - Schema parameters: - name: resource in: path required: true description: The resource type to validate against (e.g. routes, services, upstreams). schema: type: string requestBody: required: true content: application/json: schema: type: object description: The resource configuration to validate. responses: '200': description: Validation successful. '400': description: Validation failed with error details. content: application/json: schema: type: object properties: error_msg: type: string description: Validation error message. components: securitySchemes: apiKey: type: apiKey in: header name: X-API-KEY description: Admin API key for authentication. parameters: RouteId: name: route_id in: path required: true description: Unique identifier of the route. schema: type: string ServiceId: name: service_id in: path required: true description: Unique identifier of the service. schema: type: string UpstreamId: name: upstream_id in: path required: true description: Unique identifier of the upstream. schema: type: string ConsumerUsername: name: username in: path required: true description: Username of the consumer. schema: type: string CredentialId: name: credential_id in: path required: true description: Unique identifier of the credential. schema: type: string ConsumerGroupId: name: group_id in: path required: true description: Unique identifier of the consumer group. schema: type: string SSLId: name: ssl_id in: path required: true description: Unique identifier of the SSL certificate resource. schema: type: string GlobalRuleId: name: rule_id in: path required: true description: Unique identifier of the global rule. schema: type: string PluginConfigId: name: config_id in: path required: true description: Unique identifier of the plugin config. schema: type: string PluginName: name: plugin_name in: path required: true description: Name of the plugin. schema: type: string ProtoId: name: proto_id in: path required: true description: Unique identifier of the proto resource. schema: type: string StreamRouteId: name: route_id in: path required: true description: Unique identifier of the stream route. schema: type: string SecretManager: name: secret_manager in: path required: true description: The secret manager type (e.g. vault, aws). schema: type: string SecretId: name: secret_id in: path required: true description: Unique identifier of the secret. schema: type: string schemas: Route: type: object description: >- A Route defines rules to match client requests and specifies how to handle matched requests, including plugins and upstream configurations. properties: uri: type: string description: The request URI path. Supports path prefixes with wildcard. uris: type: array items: type: string description: A list of URIs for the route to match. name: type: string description: Human-readable name for the route. desc: type: string description: Description of the route. host: type: string description: Host to match for the route. hosts: type: array items: type: string description: A list of hosts for the route to match. methods: type: array items: type: string enum: - GET - POST - PUT - DELETE - PATCH - HEAD - OPTIONS - CONNECT - TRACE description: HTTP methods to match. remote_addr: type: string description: Client IP address to match. remote_addrs: type: array items: type: string description: A list of client IP addresses to match. vars: type: array description: DSL expressions for matching request attributes. priority: type: integer default: 0 description: Route priority for matching order. Higher value means higher priority. plugins: type: object description: Plugin configuration. Key is the plugin name and value is the plugin config. upstream: $ref: '#/components/schemas/Upstream' upstream_id: type: string description: ID of an existing upstream to use. service_id: type: string description: ID of an existing service to bind to. plugin_config_id: type: string description: ID of a plugin config to bind to. labels: type: object additionalProperties: type: string description: Key-value pairs for categorization. timeout: $ref: '#/components/schemas/Timeout' enable_websocket: type: boolean description: Enable WebSocket proxying. status: type: integer enum: - 0 - 1 default: 1 description: Route status. 1 for enabled, 0 for disabled. filter_func: type: string description: A Lua function string for custom filtering logic. Service: type: object description: >- A Service is an abstraction of an API and corresponds to an upstream service. It can be shared across routes. properties: name: type: string description: Human-readable name for the service. desc: type: string description: Description of the service. plugins: type: object description: Plugin configuration. Key is the plugin name and value is the plugin config. upstream: $ref: '#/components/schemas/Upstream' upstream_id: type: string description: ID of an existing upstream to use. labels: type: object additionalProperties: type: string description: Key-value pairs for categorization. enable_websocket: type: boolean description: Enable WebSocket proxying. hosts: type: array items: type: string description: A list of hosts for the service. Upstream: type: object description: >- An Upstream is a virtual host abstraction that performs load balancing on a given set of service nodes according to configured rules. properties: name: type: string description: Human-readable name for the upstream. desc: type: string description: Description of the upstream. type: type: string enum: - roundrobin - chash - least_conn - ewma default: roundrobin description: Load balancing algorithm. nodes: oneOf: - type: object additionalProperties: type: integer description: 'Key-value pairs of address:port to weight.' - type: array items: type: object properties: host: type: string port: type: integer weight: type: integer priority: type: integer default: 0 description: List of node objects. description: Backend service nodes. service_name: type: string description: Service name for service discovery. discovery_type: type: string description: Type of service discovery (e.g. dns, consul, nacos, eureka). hash_on: type: string enum: - vars - header - cookie - consumer - vars_combinations default: vars description: Hash input for consistent hashing load balancer. key: type: string description: Hash key when using chash load balancer. checks: type: object description: Health check configuration. properties: active: type: object description: Active health check configuration. properties: type: type: string enum: - http - https - tcp default: http timeout: type: number default: 1 http_path: type: string default: / host: type: string port: type: integer https_verify_certificate: type: boolean default: true healthy: type: object properties: interval: type: integer successes: type: integer unhealthy: type: object properties: interval: type: integer http_failures: type: integer tcp_failures: type: integer timeouts: type: integer passive: type: object description: Passive health check configuration. properties: type: type: string enum: - http - https - tcp default: http healthy: type: object properties: http_statuses: type: array items: type: integer successes: type: integer unhealthy: type: object properties: http_statuses: type: array items: type: integer http_failures: type: integer tcp_failures: type: integer timeouts: type: integer retries: type: integer description: Number of retries for failed requests. retry_timeout: type: number description: Timeout in seconds for retry requests. timeout: $ref: '#/components/schemas/Timeout' scheme: type: string enum: - http - https - grpc - grpcs default: http description: The scheme for communicating with the upstream. pass_host: type: string enum: - pass - node - rewrite default: pass description: How to set the Host header when proxying to upstream. upstream_host: type: string description: Host to use when pass_host is set to rewrite. labels: type: object additionalProperties: type: string description: Key-value pairs for categorization. keepalive_pool: type: object description: Keepalive pool configuration. properties: size: type: integer default: 320 idle_timeout: type: number default: 60 requests: type: integer default: 1000 tls: type: object description: TLS configuration for upstream connections. properties: client_cert: type: string description: Client certificate for mTLS. client_key: type: string description: Client private key for mTLS. Consumer: type: object description: A Consumer is an entity that consumes API services and is identified by a username. required: - username properties: username: type: string description: Unique username for the consumer. desc: type: string description: Description of the consumer. plugins: type: object description: Plugin configuration bound to this consumer. labels: type: object additionalProperties: type: string description: Key-value pairs for categorization. group_id: type: string description: ID of a consumer group this consumer belongs to. Credential: type: object description: A Credential contains authentication plugin configurations bound to a consumer. properties: desc: type: string description: Description of the credential. plugins: type: object description: Authentication plugin configuration. labels: type: object additionalProperties: type: string description: Key-value pairs for categorization. ConsumerGroup: type: object description: >- A Consumer Group is a set of plugins that can be applied to multiple consumers rather than configuring each consumer individually. properties: desc: type: string description: Description of the consumer group. plugins: type: object description: Plugin configuration shared among consumers in this group. labels: type: object additionalProperties: type: string description: Key-value pairs for categorization. SSL: type: object description: An SSL resource stores SSL certificates and keys for HTTPS traffic. required: - cert - key - snis properties: cert: type: string description: PEM-encoded SSL certificate. key: type: string description: PEM-encoded private key. certs: type: array items: type: string description: Additional PEM-encoded certificates for multiple certificates. keys: type: array items: type: string description: Additional PEM-encoded private keys. snis: type: array items: type: string description: Server Name Indication values to match. client: type: object description: mTLS client verification configuration. properties: ca: type: string description: PEM-encoded CA certificate for client verification. depth: type: integer default: 1 description: Maximum length of the client certificate chain. labels: type: object additionalProperties: type: string description: Key-value pairs for categorization. status: type: integer enum: - 0 - 1 default: 1 description: SSL status. 1 for enabled, 0 for disabled. type: type: string enum: - server - client default: server description: Identifies the type of certificate. GlobalRule: type: object description: >- A Global Rule applies plugin configurations to all requests processed by the APISIX instance. properties: plugins: type: object description: Plugin configuration to apply globally. PluginConfig: type: object description: >- A Plugin Config is a reusable set of plugin configurations that can be bound to routes. properties: desc: type: string description: Description of the plugin config. plugins: type: object description: Plugin configuration. labels: type: object additionalProperties: type: string description: Key-value pairs for categorization. Proto: type: object description: A Proto resource stores Protocol Buffer definitions used by the grpc-transcode plugin. required: - content properties: desc: type: string description: Description of the proto resource. content: type: string description: The Protocol Buffer definition content. StreamRoute: type: object description: A Stream Route is used for Layer 4 (TCP/UDP) traffic proxying. properties: desc: type: string description: Description of the stream route. remote_addr: type: string description: Client IP address to match. server_addr: type: string description: Server address to match. server_port: type: integer description: Server port to match. sni: type: string description: Server Name Indication value to match. plugins: type: object description: Plugin configuration for the stream route. upstream: $ref: '#/components/schemas/Upstream' upstream_id: type: string description: ID of an existing upstream to use. Secret: type: object description: >- A Secret resource manages integration with external secret managers such as HashiCorp Vault or AWS Secrets Manager. properties: uri: type: string description: URI of the secret manager endpoint. prefix: type: string description: Path prefix in the secret manager. token: type: string description: Authentication token for the secret manager. Timeout: type: object description: Timeout settings for upstream connections. properties: connect: type: number default: 60 description: Connection timeout in seconds. send: type: number default: 60 description: Send timeout in seconds. read: type: number default: 60 description: Read timeout in seconds. ResourceResponse: type: object description: Standard response wrapper for a single resource. properties: key: type: string description: The etcd key path for the resource. value: type: object description: The resource configuration. modifiedIndex: type: integer description: The etcd modification index. createdIndex: type: integer description: The etcd creation index. ResourceCreated: type: object description: Response wrapper for a newly created resource. properties: key: type: string description: The etcd key path for the created resource. value: type: object description: The created resource configuration. ResourceList: type: object description: Standard response wrapper for a list of resources. properties: list: type: array items: $ref: '#/components/schemas/ResourceResponse' description: Array of resource entries. total: type: integer description: Total count of resources. tags: - name: Consumer Groups description: Manage consumer groups for shared plugin configurations. - name: Consumers description: Manage API consumers and their credentials. - name: Global Rules description: Manage global plugin rules applied to all requests. - name: Plugin Configs description: Manage reusable plugin configuration sets. - name: Plugin Metadata description: Manage metadata for individual plugins. - name: Plugins description: Query available plugins and their schemas. - name: Protos description: Manage Protocol Buffer definition resources. - name: Routes description: Manage HTTP routes that define rules for matching client requests. - name: Schema description: Validate resource configurations against APISIX schemas. - name: Secrets description: Manage secrets from external secret managers. - name: SSL description: Manage SSL/TLS certificate resources. - name: Stream Routes description: Manage Layer 4 TCP/UDP stream routes. - name: Upstreams description: Manage upstream backend service definitions with load balancing.