---
id: "api-gateway"
type: "kind"
category: "edge"
url: "https://localhost:3000/catalogue/kinds/api-gateway"
---

# API gateway

Managed entry point that routes, authenticates and throttles inbound calls.

| | |
|---|---|
| Category | Edge |
| Properties | 9 |
| Components | 41 |
| Rules | 1 |

## Properties

| property | type | values | required | default |
|---|---|---|---|---|
| `auth` | enum | `none`, `api-key`, `jwt`, `oauth2`, `mtls` | no | "none" |
| `concurrencyLimit` | boolean | — | no | false |
| `idempotencyKeys` (advanced) | boolean | — | no | false |
| `instances` | integer | — | no | — |
| `keyTtlHours` (advanced) | integer | — | no | — |
| `managed` | boolean | — | no | false |
| `protocol` | enum | `http`, `grpc`, `websocket`, `fix`, `ouch` | no | "http" |
| `rateLimiting` | boolean | — | no | false |
| `tls` | boolean | — | no | true |

## Rules for this kind · 1

### Synchronous call chain too deep `sync-chain-too-deep` (warning)

- Page: https://localhost:3000/catalogue/rules/sync-chain-too-deep.md
- Why: Every consecutive synchronous hop from this entry point spends part of the stated p95 latency budget, and the chain's failures multiply. More than three hops is a budget nobody is tracking.
- Applies to: every node of kind api-gateway
- Message: Entry point '{{node.id}}' starts a synchronous call chain deeper than 3 hops while the design states a p95 latency target.

It fires when:

- all of these hold:
  - the design requirement `latency.p95Ms` has a value
  - the longest chain of synchronous calls starting at the node is more than 3 hops long

## Components · 41

### vendor-neutral

- [Generic API gateway](https://localhost:3000/catalogue/components/api-gateway.md) `api-gateway` — the kind itself

### alibabacloud

- [API Gateway](https://localhost:3000/catalogue/components/alibaba-api-gateway.md) `alibaba-api-gateway` — 4 defaults

### aws

- [Amazon API Gateway](https://localhost:3000/catalogue/components/aws-api-gateway.md) `aws-api-gateway` — 3 defaults
- [AWS AppSync GraphQL API](https://localhost:3000/catalogue/components/aws-appsync.md) `aws-appsync` — 5 defaults

### azure

- [Azure API Management](https://localhost:3000/catalogue/components/azure-api-management.md) `azure-api-management` — 3 defaults

### cloudflare

- [AI Gateway](https://localhost:3000/catalogue/components/cloudflare-ai-gateway.md) `cloudflare-ai-gateway` — 5 defaults
- [Cloudflare API Shield](https://localhost:3000/catalogue/components/cloudflare-api-shield.md) `cloudflare-api-shield` — 4 defaults
- [MCP Server Portal](https://localhost:3000/catalogue/components/cloudflare-mcp-portal.md) `cloudflare-mcp-portal` — 5 defaults
- [Cloudflare Privacy Gateway](https://localhost:3000/catalogue/components/cloudflare-privacy-gateway.md) `cloudflare-privacy-gateway` — 3 defaults

### default

- [Apache APISIX](https://localhost:3000/catalogue/components/apisix.md) `apisix` — 3 defaults
- [Apollo GraphOS](https://localhost:3000/catalogue/components/apollo-graphos.md) `apollo-graphos` — 4 defaults
- [Easegress](https://localhost:3000/catalogue/components/easegress.md) `easegress` — 5 defaults
- [Emissary-ingress](https://localhost:3000/catalogue/components/emissary.md) `emissary` — 2 defaults
- [Envoy Gateway](https://localhost:3000/catalogue/components/envoy-gateway.md) `envoy-gateway` — 2 defaults
- [Gloo Gateway](https://localhost:3000/catalogue/components/gloo.md) `gloo` — 2 defaults
- [Hasura](https://localhost:3000/catalogue/components/hasura.md) `hasura` — 5 defaults
- [Helicone AI Gateway](https://localhost:3000/catalogue/components/helicone-gateway.md) `helicone-gateway` — 5 defaults
- [Higress](https://localhost:3000/catalogue/components/higress.md) `higress` — 5 defaults
- [Kong Gateway](https://localhost:3000/catalogue/components/kong.md) `kong` — 2 defaults
- [Kong AI Gateway](https://localhost:3000/catalogue/components/kong-ai-gateway.md) `kong-ai-gateway` — 2 defaults
- [Kong Konnect](https://localhost:3000/catalogue/components/kong-konnect.md) `kong-konnect` — 4 defaults
- [KrakenD](https://localhost:3000/catalogue/components/krakend.md) `krakend` — 2 defaults
- [LiteLLM Proxy](https://localhost:3000/catalogue/components/litellm.md) `litellm` — 6 defaults
- [Martian Gateway](https://localhost:3000/catalogue/components/martian.md) `martian` — 4 defaults
- [Not Diamond](https://localhost:3000/catalogue/components/not-diamond.md) `not-diamond` — 4 defaults
- [Portkey AI Gateway](https://localhost:3000/catalogue/components/portkey.md) `portkey` — 4 defaults
- [Requesty](https://localhost:3000/catalogue/components/requesty.md) `requesty` — 4 defaults
- [Spring Cloud Gateway](https://localhost:3000/catalogue/components/spring-cloud-gateway.md) `spring-cloud-gateway` — 2 defaults
- [Tyk Gateway](https://localhost:3000/catalogue/components/tyk.md) `tyk` — 2 defaults
- [Unify](https://localhost:3000/catalogue/components/unify-ai.md) `unify-ai` — 2 defaults
- [Vercel AI Gateway](https://localhost:3000/catalogue/components/vercel-ai-gateway.md) `vercel-ai-gateway` — 4 defaults
- [WSO2 API Manager](https://localhost:3000/catalogue/components/wso2-api-manager.md) `wso2-api-manager` — 3 defaults
- [Zuul](https://localhost:3000/catalogue/components/zuul.md) `zuul` — 2 defaults

### gcp

- [Apigee](https://localhost:3000/catalogue/components/apigee.md) `apigee` — 3 defaults
- [Agent Gateway](https://localhost:3000/catalogue/components/google-agent-gateway.md) `google-agent-gateway` — 4 defaults
- [API Gateway](https://localhost:3000/catalogue/components/google-api-gateway.md) `google-api-gateway` — 3 defaults
- [Apigee hybrid](https://localhost:3000/catalogue/components/google-apigee-hybrid.md) `google-apigee-hybrid` — 3 defaults
- [Cloud Endpoints](https://localhost:3000/catalogue/components/google-cloud-endpoints.md) `google-cloud-endpoints` — 2 defaults
- [Firebase Data Connect](https://localhost:3000/catalogue/components/google-firebase-data-connect.md) `google-firebase-data-connect` — 4 defaults

### ibm

- [IBM API Connect](https://localhost:3000/catalogue/components/ibm-api-connect.md) `ibm-api-connect` — 3 defaults

### oci

- [OCI API Gateway](https://localhost:3000/catalogue/components/oci-api-gateway.md) `oci-api-gateway` — 4 defaults

## Source (`kind` YAML, verbatim)

```yaml
# yaml-language-server: $schema=../schema/kind.schema.json
# Abstract kind: Managed entry point that routes, authenticates and throttles inbound calls.
schemaVersion: "1"
type: "kind"
id: "api-gateway"
category: "edge"
properties:
  auth:
    type: "enum"
    values: ["none", "api-key", "jwt", "oauth2", "mtls"]
    default: "none"
  rateLimiting:
    type: "boolean"
    default: false
  tls:
    type: "boolean"
    default: true
  idempotencyKeys:
    type: "boolean"
    default: false
    advanced: true
  keyTtlHours:
    type: "integer"
    advanced: true
  protocol:
    type: "enum"
    values: ["http", "grpc", "websocket", "fix", "ouch"]
    default: "http"
  concurrencyLimit:
    type: "boolean"
    default: false
  instances:
    type: "integer"
  managed:
    type: "boolean"
    default: false
```

Human page: https://localhost:3000/catalogue/kinds/api-gateway
