---
title: "List incidents for a check"
method: GET
path: "/api/v1/checks/{id}/incidents"
tags: ["Events"]
---

# List incidents for a check

`GET /api/v1/checks/{id}/incidents`

## Request

- Base URL: `https://app.lastping.dev`
- URL: `https://app.lastping.dev/api/v1/checks/{id}/incidents`
- Auth: API key in header `X-Api-Key`

Returns the most recent incidents for the check (newest first).
An incident is open when `closed_at` is null.
Always returns a JSON array (never null).

## Query parameters

- `limit` integer

## Response `200`

Array of incidents (may be empty).

- Incident[]
  - `incident_id` integer: The incident's id. Pass it to `GET /api/v1/incidents/{id}`.
  - `opened_at` string, date-time: RFC 3339 UTC timestamp when the incident was opened.
  - `closed_at` string, date-time, nullable: RFC 3339 UTC timestamp when the incident was resolved, or null if still open.
  - `cause` string: Machine-readable cause string. One of `silence` (no ping by the expected deadline), `fail` (an explicit failure ping), `overrun` (a run exceeded its budget), `never_started` (the first scheduled run never started), `runaway` (pinging far faster than expected), `stalled` (a run stopped reporting progress), `blocked` (a run sat blocked, waiting on a human, longer than `blocked_timeout_s`), `assertion` (a run's output failed an assertion) or `upstream` (3 runs in a row, or `failure_threshold` when higher, ended on the model provider's API error).
  - `detail` string: CI failure detail attached to this incident via `POST /ci/{id}/detail`. Omitted when empty. Contains the bounded log excerpt (≤ 64 KB) posted by the CI workflow's failure-capture step.

## Other responses

- `400`: id is not a valid UUID.
- `401`: Missing or invalid API key.
- `404`: Check not found in this project.
- `429`: Too many requests. The per-principal fixed-window rate limit has been exceeded. Retry after the number of seconds indicated by the `Retry-After` response header. The problem body's `code` is `RATE_LIMITED`. It names this limiter specifically, so a client can tell it apart from the application-level throttles that also answer 429 with their own codes and their own, much longer, `Retry-After` values (`TEST_PING_RATE_LIMITED`, `TOO_MANY_ATTEMPTS`). Back off globally on `RATE_LIMITED`; back off on the one operation for the others. The principal is the API key for a key-authenticated request and the USER for a browser session, so every tab one person has open shares one budget.

---

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