---
title: "Alert rules configured in the account"
method: GET
path: "/alert-rules"
tags: ["Alerts"]
---

# Alert rules configured in the account

`GET /alert-rules`

## Request

- Base URL: `https://adslighthouse.com/api/v1`
- URL: `https://adslighthouse.com/api/v1/alert-rules`
- Auth: HTTP bearer

Lists the account's alert rules, oldest first, optionally for one project: what each watches (type and engine, device and country restrictions), where it sends (email address, or only the host of a webhook or Slack URL) and whether it is enabled. This is the equivalent of webhook subscriptions: a webhook rule POSTs each alert, signed with the rule's secret, to your HTTPS endpoint. Signing secrets are never listed.

## Query parameters

- `project_id` string: The project: its id, its brand domain (for example nike.example) or its exact project or brand name. Unknown or ambiguous references return not_found; call list_projects then.

## Response `200`

Alert rules configured in the account

- object
  - `data` object[], required
    - `id` string, required
    - `project_id` string, nullable, required
    - `project_name` 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
    - `type_label` string, required
    - `channel` 'email' | 'webhook' | 'slack', required
    - `destination` string, nullable, required: Email address, or the host of a webhook or Slack URL (the full URL is never returned). null for an email rule that goes to the account owner.
    - `enabled` boolean, required
    - `filters` object, nullable, required: Which observations the rule watches. null in a dimension means every value; values within a dimension combine with OR, dimensions with AND.
      - `engines` string[], nullable, required
      - `devices` string[], nullable, required
      - `countries` string[], nullable, required
    - `schedule` object, nullable, required: When a scheduled summary (type summary_digest) is sent. Each summary covers the complete local days before its delivery day: the day before (daily) or the seven days before (weekly).
      - `cadence` 'daily' | 'weekly', required
      - `weekday` 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday' | 'sunday', nullable, required: The day a weekly summary is sent; null for a daily summary.
      - `hour` integer, required: Local hour of delivery, 0 to 23, at minute 00.
      - `time_zone` string, required: The IANA time zone the hour and the covered days use, kept on the rule when someone else edits it.
      - `next_delivery_at` string, nullable, required: When the next summary is sent; null while the rule is paused.
    - `created_at` string, required
  - `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)
