JSON API for Custom Integrations
Need to build something custom? Our JSON API lets you fetch your status data and display it however you want.

API Endpoint
Fetch your status data from:
GET https://statuspage.me/api/embed/status?slug=your-slug
Replace your-slug with your status page slug.
Query Parameters
| Parameter | Description |
|---|---|
slug | Your status page slug (required) |
inc | Set to 1 to include active incidents |
rtm | Response time sparkline (1-240 minutes) |
upd | Uptime per day (1-30 days) |
Example Request
https://statuspage.me/api/embed/status?slug=your-slug&inc=1&rtm=60&upd=7
This returns: status, incidents, 60-minute response times, 7-day uptime.
Response Format
The API returns JSON:
{
"page": {
"name": "Your Status Page",
"slug": "your-slug",
"url": "https://your-slug.statuspage.me"
},
"overall": "operational",
"updated": "2025-12-09T12:00:00Z",
"incidents": [
{
"title": "API Latency Issues",
"status": "monitoring",
"created_at": "2025-12-09T11:30:00Z"
}
],
"rtm": [120, 115, 118, 125, 110, ...],
"upd": [99.95, 100, 100, 99.80, 100, 100, 100]
}
Response Fields
| Field | Description |
|---|---|
page | Status page info (name, slug, URL) |
overall | Current status (operational, degraded, partial_outage, major_outage) |
updated | Last update timestamp |
incidents | Array of active incidents (if inc=1) |
rtm | Response time values in milliseconds (if rtm specified) |
upd | Daily uptime percentages (if upd specified) |
Using with JavaScript
async function getStatus() {
const response = await fetch(
'https://statuspage.me/api/embed/status?slug=your-slug&inc=1'
);
const data = await response.json();
console.log('Status:', data.overall);
console.log('Incidents:', data.incidents.length);
return data;
}
Use Cases
| Use Case | How |
|---|---|
| Custom dashboard | Fetch and display in your admin panel |
| Mobile app | Show status in your native app |
| CLI tool | Check status from command line |
| Slack bot | Build custom status notifications |
| Internal display | Office TV dashboard |
Caching
- Responses are cached for a few minutes
- Use reasonable polling intervals (30+ seconds)
- Don’t hammer the API with constant requests
Markdown API
For simple text output, use the markdown endpoint:
GET https://statuspage.me/api/embed/markdown?slug=your-slug
Returns markdown-formatted status text for easy embedding in docs or chat.
Rate Limits
- The API is designed for reasonable use
- Polling every 30-60 seconds is appropriate
- Contact us if you need higher limits
What’s Next?
- Use the live widget for zero-code embedding
- Use the SVG badge for README files
- Install the WordPress plugin