openapi: 3.1.0 info: title: Traefik Proxy REST API description: >- The Traefik Proxy REST API provides read-only HTTP endpoints for inspecting the runtime configuration and state of a running Traefik instance. It exposes information about HTTP, TCP, and UDP routers, services, and middlewares, as well as entry points, raw dynamic configuration, the support-dump archive, and the current Traefik version. The API must be enabled in the Traefik static configuration (`api.insecure: true` for quick exploration, or by binding the `traefik` entrypoint behind an `IngressRoute` with `service: api@internal` for production) and should always be secured behind authentication before being exposed publicly. All endpoints listed here are mounted under the `/api` path prefix on the `traefik` entrypoint (default port 8080). version: '3.7' contact: name: Traefik Labs url: https://traefik.io/ license: name: MIT url: https://github.com/traefik/traefik/blob/master/LICENSE.md externalDocs: description: Traefik API Documentation url: https://doc.traefik.io/traefik/operations/api/ servers: - url: http://localhost:8080/api description: Default Traefik API endpoint (traefik entrypoint on port 8080) tags: - name: Entrypoints description: >- Endpoints for listing configured entry points. - name: Health description: >- Health check and ping endpoints for liveness probes. - name: HTTP description: >- Endpoints for inspecting HTTP routers, services, and middlewares. - name: Overview description: >- Overview and version information for the running Traefik instance. - name: TCP description: >- Endpoints for inspecting TCP routers, services, and middlewares. - name: UDP description: >- Endpoints for inspecting UDP routers and services. paths: /version: get: operationId: getVersion summary: Get Traefik Version description: >- Returns the current version of the running Traefik instance, including the version string, codename, and start date. tags: - Overview responses: '200': description: Version information returned successfully content: application/json: schema: $ref: '#/components/schemas/Version' /overview: get: operationId: getOverview summary: Get Overview Statistics description: >- Returns an overview of the current Traefik configuration including counts of HTTP, TCP, and UDP routers, services, and middlewares, as well as enabled features and provider information. tags: - Overview responses: '200': description: Overview returned successfully content: application/json: schema: $ref: '#/components/schemas/Overview' /rawdata: get: operationId: getRawData summary: Get Raw Configuration Data description: >- Returns the complete raw dynamic configuration data for all routers, services, middlewares, and transports currently loaded from all providers. tags: - Overview responses: '200': description: Raw configuration data returned successfully content: application/json: schema: type: object description: Complete raw configuration data from all providers. /entrypoints: get: operationId: listEntryPoints summary: List All Entry Points description: >- Returns a list of all configured entry points for the Traefik instance, including their names, addresses, and transport configuration. tags: - Entrypoints responses: '200': description: Entry points returned successfully content: application/json: schema: type: array items: $ref: '#/components/schemas/EntryPoint' /entrypoints/{name}: get: operationId: getEntryPoint summary: Get a Specific Entry Point description: >- Returns the configuration of a specific entry point by name. tags: - Entrypoints parameters: - name: name in: path required: true description: The name of the entry point. schema: type: string responses: '200': description: Entry point returned successfully content: application/json: schema: $ref: '#/components/schemas/EntryPoint' '404': description: Entry point not found /http/routers: get: operationId: listHTTPRouters summary: List All HTTP Routers description: >- Returns a list of all HTTP routers configured in the running Traefik instance, including their rules, entry points, middlewares, and service assignments. tags: - HTTP parameters: - $ref: '#/components/parameters/search' - $ref: '#/components/parameters/status' - $ref: '#/components/parameters/per_page' - $ref: '#/components/parameters/page' responses: '200': description: HTTP routers returned successfully content: application/json: schema: type: array items: $ref: '#/components/schemas/HTTPRouter' /http/routers/{name}: get: operationId: getHTTPRouter summary: Get a Specific HTTP Router description: >- Returns the configuration of a specific HTTP router by its name, including the rule, priority, entry points, service, and middlewares. tags: - HTTP parameters: - name: name in: path required: true description: >- The name of the HTTP router, in the format name@provider. schema: type: string responses: '200': description: HTTP router returned successfully content: application/json: schema: $ref: '#/components/schemas/HTTPRouter' '404': description: Router not found /http/services: get: operationId: listHTTPServices summary: List All HTTP Services description: >- Returns a list of all HTTP services configured in the running Traefik instance, including their load balancer configuration and server details. tags: - HTTP parameters: - $ref: '#/components/parameters/search' - $ref: '#/components/parameters/status' - $ref: '#/components/parameters/per_page' - $ref: '#/components/parameters/page' responses: '200': description: HTTP services returned successfully content: application/json: schema: type: array items: $ref: '#/components/schemas/HTTPService' /http/services/{name}: get: operationId: getHTTPService summary: Get a Specific HTTP Service description: >- Returns the configuration of a specific HTTP service by its name, including the load balancer servers and health check status. tags: - HTTP parameters: - name: name in: path required: true description: >- The name of the HTTP service, in the format name@provider. schema: type: string responses: '200': description: HTTP service returned successfully content: application/json: schema: $ref: '#/components/schemas/HTTPService' '404': description: Service not found /http/middlewares: get: operationId: listHTTPMiddlewares summary: List All HTTP Middlewares description: >- Returns a list of all HTTP middlewares configured in the running Traefik instance, including their type and configuration details. tags: - HTTP parameters: - $ref: '#/components/parameters/search' - $ref: '#/components/parameters/status' - $ref: '#/components/parameters/per_page' - $ref: '#/components/parameters/page' responses: '200': description: HTTP middlewares returned successfully content: application/json: schema: type: array items: $ref: '#/components/schemas/HTTPMiddleware' /http/middlewares/{name}: get: operationId: getHTTPMiddleware summary: Get a Specific HTTP Middleware description: >- Returns the configuration of a specific HTTP middleware by its name. tags: - HTTP parameters: - name: name in: path required: true description: >- The name of the HTTP middleware, in the format name@provider. schema: type: string responses: '200': description: HTTP middleware returned successfully content: application/json: schema: $ref: '#/components/schemas/HTTPMiddleware' '404': description: Middleware not found /tcp/routers: get: operationId: listTCPRouters summary: List All TCP Routers description: >- Returns a list of all TCP routers configured in the running Traefik instance. tags: - TCP parameters: - $ref: '#/components/parameters/search' - $ref: '#/components/parameters/status' - $ref: '#/components/parameters/per_page' - $ref: '#/components/parameters/page' responses: '200': description: TCP routers returned successfully content: application/json: schema: type: array items: $ref: '#/components/schemas/TCPRouter' /tcp/routers/{name}: get: operationId: getTCPRouter summary: Get a Specific TCP Router description: >- Returns the configuration of a specific TCP router by its name. tags: - TCP parameters: - name: name in: path required: true description: >- The name of the TCP router, in the format name@provider. schema: type: string responses: '200': description: TCP router returned successfully content: application/json: schema: $ref: '#/components/schemas/TCPRouter' '404': description: Router not found /tcp/services: get: operationId: listTCPServices summary: List All TCP Services description: >- Returns a list of all TCP services configured in the running Traefik instance. tags: - TCP parameters: - $ref: '#/components/parameters/search' - $ref: '#/components/parameters/status' - $ref: '#/components/parameters/per_page' - $ref: '#/components/parameters/page' responses: '200': description: TCP services returned successfully content: application/json: schema: type: array items: $ref: '#/components/schemas/TCPService' /tcp/services/{name}: get: operationId: getTCPService summary: Get a Specific TCP Service description: >- Returns the configuration of a specific TCP service by its name. tags: - TCP parameters: - name: name in: path required: true description: >- The name of the TCP service, in the format name@provider. schema: type: string responses: '200': description: TCP service returned successfully content: application/json: schema: $ref: '#/components/schemas/TCPService' '404': description: Service not found /tcp/middlewares: get: operationId: listTCPMiddlewares summary: List All TCP Middlewares description: >- Returns a list of all TCP middlewares configured in the running Traefik instance. tags: - TCP parameters: - $ref: '#/components/parameters/search' - $ref: '#/components/parameters/status' - $ref: '#/components/parameters/per_page' - $ref: '#/components/parameters/page' responses: '200': description: TCP middlewares returned successfully content: application/json: schema: type: array items: $ref: '#/components/schemas/TCPMiddleware' /tcp/middlewares/{name}: get: operationId: getTCPMiddleware summary: Get a Specific TCP Middleware description: >- Returns the configuration of a specific TCP middleware by its name. tags: - TCP parameters: - name: name in: path required: true description: >- The name of the TCP middleware, in the format name@provider. schema: type: string responses: '200': description: TCP middleware returned successfully content: application/json: schema: $ref: '#/components/schemas/TCPMiddleware' '404': description: Middleware not found /udp/routers: get: operationId: listUDPRouters summary: List All UDP Routers description: >- Returns a list of all UDP routers configured in the running Traefik instance. tags: - UDP parameters: - $ref: '#/components/parameters/search' - $ref: '#/components/parameters/status' - $ref: '#/components/parameters/per_page' - $ref: '#/components/parameters/page' responses: '200': description: UDP routers returned successfully content: application/json: schema: type: array items: $ref: '#/components/schemas/UDPRouter' /udp/routers/{name}: get: operationId: getUDPRouter summary: Get a Specific UDP Router description: >- Returns the configuration of a specific UDP router by its name. tags: - UDP parameters: - name: name in: path required: true description: >- The name of the UDP router, in the format name@provider. schema: type: string responses: '200': description: UDP router returned successfully content: application/json: schema: $ref: '#/components/schemas/UDPRouter' '404': description: Router not found /udp/services: get: operationId: listUDPServices summary: List All UDP Services description: >- Returns a list of all UDP services configured in the running Traefik instance. tags: - UDP parameters: - $ref: '#/components/parameters/search' - $ref: '#/components/parameters/status' - $ref: '#/components/parameters/per_page' - $ref: '#/components/parameters/page' responses: '200': description: UDP services returned successfully content: application/json: schema: type: array items: $ref: '#/components/schemas/UDPService' /udp/services/{name}: get: operationId: getUDPService summary: Get a Specific UDP Service description: >- Returns the configuration of a specific UDP service by its name. tags: - UDP parameters: - name: name in: path required: true description: >- The name of the UDP service, in the format name@provider. schema: type: string responses: '200': description: UDP service returned successfully content: application/json: schema: $ref: '#/components/schemas/UDPService' '404': description: Service not found /support-dump: get: operationId: getSupportDump summary: Get Anonymized Support Dump description: >- Returns an anonymized archive of the running Traefik configuration and runtime metadata. Used by Traefik Labs support to reproduce reported issues without exposing sensitive customer data. The endpoint returns a ZIP archive. tags: - Overview responses: '200': description: Support-dump archive returned successfully content: application/zip: schema: type: string format: binary /ping: get: operationId: ping summary: Health Check Ping description: >- Returns HTTP 200 with body "OK" when the Traefik process is alive and ready. Used for liveness probes in container orchestration. Note that the ping endpoint is typically configured on a separate entry point or path outside the /api prefix. tags: - Health responses: '200': description: Traefik is alive and ready content: text/plain: schema: type: string example: OK components: parameters: search: name: search in: query required: false description: Filter results by name using a search string. schema: type: string status: name: status in: query required: false description: Filter results by status (enabled or disabled). schema: type: string enum: - enabled - disabled per_page: name: per_page in: query required: false description: Number of results per page. schema: type: integer default: 100 page: name: page in: query required: false description: Page number for paginated results. schema: type: integer default: 1 schemas: Version: type: object description: Traefik version and build information. properties: Version: type: string description: The semantic version string of the running Traefik instance. Codename: type: string description: The codename for this Traefik release. startDate: type: string format: date-time description: The start time of the running Traefik process. Overview: type: object description: >- Overview statistics of the running Traefik instance including counts of all configured objects. properties: http: $ref: '#/components/schemas/OverviewSection' tcp: $ref: '#/components/schemas/OverviewSection' udp: $ref: '#/components/schemas/OverviewUDPSection' features: type: object description: Enabled features in the running instance. properties: tracing: type: string metrics: type: string accessLog: type: boolean providers: type: array description: List of active configuration providers. items: type: string OverviewSection: type: object description: Counts for routers, services, and middlewares in a protocol section. properties: routers: $ref: '#/components/schemas/StatusCount' services: $ref: '#/components/schemas/StatusCount' middlewares: $ref: '#/components/schemas/StatusCount' OverviewUDPSection: type: object description: Counts for UDP routers and services. properties: routers: $ref: '#/components/schemas/StatusCount' services: $ref: '#/components/schemas/StatusCount' StatusCount: type: object description: Count of objects by status. properties: total: type: integer warnings: type: integer errors: type: integer EntryPoint: type: object description: A configured entry point for accepting incoming traffic. properties: name: type: string description: The name of the entry point. address: type: string description: The address the entry point listens on (e.g., ":80", ":443"). transport: type: object description: Transport layer configuration. properties: lifeCycle: type: object properties: requestAcceptGraceTimeout: type: string graceTimeOut: type: string respondingTimeouts: type: object properties: readTimeout: type: string writeTimeout: type: string idleTimeout: type: string HTTPRouter: type: object description: An HTTP router that matches incoming requests and routes them to services. properties: name: type: string description: The name of the router in name@provider format. entryPoints: type: array description: Entry points this router is bound to. items: type: string middlewares: type: array description: Middlewares applied to this router in order. items: type: string service: type: string description: The service this router routes traffic to. rule: type: string description: The routing rule expression (e.g., Host, Path, Headers matchers). ruleSyntax: type: string description: The syntax version of the rule. priority: type: integer description: The priority of the router when multiple routers match. status: type: string description: The current status of the router. enum: - enabled - disabled - warning using: type: array description: Entry points being used by this router. items: type: string provider: type: string description: The configuration provider that created this router. tls: type: object description: TLS configuration for this router. properties: options: type: string certResolver: type: string domains: type: array items: type: object properties: main: type: string sans: type: array items: type: string HTTPService: type: object description: An HTTP service representing one or more backend servers. properties: name: type: string description: The name of the service in name@provider format. type: type: string description: The type of service (loadBalancer, weighted, mirroring). status: type: string description: The current status of the service. enum: - enabled - disabled - warning provider: type: string description: The configuration provider that created this service. loadBalancer: type: object description: Load balancer configuration with backend servers. properties: servers: type: array items: type: object properties: url: type: string description: The URL of the backend server. passHostHeader: type: boolean description: Whether to pass the host header to backends. healthCheck: type: object description: Health check configuration for the backend servers. properties: scheme: type: string path: type: string port: type: integer interval: type: string timeout: type: string serverStatus: type: object description: Map of server URLs to their current health status. additionalProperties: type: string HTTPMiddleware: type: object description: An HTTP middleware that modifies requests or responses. properties: name: type: string description: The name of the middleware in name@provider format. type: type: string description: >- The type of middleware (e.g., addPrefix, basicAuth, buffering, chain, circuitBreaker, compress, headers, ipAllowList, rateLimit, redirectScheme, replacePath, retry, stripPrefix). status: type: string description: The current status of the middleware. enum: - enabled - disabled - warning provider: type: string description: The configuration provider that created this middleware. usedBy: type: array description: Routers currently using this middleware. items: type: string TCPRouter: type: object description: A TCP router that matches incoming TCP connections and routes them to services. properties: name: type: string description: The name of the TCP router in name@provider format. entryPoints: type: array description: Entry points this router is bound to. items: type: string service: type: string description: The TCP service this router routes traffic to. rule: type: string description: The TCP routing rule expression (HostSNI matcher). status: type: string enum: - enabled - disabled - warning provider: type: string tls: type: object properties: passthrough: type: boolean options: type: string certResolver: type: string TCPService: type: object description: A TCP service representing one or more backend TCP servers. properties: name: type: string description: The name of the TCP service in name@provider format. type: type: string status: type: string enum: - enabled - disabled - warning provider: type: string loadBalancer: type: object properties: servers: type: array items: type: object properties: address: type: string description: The address of the backend TCP server (host:port). TCPMiddleware: type: object description: A TCP middleware that modifies TCP connections. properties: name: type: string description: The name of the TCP middleware in name@provider format. type: type: string description: The type of TCP middleware (e.g., ipAllowList, inFlightConn). status: type: string enum: - enabled - disabled - warning provider: type: string UDPRouter: type: object description: A UDP router that routes incoming UDP datagrams to services. properties: name: type: string description: The name of the UDP router in name@provider format. entryPoints: type: array items: type: string service: type: string description: The UDP service this router routes traffic to. status: type: string enum: - enabled - disabled - warning provider: type: string UDPService: type: object description: A UDP service representing one or more backend UDP servers. properties: name: type: string description: The name of the UDP service in name@provider format. type: type: string status: type: string enum: - enabled - disabled - warning provider: type: string loadBalancer: type: object properties: servers: type: array items: type: object properties: address: type: string description: The address of the backend UDP server (host:port).