---
title: "Get an alert"
method: GET
path: "/internal/v1/alerts/{project_id}/{alert_id}"
tags: ["Alerts"]
---

# Get an alert

`GET /internal/v1/alerts/{project_id}/{alert_id}`

Retrieve a specific alert by ID with full event history and assignees.

## Path parameters

- `project_id` integer, required
- `alert_id` integer, required

## Response `200`

Alert details with event history.

- object
  - `alert` Alert, required — An alert fired by a monitor.
    - `id` integer, required
    - `projectId` integer, required
    - `monitorId` integer
    - `name` string, required
    - `type` 'error' | 'metric', required — Alert type.
    - `attrs` object — Custom alert attributes.
    - `event` AlertEvent — A lifecycle event on an alert.
      - `id` integer, required
      - `alertId` integer, required
      - `name` string, required — Event type: created, status_changed, state_changed, priority_changed, recurring, note, assigned.
      - `status` 'unresolved' | 'resolved' | 'archived', required — Alert resolution status.
      - `activityState` 'new' | 'ongoing' | 'escalated' | 'regressed' — Alert activity state while unresolved.
      - `priority` 'info' | 'low' | 'medium' | 'high' — Alert priority level.
      - `createdAt` integer — Unix timestamp (nanoseconds).
    - `createdAt` integer — Unix timestamp (nanoseconds).
    - `updatedAt` integer — Unix timestamp (nanoseconds).
  - `events` AlertEvent[], required
    - `id` integer, required
    - `alertId` integer, required
    - `name` string, required — Event type: created, status_changed, state_changed, priority_changed, recurring, note, assigned.
    - `status` 'unresolved' | 'resolved' | 'archived', required — Alert resolution status.
    - `activityState` 'new' | 'ongoing' | 'escalated' | 'regressed' — Alert activity state while unresolved.
    - `priority` 'info' | 'low' | 'medium' | 'high' — Alert priority level.
    - `createdAt` integer — Unix timestamp (nanoseconds).
  - `assignees` User[], required
    - `id` integer, required
    - `name` string, required
    - `email` string, required
    - `emailConfirmed` boolean
    - `avatar` string — URL to the user's avatar image.
    - `emailsMutedUntil` number — Unix timestamp in nanoseconds until emails are muted.
    - `otpEnabled` boolean — Whether two-factor authentication is enabled.
    - `lastReadAt` number — Unix timestamp in nanoseconds of last read.
    - `timeZone` string — IANA time zone (e.g., America/New_York).
    - `createdAt` number — Unix timestamp in nanoseconds.

## Other responses

- `400` — Invalid request
- `401` — Authentication required
- `403` — Insufficient permissions
- `404` — Resource not found
- `500` — Internal server error

---

[API](https://skmtc.net/uptrace/apis/uptrace-json-api.md) · [All operations](https://skmtc.net/uptrace/apis/uptrace-json-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/uptrace/uptrace-json-api/revisions/550c8881ab9a/schema)
