Maintenances API
The Maintenances API provides access to scheduled and past maintenance windows for your status page.
Endpoints
List Maintenances (Paginated)
GET https://statuspage.me/api/status-pages/{slug}/maintenances
Filtered Maintenances
GET https://statuspage.me/api/status-pages/{slug}/maintenances/filter
Daily Maintenance Counts
GET https://statuspage.me/api/status-pages/{slug}/maintenances/daily-counts
List Maintenances
Fetch maintenance windows with pagination.
Parameters
| Parameter | Type | Default | Description |
|---|
page | integer | 1 | Page number |
page_size | integer | 20 | Items per page (max 100) |
status | string | all | Filter: scheduled, in_progress, completed, all |
Example Request
curl "https://statuspage.me/api/status-pages/your-slug/maintenances?page=1&status=scheduled"
Example Response
{
"maintenances": [
{
"id": "maint-123",
"title": "Database Upgrade",
"description": "Upgrading database to improve performance.",
"status": "scheduled",
"scheduled_start": "2025-12-15T02:00:00Z",
"scheduled_end": "2025-12-15T04:00:00Z",
"components": ["Database", "API"],
"created_at": "2025-12-09T10:00:00Z"
}
],
"page": 1,
"page_size": 20,
"total_pages": 1,
"total_items": 3
}
Filtered Maintenances
Fetch maintenances filtered by date range.
Parameters
| Parameter | Type | Description |
|---|
month | string | Required. Month in YYYY-MM format (e.g., 2025-12) |
Example Request
# Get maintenances scheduled for December 2025
curl "https://statuspage.me/api/status-pages/your-slug/maintenances/filter?month=2025-12"
Daily Maintenance Counts
Get a summary of maintenances per day for a calendar view.
Parameters
| Parameter | Type | Description |
|---|
month | string | Required. Month in YYYY-MM format (e.g., 2025-12) |
Example Request
curl "https://statuspage.me/api/status-pages/your-slug/maintenances/daily-counts?month=2025-12"
Example Response
{
"counts": {
"2025-12-15": 1,
"2025-12-22": 1
},
"start_date": "2025-12-01",
"end_date": "2025-12-31"
}
Maintenance Statuses
| Status | Description |
|---|
scheduled | Upcoming maintenance window |
in_progress | Maintenance currently active |
completed | Maintenance finished |
cancelled | Maintenance was cancelled |
JavaScript Example
async function getUpcomingMaintenance(slug) {
const url = `https://statuspage.me/api/status-pages/${slug}/maintenances?status=scheduled`;
const response = await fetch(url);
const data = await response.json();
if (data.maintenances.length > 0) {
const next = data.maintenances[0];
console.log(`Upcoming: ${next.title}`);
console.log(`Scheduled: ${next.scheduled_start}`);
// Show maintenance banner
showMaintenanceBanner(next);
}
return data;
}
function showMaintenanceBanner(maintenance) {
const startDate = new Date(maintenance.scheduled_start);
const banner = document.getElementById('maintenance-banner');
banner.innerHTML = `
⚠️ Scheduled maintenance: ${maintenance.title}
<br>
${startDate.toLocaleString()} - Affected: ${maintenance.components.join(', ')}
`;
banner.style.display = 'block';
}
Use Cases
| Use Case | How |
|---|
| Maintenance calendar | Display upcoming windows in a calendar UI |
| Advance notifications | Alert users before maintenance starts |
| Compliance reporting | Track maintenance history for audits |
| Integration dashboards | Show maintenance schedules in ops tools |
Error Responses
| Status | Error | Cause |
|---|
| 404 | not found | Status page doesn’t exist |
| 400 | invalid parameters | Invalid date or pagination params |
What’s Next?