Spring Boot Actuator API

Production-ready features for monitoring and managing Spring Boot 3 applications. Provides over 50 built-in endpoints exposing health status, metrics (Micrometer), environment properties, loggers, thread dumps, heap dumps, HTTP trace, and more via HTTP or JMX.

Documentation

Specifications

SDKs

Other Resources

OpenAPI Specification

spring-boot-3-actuator-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Spring Boot 3 Actuator API
  description: >-
    Production-ready monitoring and management endpoints provided by Spring Boot 3
    Actuator. Includes health checks, Micrometer metrics, environment inspection,
    logger configuration, thread dumps, scheduled tasks, HTTP exchange tracing,
    and more. Endpoints are served under the /actuator base path and can be
    secured via Spring Security.
  version: 3.2.0
  contact:
    name: Spring Team
    url: https://spring.io/team
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
servers:
  - url: http://localhost:8080/actuator
    description: Local Spring Boot 3 application with Actuator enabled
tags:
  - name: Health
    description: Application and component health indicators
  - name: Metrics
    description: Micrometer-based application metrics
  - name: Environment
    description: Application environment properties and configuration
  - name: Loggers
    description: Logger configuration management
  - name: Info
    description: Application information endpoints
  - name: Threads
    description: Thread and heap diagnostics
  - name: Scheduling
    description: Scheduled task inspection
paths:
  /health:
    get:
      operationId: getHealth
      summary: Get Application Health
      description: >-
        Returns the overall health status of the application. Aggregates all
        registered HealthIndicators. When security is enabled, full details
        are only shown to authorized users.
      tags:
        - Health
      responses:
        '200':
          description: Application is healthy
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HealthResponse'
        '503':
          description: Application is unhealthy or in OUT_OF_SERVICE state
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HealthResponse'
  /health/{component}:
    get:
      operationId: getHealthComponent
      summary: Get Component Health
      description: >-
        Returns the health status of a specific component (e.g., db, diskSpace,
        redis, rabbit, kafka).
      tags:
        - Health
      parameters:
        - name: component
          in: path
          required: true
          description: Health component name (e.g., db, diskSpace, redis)
          schema:
            type: string
            example: db
      responses:
        '200':
          description: Component health status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ComponentHealth'
        '404':
          description: Component not found
  /info:
    get:
      operationId: getInfo
      summary: Get Application Info
      description: >-
        Returns arbitrary application information from registered InfoContributors
        (build, git, environment, OS).
      tags:
        - Info
      responses:
        '200':
          description: Application information
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InfoResponse'
  /metrics:
    get:
      operationId: listMetrics
      summary: List Available Metrics
      description: >-
        Returns a list of all registered Micrometer metric names available
        in this application.
      tags:
        - Metrics
      responses:
        '200':
          description: Available metric names
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetricsList'
  /metrics/{metricName}:
    get:
      operationId: getMetric
      summary: Get Metric Detail
      description: >-
        Returns measurements and available tags for a specific Micrometer metric.
        Use tag parameters to filter by dimension.
      tags:
        - Metrics
      parameters:
        - name: metricName
          in: path
          required: true
          description: Name of the metric (e.g., jvm.memory.used, http.server.requests)
          schema:
            type: string
            example: jvm.memory.used
        - name: tag
          in: query
          required: false
          description: Tag filter in name:value format (may be repeated)
          schema:
            type: string
            example: area:heap
      responses:
        '200':
          description: Metric measurements
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MetricDetail'
        '404':
          description: Metric not found
  /env:
    get:
      operationId: getEnvironment
      summary: Get Environment Properties
      description: >-
        Returns all application environment properties grouped by property source
        (application.properties, system properties, environment variables, etc.).
      tags:
        - Environment
      responses:
        '200':
          description: Environment properties
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnvironmentResponse'
  /env/{toMatch}:
    get:
      operationId: getEnvironmentProperty
      summary: Get Environment Property
      description: >-
        Returns the value and origin of a specific environment property key.
      tags:
        - Environment
      parameters:
        - name: toMatch
          in: path
          required: true
          description: Property key to look up (e.g., spring.application.name)
          schema:
            type: string
            example: spring.application.name
      responses:
        '200':
          description: Property value and origin
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PropertyDetail'
        '404':
          description: Property not found
  /loggers:
    get:
      operationId: listLoggers
      summary: List Loggers
      description: >-
        Returns all loggers with their configured and effective log levels.
      tags:
        - Loggers
      responses:
        '200':
          description: Logger configuration
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LoggersResponse'
  /loggers/{name}:
    get:
      operationId: getLogger
      summary: Get Logger
      description: Returns the configuration for a specific logger by name.
      tags:
        - Loggers
      parameters:
        - name: name
          in: path
          required: true
          description: Logger name (e.g., com.example.service)
          schema:
            type: string
            example: com.example.service.UserService
      responses:
        '200':
          description: Logger configuration
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LoggerDetail'
        '404':
          description: Logger not found
    post:
      operationId: setLoggerLevel
      summary: Set Logger Level
      description: >-
        Configures the log level for a specific logger at runtime. Pass null to
        reset to the parent logger's effective level.
      tags:
        - Loggers
      parameters:
        - name: name
          in: path
          required: true
          description: Logger name
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LogLevelRequest'
      responses:
        '204':
          description: Logger level updated
        '400':
          description: Invalid log level
  /threaddump:
    get:
      operationId: getThreadDump
      summary: Get Thread Dump
      description: >-
        Returns a snapshot of all live threads in the JVM including stack traces,
        thread states, and lock information.
      tags:
        - Threads
      responses:
        '200':
          description: Thread dump
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ThreadDumpResponse'
            text/plain:
              schema:
                type: string
  /scheduledtasks:
    get:
      operationId: getScheduledTasks
      summary: Get Scheduled Tasks
      description: >-
        Returns all scheduled tasks registered in the application context,
        including cron, fixed-rate, and fixed-delay tasks.
      tags:
        - Scheduling
      responses:
        '200':
          description: Scheduled tasks
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScheduledTasksResponse'
components:
  schemas:
    HealthResponse:
      type: object
      description: Overall application health aggregating all health indicators
      properties:
        status:
          type: string
          description: Overall health status
          enum: [UP, DOWN, OUT_OF_SERVICE, UNKNOWN]
        components:
          type: object
          description: Health status of individual components
          additionalProperties:
            $ref: '#/components/schemas/ComponentHealth'
    ComponentHealth:
      type: object
      description: Health status of a single component
      properties:
        status:
          type: string
          description: Component status
          enum: [UP, DOWN, OUT_OF_SERVICE, UNKNOWN]
        details:
          type: object
          description: Additional component-specific health details
          additionalProperties: true
        components:
          type: object
          description: Nested component health (for composite indicators)
          additionalProperties:
            $ref: '#/components/schemas/ComponentHealth'
    InfoResponse:
      type: object
      description: Application information from registered InfoContributors
      properties:
        build:
          type: object
          description: Build information from META-INF/build-info.properties
          properties:
            artifact:
              type: string
            group:
              type: string
            name:
              type: string
            version:
              type: string
            time:
              type: string
              format: date-time
        git:
          type: object
          description: Git commit information from git.properties
          properties:
            branch:
              type: string
            commit:
              type: object
              properties:
                id:
                  type: string
                time:
                  type: string
                  format: date-time
        java:
          type: object
          description: JVM runtime information
          properties:
            version:
              type: string
            vendor:
              type: object
            runtime:
              type: object
            jvm:
              type: object
        os:
          type: object
          description: Operating system information
          properties:
            name:
              type: string
            version:
              type: string
            arch:
              type: string
    MetricsList:
      type: object
      description: Available Micrometer metric names
      properties:
        names:
          type: array
          items:
            type: string
          example:
            - jvm.memory.used
            - jvm.gc.pause
            - http.server.requests
            - process.uptime
            - system.cpu.usage
    MetricDetail:
      type: object
      description: Measurements and metadata for a specific metric
      properties:
        name:
          type: string
          description: Metric name
        description:
          type: string
          description: Human-readable metric description
        baseUnit:
          type: string
          description: Base measurement unit (bytes, seconds, etc.)
        measurements:
          type: array
          items:
            type: object
            properties:
              statistic:
                type: string
                enum: [COUNT, TOTAL, MAX, VALUE, ACTIVE_TASKS, DURATION, TOTAL_TIME]
              value:
                type: number
        availableTags:
          type: array
          items:
            type: object
            properties:
              tag:
                type: string
              values:
                type: array
                items:
                  type: string
    EnvironmentResponse:
      type: object
      description: Application environment organized by property source
      properties:
        activeProfiles:
          type: array
          description: Currently active Spring profiles
          items:
            type: string
        defaultProfiles:
          type: array
          description: Default Spring profiles
          items:
            type: string
        propertySources:
          type: array
          description: Ordered list of property sources
          items:
            $ref: '#/components/schemas/PropertySource'
    PropertySource:
      type: object
      description: A single property source with its properties
      properties:
        name:
          type: string
          description: Property source name
        properties:
          type: object
          description: Properties from this source
          additionalProperties:
            type: object
            properties:
              value:
                description: Property value (may be masked for sensitive values)
              origin:
                type: string
                description: Where this property was defined
    PropertyDetail:
      type: object
      description: Detail for a specific environment property
      properties:
        property:
          type: object
          properties:
            source:
              type: string
              description: Property source name
            value:
              description: Current property value
        activeContexts:
          type: array
          items:
            type: string
    LoggersResponse:
      type: object
      description: All loggers with their levels
      properties:
        levels:
          type: array
          description: Available log levels
          items:
            type: string
          example: [TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF]
        loggers:
          type: object
          description: Logger configurations keyed by logger name
          additionalProperties:
            $ref: '#/components/schemas/LoggerDetail'
        groups:
          type: object
          description: Logger groups (Spring Boot defined groups)
          additionalProperties:
            type: object
    LoggerDetail:
      type: object
      description: Configuration for a single logger
      properties:
        configuredLevel:
          type: string
          description: Explicitly configured level (null if not set)
          enum: [TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF]
          nullable: true
        effectiveLevel:
          type: string
          description: Effective level inherited from parent if not explicitly set
          enum: [TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF]
    LogLevelRequest:
      type: object
      description: Request body to set a logger level
      properties:
        configuredLevel:
          type: string
          description: Log level to set (null to reset)
          enum: [TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF]
          nullable: true
    ThreadDumpResponse:
      type: object
      description: JVM thread dump snapshot
      properties:
        threads:
          type: array
          items:
            type: object
            properties:
              threadName:
                type: string
              threadId:
                type: integer
                format: int64
              blockedTime:
                type: integer
                format: int64
              blockedCount:
                type: integer
                format: int64
              waitedTime:
                type: integer
                format: int64
              waitedCount:
                type: integer
                format: int64
              lockName:
                type: string
                nullable: true
              lockOwnerId:
                type: integer
                format: int64
              lockOwnerName:
                type: string
                nullable: true
              daemon:
                type: boolean
              inNative:
                type: boolean
              suspended:
                type: boolean
              threadState:
                type: string
                enum: [NEW, RUNNABLE, BLOCKED, WAITING, TIMED_WAITING, TERMINATED]
              priority:
                type: integer
              stackTrace:
                type: array
                items:
                  type: object
                  properties:
                    classLoaderName:
                      type: string
                    moduleName:
                      type: string
                    moduleVersion:
                      type: string
                    methodName:
                      type: string
                    fileName:
                      type: string
                    lineNumber:
                      type: integer
                    className:
                      type: string
                    nativeMethod:
                      type: boolean
    ScheduledTasksResponse:
      type: object
      description: All scheduled tasks registered in the application
      properties:
        cron:
          type: array
          description: Tasks scheduled with cron expressions
          items:
            $ref: '#/components/schemas/ScheduledTask'
        fixedDelay:
          type: array
          description: Tasks scheduled with fixed delay
          items:
            $ref: '#/components/schemas/ScheduledTask'
        fixedRate:
          type: array
          description: Tasks scheduled with fixed rate
          items:
            $ref: '#/components/schemas/ScheduledTask'
        custom:
          type: array
          description: Tasks using custom scheduling triggers
          items:
            $ref: '#/components/schemas/ScheduledTask'
    ScheduledTask:
      type: object
      description: A single scheduled task
      properties:
        runnable:
          type: object
          properties:
            target:
              type: string
              description: Fully qualified method name
        expression:
          type: string
          description: Cron expression (for cron tasks)
        initialDelay:
          type: integer
          format: int64
          description: Initial delay in milliseconds
        interval:
          type: integer
          format: int64
          description: Fixed rate or delay in milliseconds