One run, with the report it sent (`null` for a client uptime report). A scoped key or token gets the report trimmed as `GET /reports/summary` trims it.
const url = 'https://api.siteqwality.com/reports/runs/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
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.siteqwality.com/reports/runs/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0 \ --header 'Authorization: Bearer <token>'Authorizations
Section titled “Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters ”Run id
Responses
Section titled “ Responses ”The run
A run with the report it sent.
object
Which report: the leadership summary, the team’s operations report, or the branded client report.
As the report shows it, such as “October 2026”.
Why the run failed or was skipped, or which emails failed.
Emails of a run by outcome.
object
Not sent: the address bounced or complained before.
The report as sent; null for client uptime reports, whose document is at /reports/runs/{id}/document.
object
executive or operations.
The account’s display name, when it has one.
One period of a report. end is exclusive.
object
The IANA zone the period’s days are counted in.
“Oct 24, 2026”, “Oct 19 to 25, 2026” or “October 2026”.
False for a period still in progress.
One period of a report. end is exclusive.
object
The IANA zone the period’s days are counted in.
“Oct 24, 2026”, “Oct 19 to 25, 2026” or “October 2026”.
False for a period still in progress.
object
Active (not paused) monitors by type.
object
Share of HTTP, TCP, ping and browser checks that passed, in percent.
object
The target for a monitor with none set on a status page.
Monitors with data in the period.
Outages overlapping the period, heartbeats included.
object
Time at least one monitor was down.
object
95th percentile response time of HTTP checks across the account.
object
Worst first: lowest uptime, then most downtime. At most 500.
object
http, tcp, ping, browser or heartbeat.
The strictest SLA target on the monitor’s status pages, else the default.
null when the period has no data for the monitor, or it was paused throughout.
Longest first by time inside the period. At most 20.
object
null while the monitor is still failing.
object
Incidents opened in the period, merged incidents excluded.
object
Of those, how many are resolved.
object
Incidents not resolved now.
Mean seconds to acknowledge, for incidents opened in the period.
object
Mean seconds to resolve, for incidents opened in the period.
object
object
minor, major or critical.
Incidents open during the period, longest first. At most 5.
object
triggered, acknowledged or resolved.
object
Responders paged.
object
Most paged first. At most 10. Empty in a copy for someone outside the account.
object
What needs attention now, whatever the period.
object
Longest down first. At most 20.
object
Oldest first. At most 10.
object
triggered, acknowledged or resolved.
Certificates and domains expiring within 30 days (or expired in the last 30), soonest first. At most 20.
object
tls or domain.
Negative once expired.
object
The five applications with the most sessions.
object
A figure for the period and the one before it; null when there is no data.
object
Share of sessions with an error, from 0 to 1.
object
A figure for the period and the one before it; null when there is no data.
object
A figure for the period and the one before it; null when there is no data.
object
A figure for the period and the one before it; null when there is no data.
object
Sections left empty because the caller’s access does not cover them: incidents and
on_call without read:incidents, rum without read:rum.
Example
{ "kind": "executive", "frequency": "daily", "status": "sending", "snapshot": { "kind": "executive", "account_name": null, "period": { "complete": true, "end": "1970-01-01T00:00:00Z", "frequency": "weekly", "label": "", "start": "1970-01-01T00:00:00Z", "timezone": "UTC" }, "previous_period": { "complete": true, "end": "1970-01-01T00:00:00Z", "frequency": "weekly", "label": "", "start": "1970-01-01T00:00:00Z", "timezone": "UTC" }, "generated_at": [ 1970, 1, 0, 0, 0, 0, 0, 0, 0 ], "uptime": { "coverage": { "browser": 0, "heartbeat": 0, "http": 0, "ping": 0, "tcp": 0 }, "default_target": 0, "downtime_seconds": { "current": null, "previous": null }, "longest_outages": [], "monitors": [], "monitors_judged": 0, "monitors_meeting_target": 0, "monitors_omitted": 0, "outages": { "current": null, "previous": null }, "outages_omitted": 0, "response_time_p95_ms": { "current": null, "previous": null }, "uptime_percentage": { "current": null, "previous": null } }, "incidents": { "by_severity": [], "longest": [], "mtta_seconds": { "current": null, "previous": null }, "mttr_seconds": { "current": null, "previous": null }, "open_now": 0, "opened": { "current": null, "previous": null }, "resolved": { "current": null, "previous": null } }, "on_call": { "by_person": [], "pages": { "current": null, "previous": null } }, "attention": { "expiring": [], "monitors_down": [], "open_incidents": [] }, "rum": { "apps": [] }, "withheld": [] }}Missing or invalid authentication
Run not found
Internal server error