MountainSwitch

Developers

Health incidents

Overview

GET

/v1/health/incidents

Health incidents

Page the retained feed-health episode ledger newest first. These records describe source freshness incidents, never route state, destination access, or driving safety.

Parameters

Path and query parameters are documented together so the request surface stays easy to scan.

cursor

Query Optional

string

Opaque cursor returned by the preceding page.

limit

Query Optional

integer (1–50)

Episodes per page. Defaults to 10.

Example request

Use the same endpoint across all three snippets. The tabs switch only the client syntax.

cURL

curl -sS "https://api-staging.mountainswitch.co/v1/health/incidents?limit=10" \
  -H "Accept: application/json"

Example response

The example response shows the documented JSON envelope with endpoint data in data and request metadata in _meta.

200 OK application/json
{
  "data": [
    {
      "started_at": "2026-08-13T22:49:56.151Z",
      "resolved_at": "2026-08-14T04:27:32.374Z",
      "class": "feed_outage",
      "affected_regions": ["lake-tahoe", "central-sierra"],
      "public_summary": "Road condition feeds are delayed; showing last-confirmed conditions with timestamps."
    }
  ],
  "_meta": {
    "request_id": "req_health_incidents_docs",
    "response_generated_at": "2026-08-14T04:30:00.000Z",
    "pagination": {
      "cursor": "eyJzdGFydGVkQXQiOiIuLi4ifQ==",
      "has_more": true
    }
  }
}

Response fields

This reference stays flat on purpose so the documented fields remain easy to scan.

data
Array<object>
Retained feed-health episodes in newest-first order.
data[].started_at
string
Original start of the merged episode window.
data[].resolved_at
string | null
End of the episode window, or null while it remains open.
data[].class
"feed_outage" | "data_quality" | "delayed" | "degraded"
Worst public incident class observed during the episode.
data[].affected_regions
Array<string>
Union of affected homepage region identifiers observed during the episode.
data[].public_summary
string
Fixed public summary selected from the closed incident-class vocabulary.
_meta.pagination
object | null
Opaque next cursor and has_more flag; null only for an empty result.

Errors

These rows keep the repo-wide rate-limit and infrastructure behavior visible without inventing endpoint-specific transport semantics.

Status Code When it happens
400 INVALID_PARAMETER limit or cursor is malformed, unsupported, or no longer identifies a retained episode.

Notes

These notes capture the contract edges that matter most for consumers of the endpoint.

Brief normal gaps may remain inside one episode

A resolved incident that reopens within 20 minutes remains one episode. Its original start is preserved, class and regions accumulate, and intermediate close/reopen timestamps are not retained.

Incident pages are always no-store

GET /v1/health/incidents reads the live retained ring and always returns Cache-Control: no-store.