---
title: "Get Alert"
method: GET
path: "/api/v1/public/alerts/{alert_id}"
tags: ["Alerts"]
---

# Get Alert

`GET /api/v1/public/alerts/{alert_id}`

## Request

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

Get one alert with its full rule for the caller's project.

## Path parameters

- `alert_id` string, required

## Query parameters

- `project_id` string, nullable: Target project for the request. Required when authenticating with a user session token (a user credential is only meaningful scoped to a project); for an API key it is optional and, if given, must match the key's project.

## Response `200`

Successful Response

- AlertDetail: 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

## Other responses

- `401`: Authentication failed
- `404`: Alert not found
- `422`: Validation Error
- `503`: Authentication 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)
