---
title: "List alarms"
method: GET
path: "/projects/{project_id}/alarms"
tags: ["Alarms"]
---

# List alarms

`GET /projects/{project_id}/alarms`

## Request

- Base URL: `https://app.honeybadger.io/v3`
- URL: `https://app.honeybadger.io/v3/projects/{project_id}/alarms`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/honeybadger/apis/honeybadger-api/docs/projects/:project_id/alarms/get.ts> (a function with typed inputs; its response is checked against the schema)

Returns every alarm on the project.

## Path parameters

- `project_id` string, required

## Response `200`

Success

- object
  - `data` Alarm[], required
    - `id` string, required
    - `project_id` string, required: ID of the project this alarm belongs to
    - `name` string, required: Alarm name
    - `description` string, nullable, required: Alarm description
    - `state` 'initial' | 'alarm' | 'ok', required: Current alarm state
    - `query` string, nullable, required: BadgerQL run on each check, as the text a create or update sent.
    - `stream_ids` string[], nullable, required: Associated stream identifiers
    - `evaluation_period` string, nullable, required: Window each evaluation covers, as a compact duration. The API rejects a spelled-out interval like `5 minutes`.
    - `lookback_lag` string, nullable, required: How far behind now the window ends, allowing for ingestion delay. Same compact duration format as `evaluation_period`.
    - `trigger_config` AlarmTriggerConfig, required: What turns the alarm on. Sent whole: on update, a `trigger_config` replaces the stored one rather than merging into it.
      - `type` 'alert_result_count', required: `alert_result_count` compares the number of results the query returns.
      - `config` AlarmTriggerCondition, required: The comparison against the query's result that fires the trigger
        - `operator` 'gt' | 'gte' | 'lt' | 'lte' | 'eq' | 'neq', required: How the query's result is compared with `value`: greater than, greater than or equal, less than, less than or equal, equal, or not equal.
        - `value` number, double, required: Threshold to compare against. `alert_result_count` takes a whole number >= 0.
    - `error` string, nullable, required: Error message if the alarm is in an error state
    - `last_checked_at` string, date-time, nullable, required: When the alarm was last evaluated
    - `next_check_at` string, date-time, nullable, required: When the alarm will next be evaluated
    - `created_at` string, date-time, required: When the alarm was created
    - `updated_at` string, date-time, required: When the alarm was last updated
    - `links` WebLinks, required: Links into the Honeybadger web UI
      - `web` string, uri, required: The resource's page in the Honeybadger web UI, as an absolute URL. Resources without a page, such as outages and deploys, don't have `links`. For a project provisioned through Heroku, error, notice and comment links go through Heroku's single sign-on.
  - `meta` ResponseMeta
    - `request_id` string: Unique identifier for the request, for correlating with support

## Other responses

- `401`: The credential is missing, invalid, expired or revoked (`unauthorized`), or was sent in a way v3 doesn't accept (see the examples).
- `403`: The credential isn't allowed to do this. `error.code` says why. An account or project the credential doesn't cover is 404 `not_found`, not 403.
- `404`: Resource not found
- `422`: No path names the account, so the API token has to. This is returned when the token covers more than one account and the account a request applies to cannot be determined. Use a token bound to a single account.
- `503`: Alarms are temporarily unavailable. Retry later.

---

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