Logo
Status Page

Status Page Documentation

Common troubleshooting topics: Creating a status page, setting up a monitor, incident management, etc.

Embed Status API

StatusPage.me Dec 9, 2025 API

Embed Status API

The Embed Status API returns your status page data as JSON. Use it to build custom status displays, dashboards, or integrations.


Endpoint

GET https://statuspage.me/api/embed/status

Required Parameters

ParameterTypeDescription
slugstringYour status page slug (required)

Optional Parameters

ParameterTypeDescription
inc1Include active incidents in response
rtm1-240Include response time sparkline (minutes)
upd1-30Include uptime sparkline (days)

Example Request

Basic Status

curl "https://statuspage.me/api/embed/status?slug=your-slug"

Full Data

curl "https://statuspage.me/api/embed/status?slug=your-slug&inc=1&rtm=60&upd=7"

Response

Basic Response

{
  "page": "your-slug",
  "page_url": "https://your-slug.statuspage.me",
  "overall": "operational",
  "updated": "2025-12-09T12:00:00Z",
  "incidents": []
}

Full Response (with sparklines)

{
  "page": "your-slug",
  "page_url": "https://your-slug.statuspage.me",
  "overall": "operational",
  "updated": "2025-12-09T12:00:00Z",
  "incidents": [
    {
      "id": "abc123",
      "title": "API Latency Issues",
      "state": "monitoring",
      "started": "2025-12-09T11:30:00Z",
      "component": "API"
    }
  ],
  "rtm": [120, 115, 118, 125, 110, 122, 119, 116],
  "upd": [99.95, 100, 100, 99.80, 100, 100, 100]
}

Response Fields

FieldTypeDescription
pagestringStatus page slug
page_urlstringFull URL to the status page
overallstringCurrent overall status
updatedstringLast update timestamp (ISO 8601)
incidentsarrayActive incidents (if inc=1)
rtmarrayResponse time values in milliseconds
updarrayDaily uptime percentages
dns_onlybooleanTrue if all monitors are DNS type

Overall Status Values

ValueMeaning
operationalAll systems operational
degraded_performancePerformance issues
partial_outageSome systems down
major_outageMajor system failure
under_maintenanceScheduled maintenance

JavaScript Example

async function getStatus(slug) {
  const url = `https://statuspage.me/api/embed/status?slug=${slug}&inc=1`;
  const response = await fetch(url);
  const data = await response.json();
  
  console.log('Status:', data.overall);
  console.log('Active incidents:', data.incidents.length);
  
  // Update your UI
  updateStatusIndicator(data.overall);
  
  return data;
}

// Poll every 30 seconds
setInterval(() => getStatus('your-slug'), 30000);

Response Time Sparklines (rtm)

When you include rtm=N, you get an array of N values representing average response times (in milliseconds) for the last N minutes.

// Get last 60 minutes of response times
const url = '.../api/embed/status?slug=myapp&rtm=60';

// Response includes:
// "rtm": [120, 118, 125, 115, 122, ...]  // 60 values

Use this to draw sparkline charts showing recent performance.


Uptime Sparklines (upd)

When you include upd=N, you get an array of N values representing daily uptime percentages for the last N days.

// Get last 7 days of uptime
const url = '.../api/embed/status?slug=myapp&upd=7';

// Response includes:
// "upd": [99.95, 100, 100, 99.80, 100, 100, 100]  // 7 values

Use this to draw uptime history charts.


Error Responses

StatusErrorCause
400missing slugNo slug parameter provided
404not foundStatus page doesn’t exist
403embeds not available in your planPlan doesn’t include embed access

Caching

  • Responses are cached for ~15 seconds
  • Include Cache-Control header in response
  • Safe to cache on your end for short periods

Plan Requirements

Note: JSON API features (rtm, upd, inc) require Growth, Business, OSS Hero, or Enterprise plan.

Basic embed access is available on Pro plans and above.


What’s Next?

Was this article helpful?

Share this article: