Traefik Labs HTTP API

Endpoints for inspecting HTTP routers, services, and middlewares.

OpenAPI Specification

traefik-http-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Traefik Proxy REST Entrypoints HTTP 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
servers:
- url: http://localhost:8080/api
  description: Default Traefik API endpoint (traefik entrypoint on port 8080)
tags:
- name: HTTP
  description: Endpoints for inspecting HTTP routers, services, and middlewares.
paths:
  /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
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:
    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
    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
externalDocs:
  description: Traefik API Documentation
  url: https://doc.traefik.io/traefik/operations/api/