Prometheus rules API

Query recording and alerting rules.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

prometheus-io-rules-api-openapi.yml Raw ↑
swagger: '2.0'
info:
  version: 0.0.1
  title: Alertmanager admin rules API
  description: API of the Prometheus Alertmanager (https://github.com/prometheus/alertmanager)
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
basePath: /api/v2/
consumes:
- application/json
produces:
- application/json
tags:
- name: rules
  description: Query recording and alerting rules.
paths:
  /rules:
    get:
      tags:
      - rules
      summary: Get alerting and recording rules
      operationId: rules
      parameters:
      - name: type
        in: query
        description: 'Filter by rule type: alert or record.'
        required: false
        explode: false
        schema:
          type: string
        examples:
          example:
            value: alert
      - name: rule_name[]
        in: query
        description: Filter by rule name.
        required: false
        explode: false
        schema:
          type: array
          items:
            type: string
        examples:
          example:
            value:
            - HighErrorRate
      - name: rule_group[]
        in: query
        description: Filter by rule group name.
        required: false
        explode: false
        schema:
          type: array
          items:
            type: string
        examples:
          example:
            value:
            - example_alerts
      - name: file[]
        in: query
        description: Filter by file path.
        required: false
        explode: false
        schema:
          type: array
          items:
            type: string
        examples:
          example:
            value:
            - /etc/prometheus/rules.yml
      - name: match[]
        in: query
        description: Label matchers to filter rules.
        required: false
        explode: false
        schema:
          type: array
          items:
            type: string
        examples:
          example:
            value:
            - '{severity="critical"}'
      - name: exclude_alerts
        in: query
        description: Exclude active alerts from response.
        required: false
        explode: false
        schema:
          type: string
        examples:
          example:
            value: 'false'
      - name: group_limit
        in: query
        description: Maximum number of rule groups to return.
        required: false
        explode: false
        schema:
          type: integer
          format: int64
        examples:
          example:
            value: 100
      - name: group_next_token
        in: query
        description: Pagination token for next page.
        required: false
        explode: false
        schema:
          type: string
        examples:
          example:
            value: abc123
      responses:
        '200':
          description: Rules retrieved successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RulesOutputBody'
              examples:
                ruleGroups:
                  summary: Alerting and recording rules
                  value:
                    data:
                      groups:
                      - evaluationTime: 0.000561635
                        file: /etc/prometheus/rules/ansible_managed.yml
                        interval: 15
                        lastEvaluation: '2026-01-02T13:36:56.874Z'
                        limit: 0
                        name: ansible managed alert rules
                        rules:
                        - annotations:
                            description: This is an alert meant to ensure that the entire alerting pipeline is functional. This alert is always firing, therefore it should always be firing in Alertmanager and always fire against a receiver. There are integrations with various notification mechanisms that send a notification when this alert is not firing. For example the "DeadMansSnitch" integration in PagerDuty.
                            summary: Ensure entire alerting pipeline is functional
                          duration: 600
                          evaluationTime: 0.000356688
                          health: ok
                          keepFiringFor: 0
                          labels:
                            severity: warning
                          lastEvaluation: '2026-01-02T13:36:56.874Z'
                          name: Watchdog
                          query: vector(1)
                          state: firing
                          type: alerting
                    status: success
        default:
          description: Error retrieving rules.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                tsdbNotReady:
                  summary: TSDB not ready
                  value:
                    error: TSDB not ready
                    errorType: internal
                    status: error
components:
  schemas:
    RuleGroup:
      type: object
      properties:
        name:
          type: string
          description: Name of the rule group.
        file:
          type: string
          description: File containing the rule group.
        rules:
          type: array
          items:
            type: object
            description: Rule definition.
          description: Rules in this group.
        interval:
          type: number
          format: double
          description: Evaluation interval in seconds.
        limit:
          type: integer
          format: int64
          description: Maximum number of alerts for this group.
        evaluationTime:
          type: number
          format: double
          description: Time taken to evaluate the group in seconds.
        lastEvaluation:
          type: string
          format: date-time
          description: Timestamp of the last evaluation.
      required:
      - name
      - file
      - rules
      - interval
      - limit
      - evaluationTime
      - lastEvaluation
      additionalProperties: false
      description: Rule group information.
    RuleDiscovery:
      type: object
      properties:
        groups:
          type: array
          items:
            $ref: '#/components/schemas/RuleGroup'
        groupNextToken:
          type: string
          description: Pagination token for the next page of groups.
      required:
      - groups
      additionalProperties: false
      description: Rule discovery information containing all rule groups.
    Error:
      type: object
      properties:
        status:
          type: string
          enum:
          - success
          - error
          description: Response status.
          example: success
        errorType:
          type: string
          description: Type of error that occurred.
          example: bad_data
        error:
          type: string
          description: Human-readable error message.
          example: invalid parameter
      required:
      - status
      - errorType
      - error
      additionalProperties: false
      description: Error response.
    RulesOutputBody:
      type: object
      properties:
        status:
          type: string
          enum:
          - success
          - error
          description: Response status.
          example: success
        data:
          $ref: '#/components/schemas/RuleDiscovery'
        warnings:
          type: array
          items:
            type: string
          description: Only set if there were warnings while executing the request. There will still be data in the data field.
        infos:
          type: array
          items:
            type: string
          description: Only set if there were info-level annotations while executing the request.
      required:
      - status
      - data
      additionalProperties: false
      description: Response body for rules endpoint.