---
title: "Update Alert"
method: PUT
path: "/api/v2/alerts/{id}"
tags: ["Alerts"]
---

# Update Alert

`PUT /api/v2/alerts/{id}`

Updates an existing alert

## Path parameters

- `id` string, required

## Request body

- UpdateAlertRequest
  - `dashboardId` string, nullable — Dashboard ID for tile-based alerts.
  - `tileId` string, nullable — Tile ID for tile-based alerts.
  - `savedSearchId` string, nullable — Saved search ID for saved_search alerts.
  - `groupBy` string, nullable — Group-by key for saved search alerts.
  - `threshold` number, required — Threshold value for triggering the alert.
  - `interval` '1m' | '5m' | '15m' | '30m' | '1h' | '6h' | '12h' | '1d', required — Evaluation interval.
  - `source` 'saved_search' | 'tile', required — Alert source type.
  - `thresholdType` 'above' | 'below', required — Threshold comparison direction.
  - `channel` AlertChannel, required
    - `type` 'webhook', required — Channel type.
    - `webhookId` string, required — Webhook destination ID.
  - `name` string, nullable — Human-friendly alert name.
  - `message` string, nullable — Alert message template.

## Response `200`

Successfully updated alert

- AlertResponseEnvelope
  - `data` AlertResponse
    - `dashboardId` string, nullable — Dashboard ID for tile-based alerts.
    - `tileId` string, nullable — Tile ID for tile-based alerts.
    - `savedSearchId` string, nullable — Saved search ID for saved_search alerts.
    - `groupBy` string, nullable — Group-by key for saved search alerts.
    - `threshold` number — Threshold value for triggering the alert.
    - `interval` '1m' | '5m' | '15m' | '30m' | '1h' | '6h' | '12h' | '1d' — Evaluation interval.
    - `source` 'saved_search' | 'tile' — Alert source type.
    - `thresholdType` 'above' | 'below' — Threshold comparison direction.
    - `channel` AlertChannel
      - `type` 'webhook', required — Channel type.
      - `webhookId` string, required — Webhook destination ID.
    - `name` string, nullable — Human-friendly alert name.
    - `message` string, nullable — Alert message template.
    - `id` string — Unique alert identifier.
    - `state` 'ALERT' | 'OK' | 'INSUFFICIENT_DATA' | 'DISABLED' — Current alert state.
    - `teamId` string — Team identifier.
    - `silenced` AlertSilenced — Silencing metadata.
      - `by` string, nullable — User ID who silenced the alert.
      - `at` string, date-time — Silence start timestamp.
      - `until` string, date-time — Silence end timestamp.
    - `createdAt` string, date-time, nullable — Creation timestamp.
    - `updatedAt` string, date-time, nullable — Last update timestamp.

## Other responses

- `401` — Unauthorized
- `404` — Alert not found
- `500` — Server error or validation failure

## Changes

- **2026-02-02** `e856dc2f1417` — 3 breaking, 28 warning, 1 info
  - added `#/components/schemas/Alert, subschema #2` to the request body `allOf` list
  - the request's body type/format changed from `object`/`` to ``/``
  - the `data` response's property type/format changed from `object`/`` to ``/`` for status `200`
  - removed the request property `channel`
  - …28 more
- **2026-01-30** `ed852374c451` — 2 breaking, 1 warning, 30 info
  - the request's body type/format changed from ``/`` to `object`/``
  - the `data` response's property type/format changed from ``/`` to `object`/`` for status `200`
  - removed `#/components/schemas/Alert, subschema #2` from the request body `allOf` list
  - added the new optional request property `channel`
  - …29 more

[Change history](https://skmtc.dev/hyperdxio/apis/hyperdx-external-api/changes/api/v2/alerts/:id/put.md)

---

[API](https://skmtc.dev/hyperdxio/apis/hyperdx-external-api.md) · [All operations](https://skmtc.dev/hyperdxio/apis/hyperdx-external-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/hyperdxio/hyperdx-external-api/revisions/ca7f63e15766/schema)
