Monitors API
Read your monitors and their availability metrics using the authenticated API. Requires the monitors:read scope (or full-access key).
List all monitors
GET /user/api/v1/monitors
Required scope: monitors:read
Example:
curl -H "Authorization: Bearer spk_..." \
https://statuspage.me/user/api/v1/monitors
Response:
{
"data": [
{
"id": 42,
"name": "API endpoint",
"type": "site",
"target": "https://api.example.com/health",
"interval_seconds": 60,
"enabled": true,
"status_page_id": "550e8400-e29b-41d4-a716-446655440000",
"status_page_slug": "my-company",
"created_at": "2025-11-01T10:00:00Z",
"updated_at": "2026-03-01T08:30:00Z"
}
]
}
Get a single monitor
GET /user/api/v1/monitors/:id
Required scope: monitors:read
Get monitor availability metrics
GET /user/api/v1/monitors/:id/availability?period=30d
Required scope: analytics:read
Query parameters:
| Parameter | Values | Default |
|---|---|---|
period | 7d, 30d, 90d, 365d | 30d |
Example:
curl -H "Authorization: Bearer spk_..." \
"https://statuspage.me/user/api/v1/monitors/42/availability?period=30d"
Response includes uptime percentage, MTTR (mean time to recovery), MTBF (mean time between failures), and downtime data for the requested period.
Legacy Dashboard Monitor Endpoints
In addition to the scoped /user/api/v1/* API, monitor-related dashboard endpoints under /user/api/ are API-key authenticatable and useful for list-page hydration.
These endpoints are not RequireAPIScope(...)-gated like /user/api/v1/*, so keys with API access can call them unless specifically blocked by auth rules.
List monitors by components (with inline metrics)
GET /user/api/monitors?component_ids=cmp_1,cmp_2
Required query parameter:
component_ids(comma-separated component IDs)
Response includes the original monitor identity fields and inline windowed metrics:
metrics.1hmetrics.24hmetrics.7dmetrics.30d
Each window includes:
avg_msuptime_percentageuptime_trendresponse_time_trendapdex/apdex_change(legacy compatibility aliases)response_time_changestate,updated,latency,region_states
Example:
curl -H "Authorization: Bearer spk_..." \
"https://statuspage.me/user/api/monitors?component_ids=cmp_1,cmp_2"
Batched metrics for monitor IDs
GET /user/api/monitors/metrics?ids=42,84&range=30d
Query parameters:
| Parameter | Values | Default |
|---|---|---|
ids | comma-separated monitor IDs | required |
range | 1h, 24h, 7d, 30d | 24h |
Common validation errors:
{ "error": "ids required" }{ "error": "no valid ids" }{ "error": "too many ids" }{ "error": "unsupported range" }
Notes
- Monitors belonging to status pages accessible via team membership are included.
- Disabled monitors are excluded from the list.