Get the day-bar uptime report
const url = 'https://api.overwatch.weareheavy.dev/v1/sites/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/uptime/monitors/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/report?days=90';const options = {method: 'GET', headers: {'x-api-key': '<x-api-key>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://api.overwatch.weareheavy.dev/v1/sites/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/uptime/monitors/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/report?days=90' \ --header 'x-api-key: <x-api-key>'One segment per day with three-state semantics: down (red) when a confirmed multi-region incident overlaps the day, degraded (amber) when some region failed below quorum — past a noise floor, so one stray timeout doesn’t paint a healthy day — and ok (green) otherwise.
Uptime percentages count confirmed incident downtime only; sub-quorum
failures surface as degraded and in the per-region stats, never in the
percentage. overallUptimePct covers the requested window, clamped to
the monitor’s creation so a young monitor isn’t diluted by empty days.
Authorizations
Section titled “ Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “ Path Parameters ”The site’s UUID.
The uptime monitor’s UUID.
Query Parameters
Section titled “ Query Parameters ”How many days to cover, ending today. Defaults to 90, capped at 365.
Responses
Section titled “ Responses ”The monitor, its day bars, incidents, and overall uptime.
object
A stored uptime monitor. status/status_since double as current status.
object
JSON-encoded array of extra alert addresses.
JSON-encoded array of extra alert webhooks.
Consensus status written by the coordinator; unknown before the first probes.
Epoch ms the current status began, or null.
Epoch ms of the last probe, or null.
One day of the day-bar report.
object
Incident-based uptime % for the day, or null with no checks.
Per-region daily stats, keyed by region code; absent regions had no checks.
object
object
Probes in the window.
Median latency, ms.
95th-percentile latency, ms.
A confirmed downtime incident (multi-region consensus).
object
Epoch ms the incident was confirmed.
Epoch ms of recovery, or null while ongoing.
Why the probes failed, classified.
JSON per-region probe snapshot captured at confirmation.
Incident-based uptime % over the window, or null with no data.
Example
{ "monitor": { "enabled": 0, "status": "up" }, "days": [ { "state": "ok" } ], "events": [ { "cause": "dns" } ]}Missing or invalid credentials.
object
A human-readable error message.
Example
{ "error": "invalid api key"}The site or monitor was not found.
object
A human-readable error message.
Example
{ "error": "monitor not found"}