Logo
Status Page

Status Page Documentation

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

Maintenances API

StatusPage.me Dec 9, 2025 API

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

ParameterTypeDefaultDescription
pageinteger1Page number
page_sizeinteger20Items per page (max 100)
statusstringallFilter: 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

ParameterTypeDescription
monthstringRequired. 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

ParameterTypeDescription
monthstringRequired. 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

StatusDescription
scheduledUpcoming maintenance window
in_progressMaintenance currently active
completedMaintenance finished
cancelledMaintenance 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 CaseHow
Maintenance calendarDisplay upcoming windows in a calendar UI
Advance notificationsAlert users before maintenance starts
Compliance reportingTrack maintenance history for audits
Integration dashboardsShow maintenance schedules in ops tools

Error Responses

StatusErrorCause
404not foundStatus page doesn’t exist
400invalid parametersInvalid date or pagination params

What’s Next?

Was this article helpful?

Share this article: