---
title: "Status history: measured state of every platform component, uptime over 24 hours / 7 / 30 / 90 days, the last 90 days and incidents"
method: GET
path: "/operator/status/history"
tags: ["Operator"]
---

# Status history: measured state of every platform component, uptime over 24 hours / 7 / 30 / 90 days, the last 90 days and incidents

`GET /operator/status/history`

## Request

- Base URL: `https://hostingsurge.com/api/v1`
- URL: `https://hostingsurge.com/api/v1/operator/status/history`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `__Host-hs_session`

Every value comes from checks the platform runs once a minute from inside its own infrastructure (docs/STATUS_PAGE.md).

## Response `200`

Status history

- object
  - `generatedAt` string, required: ISO-8601 timestamp
  - `overall` 'operational' | 'degraded' | 'down' | 'unknown', required: the worst state among the components that have recent data (unknown only when none has)
  - `dataSince` string, nullable, required: first check recorded for any component; nothing before this is measured
  - `checkIntervalSeconds` integer, required
  - `incidentRule` object, required
    - `openAfterFailures` integer, required
    - `closeAfterPasses` integer, required
  - `components` object[], required
    - `id` 'web' | 'api' | 'identity' | 'mcp' | 'database' | 'deployments' | 'builder' | 'edge' | 'mail' | 'postal', required
    - `name` string, required
    - `description` string, required: what exactly is checked
    - `state` 'operational' | 'degraded' | 'down' | 'unknown', required: operational: the latest check passed and no incident is open; degraded: the latest check failed but not yet 3 in a row, or an open incident is recovering; down: an incident is open and the latest check failed; unknown: no check recorded in the last 5 minutes (or ever)
    - `lastCheckedAt` string, nullable, required: ISO-8601 timestamp
    - `latencyMs` integer, nullable, required: duration of the latest check
    - `measuredSince` string, nullable, required: first recorded check of this component
    - `uptime` object, required: Share of passing checks in percent (two decimals, rounded down); null when no check was recorded in that window
      - `h24` number, nullable, required
      - `d7` number, nullable, required
      - `d30` number, nullable, required
      - `d90` number, nullable, required
    - `days` object[], required: the last 90 UTC days, oldest first; today is the last entry
      - `date` string, required: UTC day, YYYY-MM-DD
      - `checks` integer, required: checks recorded that day (0: no data)
      - `okChecks` integer, required
      - `uptime` number, nullable, required: null when no check was recorded that day
  - `incidents` object[], required: incidents of the last 90 days and any still open, newest first
    - `id` string, uuid, required
    - `component` 'web' | 'api' | 'identity' | 'mcp' | 'database' | 'deployments' | 'builder' | 'edge' | 'mail' | 'postal', required
    - `state` 'open' | 'resolved', required
    - `startedAt` string, required: first failed check of the run that opened the incident
    - `endedAt` string, nullable, required: first passing check of the run that closed it
    - `durationSeconds` integer, nullable, required: null while open
    - `failedChecks` integer, required
    - `note` string, nullable, required: written by a platform operator (operators only)
    - `noteUpdatedAt` string, nullable, required: ISO-8601 timestamp

## Other responses

- `403`: Not a platform operator, or a bearer-authenticated request (code forbidden)
- `501`: Status history is not available on this server yet (code not_configured)

---

[API](https://skmtc.dev/hostingsurge/apis/hostingsurge-platform-api.md) · [All operations](https://skmtc.dev/hostingsurge/apis/hostingsurge-platform-api/llms.txt) · [OpenAPI document](https://skmtc.dev/hostingsurge/apis/hostingsurge-platform-api/revisions/4d08337cdff1?raw)
