Pages and components
Create a page, add components, and how component status is derived from a monitor.
Pages and components
Creating a page
curl -X POST https://api.up0.io/api/v1/status-pages \
-H "Authorization: Bearer <ACCESS_TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"name": "Acme status",
"slug": "acme",
"description": "Live status for Acme customers",
"is_public": true
}'slug is what the public URL is built from, see
The public page. It has to be URL-safe (2
or more lowercase letters, digits or hyphens, not starting or ending with a
hyphen) and unique across every status page on the platform, not just your
organization's. is_public defaults to true; a false page is reserved for
a future authenticated-viewing feature and is not enforced yet.
GET /status-pages lists your pages, GET /status-pages/{id} returns one
with its components, and PUT/DELETE update or remove it. Deleting a page
cascades to its components and subscribers.
Adding a component
curl -X POST https://api.up0.io/api/v1/status-pages/<PAGE_ID>/components \
-H "Authorization: Bearer <ACCESS_TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"name": "API",
"description": "Public API availability",
"monitor_id": "<MONITOR_ID>"
}'monitor_id is optional. A component with no monitor keeps whatever status
you set on it by hand (PUT the component to change it). A component bound
to a monitor is instead kept in sync automatically:
| Monitor status | Component status |
|---|---|
up | operational |
down | major_outage |
pending | operational |
paused | maintenance |
Degraded monitors show operational today
degraded is a real monitor status, but it has no entry in the sync map
above and falls back to operational on the component. A monitor that is
technically degraded currently reads as fully healthy on any status page it
is bound to.
A background job re-checks every bound component roughly once a minute and updates its status if the monitor's status moved, so a change reaches the page within about that window, not instantly.
Overall page status
The page's own overall_status is the worst status among its components
(operational if it has none), using this severity order from best to worst:
operational, maintenance, degraded, partial_outage, major_outage.
One failing component is enough to move the whole page.
Walking this live: creating a page, adding one component bound to a monitor
that was up at the time, produced a component and an overall page status of
operational immediately, both confirmed by re-fetching the page.