List action policies Experimental; added in 9.5.0

GET /api/alerting/v2/action_policies

Spaces method and path for this operation:

get /s/{space_id}/api/alerting/v2/action_policies

Refer to Spaces for more information.

Get a paginated list of action policies with optional filtering and sorting.

[Required authorization] Route required privileges: read_alerting-v2-action-policies.

Query parameters

  • page number

    The page number to return. Defaults to 1.

    Minimum value is 1.

  • per_page number

    The number of action policies to return per page. Defaults to 20.

    Minimum value is 1, maximum value is 100.

  • tags array[string]

    Filter by tags. Accepts a single string or an array.

    Not more than 10 elements. Minimum length of each is 1, maximum length of each is 128.

  • enabled string

    Filter by enabled status. Accepts the strings true or false.

    Values are true or false.

  • sort_field string

    The field to sort action policies by.

    Values are name, created_at, or updated_at.

  • sort_order string

    The sort direction.

    Values are asc or desc.

Responses

  • 200 application/json

    Returns a paginated list of action policies.

    Hide response attributes Show response attributes object
    • items array[object] Required

      The list of action policies.

      Hide items attributes Show items attributes object
      • auth object Required

        Authentication and ownership information.

        Additional properties are NOT allowed.

        Hide auth attributes Show auth attributes object
        • created_by_user boolean Required

          Whether this policy was created by a user (vs system-generated).

        • owner string Required

          The owner of the action policy.

      • created_at string Required

        The ISO datetime when the action policy was created.

      • created_by string | null Required

        The user ID who created the action policy.

      • description string Required

        A description of the action policy.

      • destinations array[object] Required

        The list of destinations.

        Hide destinations attributes Show destinations attributes object

        An action policy destination configuration.

        • id string Required

          The workflow connector identifier.

          Minimum length is 1, maximum length is 150.

        • type string Required Discriminator

          The destination type.

          Value is workflow.

      • enabled boolean Required

        Whether the action policy is enabled.

      • group_by array[string] | null Required

        The fields used to group alerts, or null for no grouping.

      • grouping_mode string Required

        The grouping mode for alert notifications.

        Any of:

        one notification per alert episode lifecycle (default).

        Value is per_episode.

        a single notification for all matching episodes.

        Value is all.

        group by specified groupBy fields.

        Value is per_field.

      • id string Required

        The unique identifier for the action policy.

      • matcher string | null Required

        A KQL query to match alerts, or null to match all.

      • name string Required

        The name of the action policy.

      • snoozed_until string | null Required

        The ISO datetime until which the policy is snoozed, or null if not snoozed.

      • tags array[string] | null Required

        Tags associated with the action policy.

      • throttle object | null Required

        The throttle configuration for notifications.

        Additional properties are NOT allowed.

        Hide throttle attributes Show throttle attributes object | null
        • interval string | null Required

          The throttle interval duration (e.g. 5m, 1h), or null when the strategy is intervalless.

        • strategy string

          The throttle strategy.

          Any of:

          notify only on episode status transitions (default for per_episode).

          Value is on_status_change.

          notify on transitions and at regular intervals.

          Value is per_status_interval.

          notify at regular intervals regardless of status (default for all/per_field).

          Value is time_interval.

          notify on every evaluation cycle (high volume).

          Value is every_time.

      • updated_at string Required

        The ISO datetime when the action policy was last updated.

      • updated_by string | null Required

        The user ID who last updated the action policy.

      • version string

        The version, used for optimistic concurrency control.

    • page number Required

      The current page number.

    • per_page number Required

      The number of action policies per page.

    • total number Required

      The total number of action policies matching the query.

  • 400 application/json

    Indicates an invalid schema or parameters.

    Hide response attributes Show response attributes object
    • code string Required

      A stable, machine-readable error code (e.g., "RULE_NOT_FOUND", "INVALID_SCHEDULE"). Safe for clients to branch on.

    • details object

      Optional structured context (e.g., validation field errors, conflict resource IDs).

      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 human-friendly explanation of the error. Subject to change without notice. Do not parse or rely on its content.

  • 401 application/json

    Indicates the request was not authenticated.

    Hide response attributes Show response attributes object
    • code string Required

      A stable, machine-readable error code (e.g., "RULE_NOT_FOUND", "INVALID_SCHEDULE"). Safe for clients to branch on.

    • details object

      Optional structured context (e.g., validation field errors, conflict resource IDs).

      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 human-friendly explanation of the error. Subject to change without notice. Do not parse or rely on its content.

  • 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

      A stable, machine-readable error code (e.g., "RULE_NOT_FOUND", "INVALID_SCHEDULE"). Safe for clients to branch on.

    • details object

      Optional structured context (e.g., validation field errors, conflict resource IDs).

      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 human-friendly explanation of the error. Subject to change without notice. Do not parse or rely on its content.

  • 500 application/json

    Indicates an unexpected server-side error.

    Hide response attributes Show response attributes object
    • code string Required

      A stable, machine-readable error code (e.g., "RULE_NOT_FOUND", "INVALID_SCHEDULE"). Safe for clients to branch on.

    • details object

      Optional structured context (e.g., validation field errors, conflict resource IDs).

      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 human-friendly explanation of the error. Subject to change without notice. Do not parse or rely on its content.

  • 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

      A stable, machine-readable error code (e.g., "RULE_NOT_FOUND", "INVALID_SCHEDULE"). Safe for clients to branch on.

    • details object

      Optional structured context (e.g., validation field errors, conflict resource IDs).

      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 human-friendly explanation of the error. Subject to change without notice. Do not parse or rely on its content.

GET /api/alerting/v2/action_policies
curl \
 --request GET 'https://localhost:5601/api/alerting/v2/action_policies' \
 --header "Authorization: $API_KEY"
Response examples (200)
{
  "items": [
    {
      "auth": {
        "created_by_user": true,
        "owner": "elastic"
      },
      "created_at": "2026-01-15T12:00:00.000Z",
      "created_by": "elastic",
      "description": "Sends a workflow notification when matching host alerts fire.",
      "destinations": [
        {
          "id": "workflow-1",
          "type": "workflow"
        }
      ],
      "enabled": true,
      "group_by": null,
      "grouping_mode": "per_episode",
      "id": "action-policy-1",
      "matcher": "host.name: \"web-*\"",
      "name": "Notify on host alerts",
      "snoozed_until": null,
      "tags": [
        "production"
      ],
      "throttle": {
        "interval": null,
        "strategy": "on_status_change"
      },
      "updated_at": "2026-01-15T12:00:00.000Z",
      "updated_by": "elastic",
      "version": "WzAsMV0="
    }
  ],
  "page": 1,
  "per_page": 20,
  "total": 1
}
Response examples (400)
{
  "code": "BAD_REQUEST",
  "details": {
    "errors": {
      "errors": [],
      "properties": {
        "page": {
          "errors": [
            "Too small: expected number to be >=1"
          ]
        }
      }
    }
  },
  "error": "Bad Request",
  "message": "page: Too small: expected number to be >=1"
}
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."
}