---
title: "One alert with its delivery record"
method: GET
path: "/alert-events/{event_id}"
tags: ["Alerts"]
---

# One alert with its delivery record

`GET /alert-events/{event_id}`

## Request

- Base URL: `https://adslighthouse.com/api/v1`
- URL: `https://adslighthouse.com/api/v1/alert-events/{event_id}`
- Auth: HTTP bearer

Returns one fired alert (message, facts, evidence link) with its delivery record: status (pending, delivered or failed), attempts so far out of the maximum, the last and next attempt times, when it was delivered and the last failure as shown in the app. The app stores the latest attempt, not a separate row per attempt. A finding covered by a digest is delivered only inside that digest and shares its outcome.

## Path parameters

- `event_id` string, required: The alert event id from list_alert_events or send_test_alert.

## Response `200`

One alert with its delivery record

- object
  - `id` string, required
  - `project_id` string, nullable, required
  - `brand_name` string, required
  - `type` 'competitor_new' | 'competitor_returning' | 'hijack_detected' | 'affiliate_detected' | 'ranking_drop' | 'nklg_re_enable' | 'ingestion_failed' | 'summary_digest', required
  - `title` string, required
  - `text` string, required
  - `facts` object[], required
    - `label` string, required
    - `value` string, required
  - `fired_at` string, required
  - `channel` 'email' | 'webhook' | 'slack', required
  - `delivery_status` 'pending' | 'delivered' | 'failed', required
  - `evidence_url` string, nullable, required: The saved observation behind the alert, opened in the app after sign-in.
  - `rule_id` string, required
  - `test` boolean, required: True for a synthetic event requested with send_test_alert.
  - `delivery` object, required
    - `status` 'pending' | 'delivered' | 'failed', required
    - `attempts` integer, required: Delivery attempts started so far, including one still running.
    - `max_attempts` integer, required
    - `last_attempt_at` string, nullable, required
    - `next_attempt_at` string, nullable, required: While pending: when the running attempt's lease ends or the retry is due.
    - `delivered_at` string, nullable, required
    - `last_error` string, nullable, required: The last failure as shown in the app's alert history. Unrecognized errors appear as a neutral message.
    - `delivered_by_digest_id` string, nullable, required: When set, this finding is delivered only inside that digest event and shares its outcome.
  - `request_id` string

## Other responses

- `400`: Invalid parameters, cursor or body.
- `401`: Missing, invalid, expired or revoked credential.
- `403`: The credential lacks the write scope, the plan does not include the API, or the allowance is used up.
- `404`: Unknown project, keyword or run in this account.
- `409`: The idempotency key was already used for a different request.
- `429`: Rate limit reached. Retry after the Retry-After seconds.
- `503`: The requested service or file is temporarily unavailable.

---

[API](https://skmtc.dev/adslighthouse/apis/ads-lighthouse-api.md) · [All operations](https://skmtc.dev/adslighthouse/apis/ads-lighthouse-api/llms.txt) · [OpenAPI document](https://skmtc.dev/adslighthouse/apis/ads-lighthouse-api/revisions/e1a4a40b11a9?raw)
