Traefik Labs · Schema

Traefik Service

Represents an HTTP, TCP, or UDP service in a running Traefik instance, including its load balancer configuration, backend servers, and health check settings.

AI GatewayAPI GatewayAPI ManagementDeveloper PortalGitOpsKubernetesLoad BalancerMCP GatewayOpen SourceReverse ProxyWAF

Properties

Name Type Description
name string The name of the service in name@provider format.
type string The type of service.
status string The current operational status of the service.
provider string The configuration provider that created this service (e.g., docker, kubernetes, file).
protocol string The protocol this service handles.
loadBalancer object Load balancer configuration including backend servers and health checks.
serverStatus object Map of server URLs to their current health status.
View JSON Schema on GitHub

JSON Schema

traefik-service-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://traefik.io/schemas/traefik/service.json",
  "title": "Traefik Service",
  "description": "Represents an HTTP, TCP, or UDP service in a running Traefik instance, including its load balancer configuration, backend servers, and health check settings.",
  "type": "object",
  "required": ["name"],
  "properties": {
    "name": {
      "type": "string",
      "description": "The name of the service in name@provider format.",
      "minLength": 1
    },
    "type": {
      "type": "string",
      "description": "The type of service.",
      "enum": ["loadBalancer", "weighted", "mirroring"]
    },
    "status": {
      "type": "string",
      "description": "The current operational status of the service.",
      "enum": ["enabled", "disabled", "warning"]
    },
    "provider": {
      "type": "string",
      "description": "The configuration provider that created this service (e.g., docker, kubernetes, file)."
    },
    "protocol": {
      "type": "string",
      "description": "The protocol this service handles.",
      "enum": ["http", "tcp", "udp"]
    },
    "loadBalancer": {
      "$ref": "#/$defs/LoadBalancer",
      "description": "Load balancer configuration including backend servers and health checks."
    },
    "serverStatus": {
      "type": "object",
      "description": "Map of server URLs to their current health status.",
      "additionalProperties": {
        "type": "string"
      }
    }
  },
  "$defs": {
    "LoadBalancer": {
      "type": "object",
      "description": "Load balancer configuration distributing traffic across backend servers.",
      "properties": {
        "servers": {
          "type": "array",
          "description": "List of backend servers to load balance across.",
          "items": {
            "$ref": "#/$defs/Server"
          }
        },
        "passHostHeader": {
          "type": "boolean",
          "description": "Whether to pass the original Host header to backend servers."
        },
        "healthCheck": {
          "$ref": "#/$defs/HealthCheck",
          "description": "Health check configuration for monitoring backend server availability."
        }
      }
    },
    "Server": {
      "type": "object",
      "description": "A backend server in the load balancer pool.",
      "properties": {
        "url": {
          "type": "string",
          "format": "uri",
          "description": "The URL of the backend server (HTTP/HTTPS services)."
        },
        "address": {
          "type": "string",
          "description": "The address of the backend server in host:port format (TCP/UDP services)."
        }
      }
    },
    "HealthCheck": {
      "type": "object",
      "description": "Configuration for periodic health checks against backend servers.",
      "properties": {
        "scheme": {
          "type": "string",
          "description": "The scheme to use for health check requests (http or https)."
        },
        "path": {
          "type": "string",
          "description": "The path to use for health check requests."
        },
        "port": {
          "type": "integer",
          "description": "The port to use for health check requests.",
          "minimum": 1,
          "maximum": 65535
        },
        "interval": {
          "type": "string",
          "description": "The interval between health checks (e.g., '10s', '30s')."
        },
        "timeout": {
          "type": "string",
          "description": "The timeout for each health check request (e.g., '5s')."
        }
      }
    }
  }
}