---
title: "Pause or resume an alert"
method: PATCH
path: "/api/v1/public/alerts/{alert_id}/status"
tags: ["Alerts"]
---

# Pause or resume an alert

`PATCH /api/v1/public/alerts/{alert_id}/status`

## Request

- Base URL: `https://app.traceroot.ai`
- URL: `https://app.traceroot.ai/api/v1/public/alerts/{alert_id}/status`
- Auth: HTTP bearer

Pause or resume an alert without touching its rule.

Requires MEMBER role or higher in the project's workspace (the write
service decides). Pausing keeps the severity it stopped at; resuming is a
cold start (state reset, due now). Setting the status the alert already
has is a 200 with nothing changed.

Args:
    request (Request): Incoming request (rate-limit plumbing).
    response (Response): Outgoing response (rate-limit plumbing).
    auth (AccountStampedAuth): Account-scope user auth (session token or
        CLI access JWT); its resolved ``user_id`` becomes the actor.
    alert_id (str): The alert to pause or resume.
    payload (AlertStatusRequest): The project and the target status.
    _live (None): Write-path liveness gate (blocks a revoked JWT session).

Returns:
    UpdateAlertResponse: The alert with its new status and the state flags.

Raises:
    HTTPException: The write service's 400/403/404/409 verbatim, or a
        503 when its response is ambiguous.

## Path parameters

- `alert_id` string, required

## Request body

- AlertStatusRequest: Body for pausing or resuming an alert. Only ACTIVE and PAUSED are settable: PARKED is the evaluator's verdict.
  - `project_id` string, required
  - `status` 'ACTIVE' | 'PAUSED', required

## Response `200`

Successful Response

- UpdateAlertResponse: The updated alert with its full rule, plus what the edit did to its state.
  - `alert` AlertDetail, required: One alert with its full rule: the summary plus filters and gap handling.
    - `aggregation` string, required
    - `alerted_at` string, date-time, nullable, required
    - `create_time` string, date-time, required
    - `creator` string, nullable, required
    - `filters` AlertFilterItem[], required
      - `field` string, required
      - `key` string, nullable
      - `op` '=' | 'contains', required
      - `value` union, required
        - string
        - number
    - `id` string, required
    - `last_error` string, nullable, required
    - `last_error_at` string, date-time, nullable, required
    - `last_evaluated_at` string, date-time, nullable, required
    - `last_notify_at` string, date-time, nullable, required
    - `last_notify_error` string, nullable, required
    - `last_notify_status` string, nullable, required
    - `measure` string, required
    - `name` string, required
    - `no_data_mode` string, required
    - `renotify` AlertRenotify, required: How often an alert re-notifies while it stays in the alerting state. Kept a single-level object rather than a discriminated union, matching the request-side shape. The cross-field rule is enforced by a validator instead, so a contradictory stored rule fails the detail read closed rather than passing through half-typed.
      - `interval_minutes` integer, nullable
      - `mode` 'OFF' | 'EVERY', required
    - `severity` string, required
    - `severity_changed_at` string, date-time, nullable, required
    - `status` string, required
    - `threshold` number, required
    - `threshold_operator` string, required
    - `update_time` string, date-time, required
    - `view` string, required
    - `window` string, required
  - `changed` string[], required
  - `page_cleared` boolean: True when the alert was firing and the edit discarded that page
  - `state_reset` boolean: True when the edit voided the evaluation state and made the rule due now (any evaluated field changed, or the alert was resumed)
  - `updated` boolean, required

## Other responses

- `400`: Invalid request
- `401`: Authentication failed or session revoked
- `403`: Insufficient role or wrong credential kind
- `404`: Not found
- `409`: A parked alert cannot be paused; resume it to run it again
- `422`: Validation Error
- `503`: Write service unavailable

---

[API](https://skmtc.dev/traceroot/apis/traceroot-public-api.md) - [All operations](https://skmtc.dev/traceroot/apis/traceroot-public-api/llms.txt) - [OpenAPI document](https://skmtc.dev/traceroot/apis/traceroot-public-api/revisions/ce6aef96c0d6?raw)
