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 statusComponent status
upoperational
downmajor_outage
pendingoperational
pausedmaintenance

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.

On this page