KrakenD · Schema

KrakenD Endpoint

An Endpoint defines a public-facing URL pattern that the KrakenD gateway exposes to clients, along with its associated backends, encoding, rate limiting, and other configurations.

AggregationAPI GatewayGoOpen Source

Properties

Name Type Description
endpoint string The URL pattern the gateway exposes to clients. Must start with a slash.
method string The HTTP method this endpoint accepts. Create multiple endpoint entries for different methods.
output_encoding string The encoding used to render the response to the client.
concurrent_calls integer Number of concurrent calls to each backend for this endpoint.
timeout string Maximum time to wait for the endpoint to complete. E.g., 2s or 2000ms.
cache_ttl string Duration for Cache-Control max-age header. E.g., 300s or 5m.
querystring_params array Allowed query string parameters to forward to backends. Use * to forward all.
headers_to_pass array List of client headers forwarded to the backend.
backend array List of backend definitions this endpoint connects to.
extra_config object Additional component configurations keyed by namespace.
input_query_strings array Recognized query string parameters that can be used in the endpoint.
input_headers array Recognized headers that can be used in the endpoint.
View JSON Schema on GitHub

JSON Schema

endpoint.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://github.com/api-evangelist/krakend/blob/main/json-schema/endpoint.json",
  "title": "KrakenD Endpoint",
  "description": "An Endpoint defines a public-facing URL pattern that the KrakenD gateway exposes to clients, along with its associated backends, encoding, rate limiting, and other configurations.",
  "type": "object",
  "required": ["endpoint", "backend"],
  "properties": {
    "endpoint": {
      "type": "string",
      "description": "The URL pattern the gateway exposes to clients. Must start with a slash."
    },
    "method": {
      "type": "string",
      "enum": ["GET", "POST", "PUT", "PATCH", "DELETE"],
      "description": "The HTTP method this endpoint accepts. Create multiple endpoint entries for different methods."
    },
    "output_encoding": {
      "type": "string",
      "enum": ["json", "json-collection", "yaml", "fast-json", "xml", "negotiate", "string", "no-op"],
      "description": "The encoding used to render the response to the client."
    },
    "concurrent_calls": {
      "type": "integer",
      "default": 1,
      "description": "Number of concurrent calls to each backend for this endpoint."
    },
    "timeout": {
      "type": "string",
      "description": "Maximum time to wait for the endpoint to complete. E.g., 2s or 2000ms."
    },
    "cache_ttl": {
      "type": "string",
      "description": "Duration for Cache-Control max-age header. E.g., 300s or 5m."
    },
    "querystring_params": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Allowed query string parameters to forward to backends. Use * to forward all."
    },
    "headers_to_pass": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "List of client headers forwarded to the backend."
    },
    "backend": {
      "type": "array",
      "items": {
        "$ref": "backend.json"
      },
      "description": "List of backend definitions this endpoint connects to."
    },
    "extra_config": {
      "type": "object",
      "description": "Additional component configurations keyed by namespace."
    },
    "input_query_strings": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Recognized query string parameters that can be used in the endpoint."
    },
    "input_headers": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Recognized headers that can be used in the endpoint."
    }
  }
}