Docs

Type a word or a question. Esc closes the search.

Sign in Start free

Get the downtime ledger

Returns outage timelines, evidence coverage and report provenance for the selected window, with optional file formats.

GET https://app.upfour.io/v1/reports/downtime-ledger
GET https://app.upfour.io/v1/reports/downtime-ledger
Authorization
AuthorizationA pls_ key. It stays in this browser tab. Needs report.read.
Query

Sent directly from your browser to https://app.upfour.io/v1. Mutating calls get an automatic Idempotency-Key when the field is empty.

Request
Responsenot sent yet
Fill in a key and press Send request (⌘↵).
The answer appears here.
scope report.read stable returns 200

Parameters

FieldTypeDescription
format optional string one ofcsvjsonpdfxlsx query parameter · Without it the answer is the JSON envelope; with it the answer is a file download of that format.
preset optional string one of24h7d30d90dmtdlast_monthqtdytd query parameter · Reporting window; period is accepted as an alias. Without preset, from and to the window is the last 30 days. The window is cut to the plan's history.
from optional string query parameter · Start of the window: an RFC 3339 timestamp or a date (YYYY-MM-DD, in tz). Replaces preset.
to optional string query parameter · End of the window, same formats as from; a date means the end of that day. Defaults to now.
tz optional string query parameter · IANA time zone for calendar presets and dates. Defaults to the Company's report time zone.
lang optional string one ofende default "en" query parameter · Language of the report text.
monitor_id optional uuid query parameter · Only this monitor; repeat the parameter or send a comma-separated list for several.
severity optional string query parameter · Incident reports only: keep incidents of this severity; repeat the parameter or send a comma-separated list for several.
q optional string query parameter · Case-insensitive text: keeps monitors whose name, or incidents whose title, contains it.
business_hours optional string query parameter · Count only these hours in SLA and response-time reports, for example mon-fri,09:00-17:00 (several groups separated by ;). The hours are read in tz, or in UTC when tz is not sent.
client_id optional uuid query parameter · Report on one client.
all_clients optional boolean query parameter · true includes all clients; without client_id the report covers the Company level.

Returns

A successful request returns 200 with application/json, application/pdf, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, text/csv.

Response fields 1 top-level fields
FieldTypeDescription
data ReportDocument
ReportDocument · 89 fields
FieldTypeDescription
branding ReportDocumentBranding
ReportDocumentBranding · 8 fields
FieldTypeDescription
accent_color_hex string
footer_text string
logo_data_url string
logo_url string
org_name string
primary_color_hex string
watermark string
website_url string
content_hash string Fingerprint of the content; GET /reports/verify/{hash} confirms it.
generated_at string (date-time)
kpis ReportKPI[] · nullable
Each item · 10 fields
FieldTypeDescription
label string
value string Formatted for display, for example "99.94 %".
delta ReportKPIDelta
ReportKPIDelta · 4 fields
FieldTypeDescription
abs number
direction string one ofupdownflat
good boolean
pct number
key string
raw any The machine-readable value (a number, mostly); absent when there is no data.
unit string
org ReportCompany
ReportCompany · 2 fields
FieldTypeDescription
id uuid
name string
range ReportRange
ReportRange · 5 fields
FieldTypeDescription
from string (date-time)
to string (date-time)
clamped boolean true when the window was cut to the plan's history.
preset string one of24h1d7d30d90dmtdlast_monthqtdytd
timezone string
sections ReportSection[] · nullable
Each item · 20 fields
FieldTypeDescription
heading string
charts ReportChart[]
Each item · 9 fields
FieldTypeDescription
categories string[] · nullable
kind string one oflinebardonutstacked_barheatmap
series ReportChartSeries[] · nullable
Each item · 4 fields
FieldTypeDescription
data number[] · nullable
name string
color string
dash boolean
title string
y_unit string
note string
tables ReportTable[]
Each item · 7 fields
FieldTypeDescription
columns ReportColumn[] · nullable
Each item · 4 fields
FieldTypeDescription
header string
align string one ofleftrightcenter
key string
kind string one oftextnumberpercentdurationtimestamp
rows ReportCell[][] · nullable
title string
title string
type string one ofexecutive_summarymonitor_reportmonitor_sladowntime_ledgerincident_analyticsresponse_timetrends
client ReportClient
ReportClient · 3 fields
FieldTypeDescription
id uuid
name string
logo_data_url string
coverage ReportCoverage
ReportCoverage · 4 fields
FieldTypeDescription
observed_days integer
total_days integer
partial_buckets boolean
unavailable boolean
date_format string one ofday_month_yearmonth_day_yeariso
lang string one ofende
narrative string
period string
provenance ReportProvenance
ReportProvenance · 13 fields
FieldTypeDescription
data_sources string[] · nullable Where the figures come from, for example hot:check_results or cold:check_result_archive_daily_stats.
tool string
hot_window ReportRange
ReportRange · 5 fields
FieldTypeDescription
from string (date-time)
to string (date-time)
clamped boolean true when the window was cut to the plan's history.
preset string one of24h1d7d30d90dmtdlast_monthqtdytd
timezone string
manifests ReportArchiveManifest[]
Each item · 4 fields
FieldTypeDescription
max_created_at string (date-time)
min_created_at string (date-time)
sha256 string
storage_key string
sla ReportSLAAssessment
ReportSLAAssessment · 6 fields
FieldTypeDescription
evaluated integer
inconclusive integer
met integer
monitors integer
no_data integer
partial integer
subtitle string

Errors

Only the errors this operation can return. Every error uses the same envelope.

Status Code Meaning
400 bad_request The request is malformed or fails validation.
403 permission_denied The credentials do not permit this action.

Every call can also return unauthorized (401), rate_limit_exceeded (429) or internal_error (500 / 502). See Responses and errors.