List rule executions Generally available; added in 9.6.0

GET /api/alerting/v2/execution_history/rules

Spaces method and path for this operation:

get /s/{space_id}/api/alerting/v2/execution_history/rules

Refer to Spaces for more information.

Get a paginated list of rule execution events.

[Required authorization] Route required privileges: read_alerting-v2-execution-history.

Query parameters

  • rule_ids array[string]

    Rule id filter.

    At least 1 but not more than 50 elements. Minimum length of each is 1, maximum length of each is 150.

  • outcomes array[string]

    Outcome filter.

    At least 1 but not more than 2 elements. Values are success or failure.

  • from string(date-time)

    Inclusive ISO datetime lower bound on event.start. Defaults to 24 hours before to, or before the request when to is omitted. Set it to see older executions.

    Maximum length is 64.

  • to string(date-time)

    Inclusive ISO datetime upper bound on event.start.

    Maximum length is 64.

  • sort_field string Required

    Sort field. Defaults to started_at.

    Values are started_at or duration_ms. Default value is started_at.

  • sort_order string Required

    Sort direction.

    Values are asc or desc. Default value is desc.

  • page integer Required

    Page number.

    Minimum value is 1, maximum value is 10000. Default value is 1.

  • per_page integer Required

    Number of results per page.

    Minimum value is 1, maximum value is 100. Default value is 20.

Responses

  • 200 application/json

    Returns a paginated list of rule execution events.

    Hide response attributes Show response attributes object
    • items array[object] Required
      Hide items attributes Show items attributes object
      • ended_at string(date-time) Required

        Maximum length is 64.

      • error object

        Failure details. Omitted on a successful run, or when the failure was unclassified.

        Additional properties are NOT allowed.

        Hide error attributes Show error attributes object
        • message string Required
        • stack_trace string

          Omitted when the source recorded no trace.

      • id string Required
      • outcome string Required

        Values are success or failure.

      • reason string

        Why the run ended the way it did. Omitted when the source recorded no reason.

      • rule object Required

        Additional properties are NOT allowed.

        Hide rule attributes Show rule attributes object
        • id string Required
        • version integer

          The rule version this run executed. Omitted until the rule executor emits its own event; the task-run event does not carry one.

          Minimum value is -9007199254740991, maximum value is 9007199254740991.

      • started_at string(date-time) Required

        Maximum length is 64.

      • timings object Required

        Additional properties are NOT allowed.

        Hide timings attributes Show timings attributes object
        • duration_ms integer Required

          Wall-clock duration of the run, in milliseconds.

          Minimum value is 0, maximum value is 9007199254740991.

        • scheduled_delay_ms integer Required

          Delay between the scheduled run time and the actual start, in milliseconds. Negative when the run started ahead of its scheduled time.

          Minimum value is -9007199254740991, maximum value is 9007199254740991.

    • page integer Required

      Minimum value is 1, maximum value is 9007199254740991.

    • per_page integer Required

      Minimum value is 1, maximum value is 9007199254740991.

    • search_matches object

      Match counts for the active search. Omitted when no search was provided.

      Additional properties are NOT allowed.

      Hide search_matches attributes Show search_matches attributes object
      • is_truncated boolean Required

        True when more than 500 rules matched the search. Only the executions of the first 500 matching rules are returned, so the results are incomplete. Narrow the search to see the rest.

      • rule_count integer Required

        The number of rules matching the search. This count is an estimate: results above 10,000 may be reported as 10,000.

        Minimum value is 0, maximum value is 9007199254740991.

    • total integer Required

      The number of rule executions matching the query. This count is an estimate: results above 10,000 may be reported as 10,000.

      Minimum value is 0, maximum value is 9007199254740991.

  • 400 application/json

    Indicates an invalid schema or parameters.

    Hide response attributes Show response attributes object
    • code string Required

      Stable error code you can branch on, for example INVALID_SCHEDULE or RULE_ALREADY_EXISTS.

    • details object

      Optional structured context whose keys depend on code. Identifier keys such as rule_id, action_policy_id and group_hash are stable, permanent public identifiers. On a 400 request-validation error, details.source (params, query, or body) names the failing part and is the only guaranteed key. The sibling details.errors may change. Do not branch on it.

      Additional properties are allowed.

    • error string Required

      A short human-readable summary of the error category (e.g., "Not Found", "Bad Request"). Subject to change without notice. Do not parse or rely on its content.

    • message string Required

      A readable explanation of the error. The wording can change without notice. Do not parse this field.

  • 401 application/json

    Indicates the request was not authenticated.

    Hide response attributes Show response attributes object
    • code string Required

      Stable error code you can branch on, for example INVALID_SCHEDULE or RULE_ALREADY_EXISTS.

    • details object

      Optional structured context whose keys depend on code. Identifier keys such as rule_id, action_policy_id and group_hash are stable, permanent public identifiers. On a 400 request-validation error, details.source (params, query, or body) names the failing part and is the only guaranteed key. The sibling details.errors may change. Do not branch on it.

      Additional properties are allowed.

    • error string Required

      A short human-readable summary of the error category (e.g., "Not Found", "Bad Request"). Subject to change without notice. Do not parse or rely on its content.

    • message string Required

      A readable explanation of the error. The wording can change without notice. Do not parse this field.

  • 403 application/json

    Indicates the user does not have the required privileges to perform the request.

    Hide response attributes Show response attributes object
    • code string Required

      Stable error code you can branch on, for example INVALID_SCHEDULE or RULE_ALREADY_EXISTS.

    • details object

      Optional structured context whose keys depend on code. Identifier keys such as rule_id, action_policy_id and group_hash are stable, permanent public identifiers. On a 400 request-validation error, details.source (params, query, or body) names the failing part and is the only guaranteed key. The sibling details.errors may change. Do not branch on it.

      Additional properties are allowed.

    • error string Required

      A short human-readable summary of the error category (e.g., "Not Found", "Bad Request"). Subject to change without notice. Do not parse or rely on its content.

    • message string Required

      A readable explanation of the error. The wording can change without notice. Do not parse this field.

  • 500 application/json

    Indicates an unexpected server-side error.

    Hide response attributes Show response attributes object
    • code string Required

      Stable error code you can branch on, for example INVALID_SCHEDULE or RULE_ALREADY_EXISTS.

    • details object

      Optional structured context whose keys depend on code. Identifier keys such as rule_id, action_policy_id and group_hash are stable, permanent public identifiers. On a 400 request-validation error, details.source (params, query, or body) names the failing part and is the only guaranteed key. The sibling details.errors may change. Do not branch on it.

      Additional properties are allowed.

    • error string Required

      A short human-readable summary of the error category (e.g., "Not Found", "Bad Request"). Subject to change without notice. Do not parse or rely on its content.

    • message string Required

      A readable explanation of the error. The wording can change without notice. Do not parse this field.

  • 503 application/json

    Indicates the alerting engine is disabled by the alerting:v2:enabled advanced setting.

    Hide response attributes Show response attributes object
    • code string Required

      Stable error code you can branch on, for example INVALID_SCHEDULE or RULE_ALREADY_EXISTS.

    • details object

      Optional structured context whose keys depend on code. Identifier keys such as rule_id, action_policy_id and group_hash are stable, permanent public identifiers. On a 400 request-validation error, details.source (params, query, or body) names the failing part and is the only guaranteed key. The sibling details.errors may change. Do not branch on it.

      Additional properties are allowed.

    • error string Required

      A short human-readable summary of the error category (e.g., "Not Found", "Bad Request"). Subject to change without notice. Do not parse or rely on its content.

    • message string Required

      A readable explanation of the error. The wording can change without notice. Do not parse this field.

GET /api/alerting/v2/execution_history/rules
curl \
 --request GET 'https://localhost:5601/api/alerting/v2/execution_history/rules?sort_field=started_at&sort_order=desc&page=1&per_page=20' \
 --header "Authorization: $API_KEY"
Response examples (200)
{
  "items": [
    {
      "ended_at": "2026-01-15T12:00:01.250Z",
      "id": "execution-1",
      "outcome": "success",
      "rule": {
        "id": "rule-1",
        "version": 3
      },
      "started_at": "2026-01-15T12:00:00.000Z",
      "timings": {
        "duration_ms": 1250,
        "scheduled_delay_ms": 40
      }
    }
  ],
  "page": 1,
  "per_page": 20,
  "total": 1
}
Response examples (400)
{
  "code": "BAD_REQUEST",
  "details": {
    "errors": {
      "page": [
        "page * per_page cannot exceed 10000."
      ]
    }
  },
  "error": "Bad Request",
  "message": "page * per_page cannot exceed 10000."
}
Response examples (401)
{
  "code": "UNAUTHORIZED",
  "error": "Unauthorized",
  "message": "Authentication required to access this API."
}
Response examples (403)
{
  "code": "FORBIDDEN",
  "error": "Forbidden",
  "message": "The current user does not have the required privileges for this request."
}
Response examples (500)
{
  "code": "INTERNAL_SERVER_ERROR",
  "error": "Internal Server Error",
  "message": "An unexpected error occurred."
}
Response examples (503)
{
  "code": "ALERTING_DISABLED",
  "error": "Service Unavailable",
  "message": "Alerting is disabled."
}