openapi: 3.1.0
info:
title: Traefik REST API
description: >-
The Traefik 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 and the current Traefik version. The API must be enabled
in the Traefik static configuration and should be secured before exposing in
production environments.
version: '3'
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
/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).