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).