---
title: "Update an alert rule"
method: PATCH
path: "/v1/alert-rules/{id}"
tags: ["alert-rules"]
---

# Update an alert rule

`PATCH /v1/alert-rules/{id}`

## Request

- Base URL: `https://api.brixsignage.com`
- URL: `https://api.brixsignage.com/v1/alert-rules/{id}`
- Auth: HTTP bearer

Update an alert rule's `name`, `trigger`, `config`, `enabled` flag, or `nodeId`. The same scope validation used when creating a rule applies here. To keep a saved URL, send its masked value back unchanged. To replace it, send the new URL. A masked value that matches no saved URL is refused.

## Path parameters

- `id` string, required

## Request body

- object
  - `name` string
  - `trigger` string
  - `config` AlertRuleConfig: The rule's trigger, scope and delivery settings. Other keys pass through unchanged.
    - `codes` string[]: Every trigger code the rule watches; the first is also `trigger`.
    - `severity` string
    - `scopeKind` string: `workspace`, `org_unit`, `location`, `screen_group` or `screen`.
    - `scopeId` string
    - `thresholds` object
    - `channels` string[]: `in-app`, `email`, `webhook`, `teams`.
    - `recipients` string[]: Email addresses, `role:` tokens and webhook URLs. Webhook URLs are Masked: a delivery URL is a credential (a Microsoft Teams workflow URL carries it in `sig=`), so every response shows the host and the last four characters only — `https://prod-12.westus.logic.azure.com/…?sig=••••a1b2`. On update, send a masked value back unchanged to keep the saved URL, or a full URL to replace it.
    - `teamsUrls` string[]: Microsoft Teams workflow URLs for the `teams` channel. Masked: a delivery URL is a credential (a Microsoft Teams workflow URL carries it in `sig=`), so every response shows the host and the last four characters only — `https://prod-12.westus.logic.azure.com/…?sig=••••a1b2`. On update, send a masked value back unchanged to keep the saved URL, or a full URL to replace it.
  - `enabled` boolean
  - `nodeId` string, nullable
  - `baseUpdatedAt` string: The `updatedAt` your edit is based on; 409 with the current row if it moved.

## Response `200`

Success.

- object
  - `data` AlertRule, required
    - `id` string, required: Alert rule id.
    - `spaceId` string, required
    - `name` string, required
    - `trigger` string, required: The first trigger code, e.g. `connection-lost`.
    - `config` AlertRuleConfig, required: The rule's trigger, scope and delivery settings. Other keys pass through unchanged.
      - `codes` string[]: Every trigger code the rule watches; the first is also `trigger`.
      - `severity` string
      - `scopeKind` string: `workspace`, `org_unit`, `location`, `screen_group` or `screen`.
      - `scopeId` string
      - `thresholds` object
      - `channels` string[]: `in-app`, `email`, `webhook`, `teams`.
      - `recipients` string[]: Email addresses, `role:` tokens and webhook URLs. Webhook URLs are Masked: a delivery URL is a credential (a Microsoft Teams workflow URL carries it in `sig=`), so every response shows the host and the last four characters only — `https://prod-12.westus.logic.azure.com/…?sig=••••a1b2`. On update, send a masked value back unchanged to keep the saved URL, or a full URL to replace it.
      - `teamsUrls` string[]: Microsoft Teams workflow URLs for the `teams` channel. Masked: a delivery URL is a credential (a Microsoft Teams workflow URL carries it in `sig=`), so every response shows the host and the last four characters only — `https://prod-12.westus.logic.azure.com/…?sig=••••a1b2`. On update, send a masked value back unchanged to keep the saved URL, or a full URL to replace it.
    - `enabled` boolean, required
    - `nodeId` string, nullable, required: Home location; null = workspace root.
    - `createdAt` string, required: ISO-8601 timestamp (UTC).
    - `updatedAt` string, required: ISO-8601 timestamp (UTC).
    - `deletedAt` string, nullable, required: ISO-8601 timestamp (UTC).

## Other responses

- `401`: Missing, expired or revoked bearer token.
- `403`: The token lacks the permission this operation needs (see `x-brix-permission`).
- `404`: No rule with this id.
- `409`: `conflict`: changed since `baseUpdatedAt`; the body carries `current`.
- `422`: The scope target does not exist, a Microsoft Teams URL is not a workflow URL, or a masked URL matches no saved URL.
- `5XX`: Server error. The body carries a `requestId` to quote to support.

---

[API](https://skmtc.dev/brixsignage/apis/brix-api.md) · [All operations](https://skmtc.dev/brixsignage/apis/brix-api/llms.txt) · [OpenAPI document](https://skmtc.dev/brixsignage/apis/brix-api/revisions/02fd3665dc7d?raw)
