Apache APISIX website screenshot

Apache APISIX

Apache APISIX is a dynamic, real-time, high-performance cloud-native API gateway built on NGINX and etcd, developed by the Apache Software Foundation. It supports Lua and multi-language plugins for traffic management, authentication, observability, and security. APISIX provides a RESTful Admin API for dynamic configuration of routes, upstreams, services, consumers, SSL certificates, and plugins, and a Control API for health monitoring and schema introspection.

3 APIs 10 Features
ApacheAPI GatewayCloud NativeKubernetesLuaNGINXOpen SourceTraffic Management

APIs

Apache APISIX Gateway

Apache APISIX provides rich traffic management features including load balancing, dynamic upstream configuration, canary releases, circuit breaking, authentication, observabilit...

Apache APISIX Admin API

The Apache APISIX Admin API provides a RESTful interface to dynamically control and configure a running APISIX instance. It supports management of routes, services, upstreams, c...

Apache APISIX Control API

The Apache APISIX Control API provides internal status and health check endpoints for monitoring and introspecting a running APISIX instance. It listens by default on port 9090,...

Collections

Pricing Plans

Rate Limits

Apache Apisix Rate Limits

5 limits

RATE LIMITS

FinOps

Features

Dynamic Route Configuration

Dynamically add, update, and delete routes without restarting via the Admin API and etcd-backed config.

Multi-Protocol Support

Supports HTTP, HTTPS, HTTP/2, gRPC, TCP, UDP, and WebSocket protocols for diverse API types.

Plugin Ecosystem

Rich plugin ecosystem for authentication (JWT, key-auth, OAuth2), rate limiting, transformations, and observability.

Multi-Language Plugin Support

Plugins can be written in Lua, Go, Python, Java, and Node.js via the Plugin Runner architecture.

Load Balancing

Supports round-robin, consistent hashing, EWMA, and least connections load balancing strategies.

Canary Releases

Traffic splitting for canary deployments and A/B testing with percentage-based routing.

Circuit Breaking

Built-in circuit breaker plugin for resilience and fault tolerance in upstream communication.

Kubernetes Integration

Native Kubernetes ingress controller (APISIX Ingress) for Kubernetes-native API gateway deployments.

Observability

Native integrations with Prometheus, Zipkin, SkyWalking, Datadog, and OpenTelemetry for metrics and tracing.

Service Discovery

Dynamic service discovery via Kubernetes, Nacos, Consul, Eureka, and DNS for upstream resolution.

Use Cases

API Gateway for Microservices

Route and manage traffic to microservices with dynamic configuration and plugin-based policies.

Authentication and Authorization

Apply JWT, key-auth, LDAP, OIDC, and OAuth2 plugins to protect APIs without changing upstream services.

Rate Limiting and Throttling

Apply global or per-consumer rate limits to protect upstream services from traffic spikes.

Canary and Blue-Green Deployments

Use traffic splitting to gradually roll out new API versions with percentage-based routing.

Kubernetes Ingress Controller

Replace traditional ingress controllers with APISIX for rich API gateway features in Kubernetes.

API Observability

Collect metrics, traces, and logs via native integrations with Prometheus, Zipkin, and SkyWalking.

Integrations

Kubernetes

Native Kubernetes Ingress controller (APISIX Ingress Controller) for cloud-native deployments.

Prometheus

Native Prometheus metrics exporter for monitoring route, consumer, and upstream metrics.

Zipkin and Jaeger

Distributed tracing integration for request flow analysis across microservices.

OpenTelemetry

OpenTelemetry plugin for standardized telemetry data export.

etcd

etcd backend for distributed configuration storage and cluster synchronization.

Nacos and Consul

Dynamic service discovery integrations for automatic upstream resolution.

HashiCorp Vault

Secret management integration for storing API credentials and TLS certificates.

Semantic Vocabularies

Apache Apisix Context

0 classes · 10 properties

JSON-LD

API Governance Rules

Apache APISIX API Rules

19 rules · 8 errors 9 warnings 2 info

SPECTRAL

JSON Structure

Consumer Group Structure

3 properties

JSON STRUCTURE

Consumer Structure

5 properties

JSON STRUCTURE

Global Rule Structure

1 properties

JSON STRUCTURE

Plugin Config Structure

3 properties

JSON STRUCTURE

Route Structure

21 properties

JSON STRUCTURE

Secret Structure

3 properties

JSON STRUCTURE

Service Structure

8 properties

JSON STRUCTURE

Ssl Structure

9 properties

JSON STRUCTURE

Stream Route Structure

8 properties

JSON STRUCTURE

Upstream Structure

18 properties

JSON STRUCTURE

Example Payloads

Consumer Example

5 fields

EXAMPLE

Consumer Group Example

3 fields

EXAMPLE

Global Rule Example

1 fields

EXAMPLE

Plugin Config Example

3 fields

EXAMPLE

Route Example

10 fields

EXAMPLE

Secret Example

3 fields

EXAMPLE

Service Example

8 fields

EXAMPLE

Ssl Example

9 fields

EXAMPLE

Stream Route Example

8 fields

EXAMPLE

Upstream Example

10 fields

EXAMPLE

Resources

🔗
LinkedIn
LinkedIn
👥
GitHubOrganization
GitHubOrganization
👥
GitHubRepository
GitHubRepository
🔗
Documentation
Documentation
🚀
GettingStarted
GettingStarted
📰
Blog
Blog
📄
ChangeLog
ChangeLog
💬
Support
Support
👥
StackOverflow
StackOverflow
🔗
JSONSchema
JSONSchema
🔗
JSONSchema
JSONSchema
🔗
JSONSchema
JSONSchema
🔗
JSONSchema
JSONSchema
🔗
JSONSchema
JSONSchema
🔗
JSONSchema
JSONSchema
🔗
JSONSchema
JSONSchema
🔗
JSONSchema
JSONSchema
🔗
JSONSchema
JSONSchema
🔗
JSONSchema
JSONSchema
🔗
JSONLD
JSONLD
🔗
SpectralRules
SpectralRules
🔗
Vocabulary
Vocabulary

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: Apache APISIX Control API
  version: 3.14.0
items:
- info:
    name: Health Check
    type: folder
  items:
  - info:
      name: Apache APISIX Get All Health Check Statuses
      type: http
    http:
      method: GET
      url: http://127.0.0.1:9090/v1/healthcheck
    docs: Returns the health check status of all upstreams that have health checking enabled.
  - info:
      name: Apache APISIX Get Health Check for a Specific Upstream
      type: http
    http:
      method: GET
      url: http://127.0.0.1:9090/v1/healthcheck/upstreams/:upstream_id
      params:
      - name: upstream_id
        value: ''
        type: path
        description: The ID of the upstream resource.
    docs: Returns the health check status for a specific upstream by its ID.
  - info:
      name: Apache APISIX Get Health Check for a Specific Route
      type: http
    http:
      method: GET
      url: http://127.0.0.1:9090/v1/healthcheck/routes/:route_id
      params:
      - name: route_id
        value: ''
        type: path
        description: The ID of the route resource.
    docs: Returns the health check status for a specific route by its ID.
  - info:
      name: Apache APISIX Get Health Check for a Specific Service
      type: http
    http:
      method: GET
      url: http://127.0.0.1:9090/v1/healthcheck/services/:service_id
      params:
      - name: service_id
        value: ''
        type: path
        description: The ID of the service resource.
    docs: Returns the health check status for a specific service by its ID.
- info:
    name: Schema
    type: folder
  items:
  - info:
      name: Apache APISIX Get APISIX JSON Schema
      type: http
    http:
      method: GET
      url: http://127.0.0.1:9090/v1/schema
    docs: Returns the full JSON schema used by the APISIX instance, including main configuration schemas and all plugin schemas.
  - info:
      name: Apache APISIX Get a Specific Plugin Schema
      type: http
    http:
      method: GET
      url: http://127.0.0.1:9090/v1/schema/plugins/:plugin_name
      params:
      - name: plugin_name
        value: ''
        type: path
        description: The name of the plugin.
    docs: Returns the JSON schema for the specified plugin.
- info:
    name: Diagnostics
    type: folder
  items:
  - info:
      name: Apache APISIX Trigger Garbage Collection
      type: http
    http:
      method: POST
      url: http://127.0.0.1:9090/v1/gc
    docs: Triggers a full garbage collection cycle in the Lua VM.
- info:
    name: Introspection
    type: folder
  items:
  - info:
      name: Apache APISIX Get All Configured Routes
      type: http
    http:
      method: GET
      url: http://127.0.0.1:9090/v1/routes
    docs: Returns a list of all routes with their complete runtime configuration.
  - info:
      name: Apache APISIX Get All Configured Services
      type: http
    http:
      method: GET
      url: http://127.0.0.1:9090/v1/services
    docs: Returns a list of all services with their complete runtime configuration.
  - info:
      name: Apache APISIX Get All Configured Upstreams
      type: http
    http:
      method: GET
      url: http://127.0.0.1:9090/v1/upstreams
    docs: Returns a list of all upstreams with their complete runtime configuration.
  - info:
      name: Apache APISIX Dump Service Discovery Nodes
      type: http
    http:
      method: GET
      url: http://127.0.0.1:9090/v1/discovery/:discovery_type/dump
      params:
      - name: discovery_type
        value: ''
        type: path
        description: The type of service discovery (e.g. dns, consul, nacos).
    docs: Returns the nodes discovered by the specified service discovery type.
bundled: true