StatusDashboard

API

Expose a machine-readable JSON status endpoint on your dashboard.

View Markdown

The public status JSON API gives integrators a stable machine-readable snapshot of live component health. Enable it when monitoring tools or internal scripts need status without parsing HTML.


Enabling the API

The public status JSON API lets your end customers fetch live overall and component status without scraping the status page. When enabled, StatusDashboard serves a lean JSON document at a stable URL on your status page host (platform subdomain or active custom domain).

  1. Open the dashboard you want to expose and go to the API tab (after Widget).
  2. Toggle Enable public status API on.
  3. Copy the public endpoint URL from the Public endpoint section.

The endpoint shape is:

https://<your-status-hostname>/api/status

Examples:

  • Platform subdomain: https://acme.statusdashboard.io/api/status
  • Custom domain: https://status.yourcompany.com/api/status

When a custom domain is active, use that hostname for the API. Calls to the platform subdomain return not found for /api/status while the custom domain is active (same consolidation as the status page).

This is not served from the tenant REST API host (/app/* with API keys). It is also separate from the embeddable Widget, which uses different endpoints by design.

Response contract

The public endpoint returns only what integrators need:

FieldDescription
overallStatusAggregated system status (same derivation as the status page).
components[]All components wired to the dashboard, sorted by display order (order is not returned).
components[].idStable component UUID.
components[].nameComponent display name.
components[].descriptionIncluded only when set on the component.
components[].statusLive status label (for example Operational or an active severity label). Color and icon snapshots are not included.
components[].groupIncluded only when component grouping is enabled and the component is assigned to a group. Contains name and optional description only. Group UUIDs are never exposed.

Example:

{
  "overallStatus": "All Systems Operational",
  "components": [
    {
      "id": "22222222-2222-2222-2222-222222222222",
      "name": "API Gateway",
      "description": "Public HTTPS edge",
      "status": "Operational",
      "group": {
        "name": "Core Services",
        "description": "Customer-facing production systems"
      }
    }
  ]
}

Success responses are pretty-printed JSON (application/json) so opening the URL in a browser tab is readable. Your status page also shows an API link in the action bar (after Subscribe) that opens a discovery page at /api with the endpoint URL and a live preview.

Access control

Three layers gate access:

  1. Your plan must include API access.
  2. The per-dashboard toggle on the API tab must be on.
  3. Optional IP allowlist (Network tab) still applies to the public endpoint.

The public status JSON API does not participate in SSO. Even when SSO protects the HTML status page, scripts and backends can call GET /api/status on your status page host without a Bearer token. Do not enable the API if you need all status data to stay behind SSO.

Not a public integration API

The embeddable Widget uses separate endpoints as implementation details for the JavaScript embed. Those shapes may change with product updates and are not documented as a customer integration contract.

Use GET /api/status on your status page host for programmatic integrations.

Security notes

Enabling the API makes component names, descriptions, group labels, and live status labels publicly fetchable (subject to your IP allowlist). No authentication credentials are required. Poll responsibly to avoid unnecessary load.

The endpoint is served with Access-Control-Allow-Origin: * for cross-origin fetch from customer applications.

White-label and custom-domain dashboards use the same host as the public status page, so the API URL matches your branded domain automatically.

On this page

We use cookies

We use essential cookies to keep the site working, and optional analytics cookies to understand how it's used. Read our Privacy Policy.