---
title: "Set a detection alert status"
method: POST
path: "/api/detection_engine/signals/status"
tags: ["Security Detections API"]
---

# Set a detection alert status

`POST /api/detection_engine/signals/status`

**Spaces method and path for this operation:**

<div><span class="operation-verb post">post</span>&nbsp;<span class="operation-path">/s/{space_id}/api/detection_engine/signals/status</span></div>

Refer to [Spaces](https://www.elastic.co/docs/deploy-manage/manage-spaces) for more information.

Set the status of one or more detection alerts.

## Request body

- union
  - union
    - SecurityDetectionsAPICloseAlertsByIds
      - `reason` union — The reason for closing the alerts. Can be one of following predefined reasons: [false_positive, duplicate, true_positive, benign_positive, automated_closure, other] or a custom reason provided by the user through the advanced settings.
        - 'false_positive' | 'duplicate' | 'true_positive' | 'benign_positive' | 'automated_closure' | 'other'
        - string
      - `signal_ids` string[], required — List of alert ids. Use field `_id` on alert document or `kibana.alert.uuid`. Note: signals are a deprecated term for alerts.
      - `status` 'closed', required
    - SecurityDetectionsAPISetAlertsStatusByIdsBase
      - `signal_ids` string[], required — List of alert ids. Use field `_id` on alert document or `kibana.alert.uuid`. Note: signals are a deprecated term for alerts.
      - `status` 'open' | 'acknowledged' | 'in-progress', required — The status of an alert, which can be `open`, `acknowledged`, `in-progress`, or `closed`.
  - union
    - SecurityDetectionsAPICloseAlertsByQuery
      - `conflicts` 'abort' | 'proceed'
      - `query` object, required
      - `reason` union — The reason for closing the alerts. Can be one of following predefined reasons: [false_positive, duplicate, true_positive, benign_positive, automated_closure, other] or a custom reason provided by the user through the advanced settings.
        - 'false_positive' | 'duplicate' | 'true_positive' | 'benign_positive' | 'automated_closure' | 'other'
        - string
      - `runtime_fields` object — Optional map of field name to runtime field type. For each entry, the server defines a runtime field of the given type that reads its value from `_source[fieldName]` and attaches it to the underlying `_update_by_query` as `runtime_mappings`. Allows the `query` to reference non-ECS fields stored on the alert `_source` but not in the alerts index mapping — for example, runtime fields the rule's source index defined at the time the alerts were created. Limited to 100 entries per request; larger maps are rejected.
      - `status` 'closed', required
    - SecurityDetectionsAPISetAlertsStatusByQueryBase
      - `conflicts` 'abort' | 'proceed'
      - `query` object, required
      - `runtime_fields` object — Optional map of field name to runtime field type. For each entry, a runtime field of the specified type is created reading its value from `_source[fieldName]` and included in the query as `runtime_mappings`. Use this to reference fields stored on the alert `_source` that are not part of the Elastic Common Schema (ECS) of the alerts index mapping, for example, custom fields that the rule's source index defined when the alerts were created.
      - `status` 'open' | 'acknowledged' | 'in-progress', required — The status of an alert, which can be `open`, `acknowledged`, `in-progress`, or `closed`.

## Response `200`

Successful response

- object — Elasticsearch update by query response

## Other responses

- `400` — Invalid input data response
- `401` — Unsuccessful authentication response
- `500` — Internal server error response

---

[API](https://skmtc.net/elastic/apis/kibana-apis.md) · [All operations](https://skmtc.net/elastic/apis/kibana-apis/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/elastic/kibana-apis/versions/531c9e2a7d23/schema)
