Skip to main content

Overview

Rootly exposes a public JSON API on your status page’s custom domain, allowing you to programmatically retrieve current status and incident data. These endpoints are available at your custom domain (e.g., status.example.com) and respect your status page’s existing authentication settings — password-protected and SAML-protected pages are not exposed.
These endpoints are only available on status pages with a custom domain configured.

Endpoints

Get Current Status

Returns the overall status of your services along with any active incidents.
GET /api/v1/status.json
Response
{
  "page": {
    "name": "Acme Status",
    "url": "https://status.example.com",
    "time_zone": "America/Los_Angeles",
    "updated_at": "2026-03-19T12:00:00Z"
  },
  "status": {
    "indicator": "none",
    "description": "All Systems Operational"
  },
  "incidents": []
}
The status.indicator field can be one of:
IndicatorDescription
noneAll systems operational
minorMinor service outage or degraded performance
majorMajor service outage or critical incident active
maintenanceScheduled maintenance in progress

List Incidents

Returns a paginated list of active incidents, ordered by most recent first.
GET /api/v1/incidents.json
Query Parameters
ParameterTypeDefaultDescription
pageinteger1Page number
per_pageinteger25Number of incidents per page (max 100)
Response
{
  "page": {
    "name": "Acme Status",
    "url": "https://status.example.com",
    "time_zone": "America/Los_Angeles",
    "updated_at": "2026-03-19T12:00:00Z"
  },
  "incidents": [
    {
      "name": "API Degradation",
      "status": "started",
      "impact": "minor",
      "started_at": "2026-03-19T10:30:00Z",
      "resolved_at": null,
      "url": "https://status.example.com/incidents/abc123",
      "incident_updates": [
        {
          "body": "We are investigating reports of elevated API latency.",
          "status": "investigating",
          "created_at": "2026-03-19T10:35:00Z"
        }
      ]
    }
  ],
  "pagination": {
    "current_page": 1,
    "per_page": 25,
    "total_pages": 1,
    "total_count": 1
  }
}

Incident Impact Levels

The impact field on each incident maps from the incident’s severity:
SeverityImpact
Criticalcritical
Highmajor
Mediumminor
Lowminor
Nonenone

Authentication

These API endpoints respect the same authentication settings as your status page:
  • Public status pages: Endpoints are accessible without authentication
  • Password-protected pages: Endpoints require the same password
  • SAML-protected pages: Endpoints require SAML authentication

Example Usage

# Get current status
curl https://status.example.com/api/v1/status.json

# List incidents with pagination
curl "https://status.example.com/api/v1/incidents.json?page=1&per_page=10"