Events

List incidents across every check in the project

Returns incidents project-wide, newest-opened first, keyset-paged — the console's Incidents page and any automation that wants a single feed across every monitor instead of walking GET /api/v1/checks/{id}/incidents per check.

Pagination is keyset, on (opened_at, id) descending — not offset-based, so an incident opened while a caller is mid-page can never shift another incident into or out of the page it already fetched. next_cursor is an opaque token; pass it back as cursor verbatim to fetch the next page, and stop when next_cursor is null. A cursor this API did not issue (or one that has been altered) is rejected with 400 INVALID_CURSOR rather than silently starting over.

?since= is unbounded by default: incidents are already retention-bound at 1 year (see /privacy), so there is no reason to bound it the way GET /api/v1/runs bounds its own ?since=.

?state= defaults to all; open returns incidents with a null closed_at, resolved returns the rest.

Trace-level fields (the recorded event timeline, notes) are not part of this list response; fetch GET /api/v1/incidents/{id} for one incident's full detail.

get/api/v1/incidents

Request

  • Base URL: https://app.lastping.dev
  • URL: https://app.lastping.dev/api/v1/incidents
  • Auth: API key in header X-Api-Key

Query parameters

monitorstring uuid

Restrict to one check's incidents.

state'open' | 'resolved' | 'all'

Restrict to open or resolved incidents. Defaults to all.

sincestring date-time

RFC 3339 timestamp. Unbounded by default.

limitinteger
Example:20

Maximum number of incidents to return (default 20, max 100).

cursorstring

Opaque next_cursor value from a previous page.

Response

A page of incidents (may be empty), newest-opened first.

next_cursorstring nullable required

Opaque cursor for the next page; pass back as ?cursor=. Null when this is the last page.

Example response

{
  "incidents": [
    {
      "incident_id": 4821,
      "check_id": "550e8400-e29b-41d4-a716-446655440000",
      "check_name": "Nightly backup",
      "check_slug": "nightly-backup",
      "cause": "fail",
      "detail_snippet": "STEP failed: go test ./... exited with code 1",
      "opened_at": "2026-07-10T03:10:00Z",
      "closed_at": "2026-07-10T04:00:00Z",
      "duration_ms": 3000000,
      "run_id": "run-2026-08-23-001",
      "note_count": 2,
      "deliveries_count": 2
    }
  ],
  "next_cursor": "MjAyNi0wOS0xNVQxNjo1NTozNC41MzA0MzVafDQ4MjE",
  "counts": {
    "open": 2,
    "resolved": 38,
    "total": 40,
    "median_resolve_ms": 372000
  }
}

Changes

No recorded changes to this operation across all 2 revisions of this API.