Skip to content

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.

GET
/reports/runs/{id}
curl --request GET \
--url https://api.siteqwality.com/reports/runs/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0 \
--header 'Authorization: Bearer <token>'
id
required
string format: uuid

Run id

The run

Media type application/json

A run with the report it sent.

object
id
required
string format: uuid
subscription_id
required
string format: uuid
subscription_name
required
string
kind
required

Which report: the leadership summary, the team’s operations report, or the branded client report.

string
Allowed values: executive operations client_uptime
frequency
required
string
Allowed values: daily weekly monthly
period_start
required
string format: date-time
period_end
required
string format: date-time
period_label
required

As the report shows it, such as “October 2026”.

string
status
required
string
Allowed values: sending sent failed skipped
error

Why the run failed or was skipped, or which emails failed.

string | null
created_at
required
string format: date-time
sent_at
string | null format: date-time
deliveries
required

Emails of a run by outcome.

object
sent
required
integer format: int32
failed
required
integer format: int32
suppressed
required

Not sent: the address bounced or complained before.

integer format: int32
snapshot
One of:

The report as sent; null for client uptime reports, whose document is at /reports/runs/{id}/document.

object
kind

executive or operations.

string
default: executive
Allowed values: executive operations client_uptime
account_name

The account’s display name, when it has one.

string | null
period

One period of a report. end is exclusive.

object
frequency
string
default: weekly
Allowed values: daily weekly monthly
start
string format: date-time
default: 1970,1,0,0,0,0,0,0,0
end
string format: date-time
default: 1970,1,0,0,0,0,0,0,0
timezone

The IANA zone the period’s days are counted in.

string
default: UTC
label

“Oct 24, 2026”, “Oct 19 to 25, 2026” or “October 2026”.

string
""
complete

False for a period still in progress.

boolean
default: true
previous_period

One period of a report. end is exclusive.

object
frequency
string
default: weekly
Allowed values: daily weekly monthly
start
string format: date-time
default: 1970,1,0,0,0,0,0,0,0
end
string format: date-time
default: 1970,1,0,0,0,0,0,0,0
timezone

The IANA zone the period’s days are counted in.

string
default: UTC
label

“Oct 24, 2026”, “Oct 19 to 25, 2026” or “October 2026”.

string
""
complete

False for a period still in progress.

boolean
default: true
generated_at
string format: date-time
default: 1970,1,0,0,0,0,0,0,0
uptime
object
coverage

Active (not paused) monitors by type.

object
http
integer format: int32
0
tcp
integer format: int32
0
ping
integer format: int32
0
browser
integer format: int32
0
heartbeat
integer format: int32
0
uptime_percentage

Share of HTTP, TCP, ping and browser checks that passed, in percent.

object
current
number | null format: double
previous
number | null format: double
default_target

The target for a monitor with none set on a status page.

number format: double
0
monitors_meeting_target
integer format: int32
0
monitors_judged

Monitors with data in the period.

integer format: int32
0
outages

Outages overlapping the period, heartbeats included.

object
current
number | null format: double
previous
number | null format: double
downtime_seconds

Time at least one monitor was down.

object
current
number | null format: double
previous
number | null format: double
response_time_p95_ms

95th percentile response time of HTTP checks across the account.

object
current
number | null format: double
previous
number | null format: double
monitors

Worst first: lowest uptime, then most downtime. At most 500.

Array<object>
default:
object
id
string format: uuid
default: 00000000-0000-0000-0000-000000000000
name
string
""
monitor_type

http, tcp, ping, browser or heartbeat.

string
""
uptime_percentage
number | null format: double
previous_uptime_percentage
number | null format: double
target

The strictest SLA target on the monitor’s status pages, else the default.

number format: double
0
attained

null when the period has no data for the monitor, or it was paused throughout.

boolean | null
outages
integer format: int32
0
downtime_seconds
number format: double
0
avg_response_time_ms
number | null format: double
p95_response_time_ms
number | null format: double
monitors_omitted
integer format: int32
0
longest_outages

Longest first by time inside the period. At most 20.

Array<object>
default:
object
monitor_id
required
string format: uuid
monitor_name
required
string
monitor_type
required
string
started_at
required
string format: date-time
ended_at

null while the monitor is still failing.

string | null format: date-time
seconds_in_period
required
number format: double
outages_omitted
integer format: int32
0
incidents
object
opened

Incidents opened in the period, merged incidents excluded.

object
current
number | null format: double
previous
number | null format: double
resolved

Of those, how many are resolved.

object
current
number | null format: double
previous
number | null format: double
open_now

Incidents not resolved now.

integer format: int32
0
mtta_seconds

Mean seconds to acknowledge, for incidents opened in the period.

object
current
number | null format: double
previous
number | null format: double
mttr_seconds

Mean seconds to resolve, for incidents opened in the period.

object
current
number | null format: double
previous
number | null format: double
by_severity
Array<object>
default:
object
severity

minor, major or critical.

string
""
count
integer format: int32
0
longest

Incidents open during the period, longest first. At most 5.

Array<object>
default:
object
id
required
string format: uuid
title
required
string
severity
required
string
status
required

triggered, acknowledged or resolved.

string
started_at
required
string format: date-time
resolved_at
string | null format: date-time
duration_seconds
required
number format: double
on_call
object
pages

Responders paged.

object
current
number | null format: double
previous
number | null format: double
by_person

Most paged first. At most 10. Empty in a copy for someone outside the account.

Array<object>
default:
object
user_id
string format: uuid
default: 00000000-0000-0000-0000-000000000000
name
string
""
pages
integer format: int32
0
incidents
integer format: int32
0
attention

What needs attention now, whatever the period.

object
monitors_down

Longest down first. At most 20.

Array<object>
default:
object
id
required
string format: uuid
name
required
string
monitor_type
required
string
since
string | null format: date-time
open_incidents

Oldest first. At most 10.

Array<object>
default:
object
id
required
string format: uuid
title
required
string
severity
required
string
status
required

triggered, acknowledged or resolved.

string
started_at
required
string format: date-time
resolved_at
string | null format: date-time
duration_seconds
required
number format: double
expiring

Certificates and domains expiring within 30 days (or expired in the last 30), soonest first. At most 20.

Array<object>
default:
object
kind
required

tls or domain.

string
monitor_id
required
string format: uuid
domain
required
string
expires_at
required
string format: date-time
days_left
required

Negative once expired.

integer format: int64
rum
object
apps

The five applications with the most sessions.

Array<object>
default:
object
app_id
string format: uuid
default: 00000000-0000-0000-0000-000000000000
name
string
""
sessions

A figure for the period and the one before it; null when there is no data.

object
current
number | null format: double
previous
number | null format: double
error_session_rate

Share of sessions with an error, from 0 to 1.

object
current
number | null format: double
previous
number | null format: double
lcp_p75_ms

A figure for the period and the one before it; null when there is no data.

object
current
number | null format: double
previous
number | null format: double
inp_p75_ms

A figure for the period and the one before it; null when there is no data.

object
current
number | null format: double
previous
number | null format: double
cls_p75

A figure for the period and the one before it; null when there is no data.

object
current
number | null format: double
previous
number | null format: double
withheld

Sections left empty because the caller’s access does not cover them: incidents and on_call without read:incidents, rum without read:rum.

Array<string>
default:
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