SLA reports
An SLA report answers “did we hit our uptime commitment last month?” for each UTC calendar month, per monitor, with a clear met or breached verdict.
Find it on the SLA tab of any HTTP monitor, or pull the whole account at once through the API.
Read one
Section titled “Read one”# One monitorcurl -G "https://api.siteqwality.com/http/job/$JOB_ID/sla" \ -H "Authorization: Bearer $SITEQWALITY_API_KEY" \ --data-urlencode "months=6"
# Every monitorcurl -G "https://api.siteqwality.com/monitors/sla" \ -H "Authorization: Bearer $SITEQWALITY_API_KEY" \ --data-urlencode "months=6"$JOB_ID is the monitor’s id. months defaults to 3 and is clamped to 1 to 24, so months=99 gives you 24. The dashboard offers 3, 6 and 12, defaulting to 6.
Each month returns:
| Field | Meaning |
|---|---|
month | YYYY-MM, newest first. |
uptime_percentage | Uptime for the month, or null with no data. |
days_with_data | How many days actually contributed. |
target | The target this month was judged against. |
attained | true, false, or null with no data. |
The account-wide report adds breached_months per monitor, counting months where attained is false. Months with no data are not counted as breaches.
Where the target comes from
Section titled “Where the target comes from”target_source | Meaning |
|---|---|
status_page | Taken from an SLA target you set on a status page. |
default | No target configured, so the default 99.9% applies. |
The target is configured on the monitor’s row in a status page, not on the monitor itself. If a monitor appears on several status pages with different targets, the highest (strictest) one wins. A status page also accepts an SLA target on a browser check, but browser checks never appear in SLA reports, so that target is unused.
How the number is calculated
Section titled “How the number is calculated”Month uptime is the unweighted average of that month’s daily uptime percentages, not a request-weighted or minutes-of-downtime figure. Every day with data counts equally, so a day with a handful of checks (a partial first day of monitoring, or a day the monitor spent mostly paused) moves the month as much as a fully sampled day. Check days_with_data when a number looks surprising.
Other rules:
- Days with no data are excluded, not treated as 0% or 100%.
- A month with no data at all returns
uptime_percentage: nullandattained: nullrather than a breach. - Attainment is inclusive. Exactly 99.900% against a 99.9% target is attained.
- Months are UTC calendar months, so the newest month is always month-to-date.
SLA figures come from daily figures updated every five minutes, so the current UTC day counts with the checks so far, and each day is complete by 01:00 UTC the next day. For contractual reporting, run the report after 01:00 UTC on the 1st.
Limitations
Section titled “Limitations”- HTTP, TCP port and ping monitors only. Browser, cron, DNS and TLS monitors have no SLA report.
- JSON only. There is no SLA CSV or PDF export; the monitor uptime CSV is the closest thing and uses the same daily-average convention.