Skip to content

The account's executive summary or operations report for one period, compared with the period before it.

GET
/reports/summary
curl --request GET \
--url https://api.siteqwality.com/reports/summary \
--header 'Authorization: Bearer <token>'

offset 1 (the default) is the last complete period, 0 the one in progress. Days, weeks (Monday to Sunday) and months are counted in timezone, which defaults to the account’s timezone.

Uptime is the share of HTTP, TCP port, ping and browser checks that passed. A heartbeat monitor’s uptime is the share of the period outside missed-ping outages. The attention section is the state now, whatever the period.

A scoped API key or token gets incidents and on-call figures only with read:incidents, and RUM only with read:rum; withheld names the sections left empty.

kind
string

executive (default) or operations.

frequency
string

daily, weekly (default) or monthly.

offset
integer format: int32

1 (default) is the last complete period, 0 the one in progress, 2 the one before the last.

timezone
string

IANA zone the days are counted in. Defaults to the account’s timezone.

The report

Media type application/json

The account’s report over one period, compared with the period before. Fields missing from a stored report read as empty, so older reports keep rendering.

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",
"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": []
}

Unknown kind or frequency, an offset over 12, or an unknown timezone

Missing or invalid authentication

Internal server error