Both APIs are for public and customer status pages only. Internal status pages do not support API access.
Status Page API
Using the Status Page API, you can programmatically update your status page to make your customers aware of problems immediately or to schedule routine maintenance windows in advance. The approach via the API mirrors the steps in the incident.io dashboard.Prerequisites
To use the API, you need an API key with the required scopes. For read-only access (listing status pages, viewing structure, incidents, and maintenance windows), any valid API key will work. For write requests (creating incidents, maintenance windows, and publishing updates), you need an API key with the “Create status page incidents, maintenance windows and publish updates” scope. You can create an API key in the incident.io dashboard.You can find details of all endpoints in the Status Page API docs.
Status page incidents
Creating a status page incident To declare a status page incident, you use theCreateStatusPageIncident endpoint.
- You will need the ID of your status page. This can be found using the
ListStatusPagesendpoint, which lists your status pages by name and ID. - You will need to set an initial
incident_statusfor the incident, give it anameand provide amessagewhich will be used for publishing that initial update. - Optionally, you can specify which components the incident has affected by providing their
component_statuses. You will need the IDs of the components, which you can find using theShowStatusPageStructureendpoint once you’ve already found out your page’s ID. - You’re also required to provide a unique
idempotency_keyfor the incident and whether tonotify_subscribersto your status page.
UpdateStatusPageIncident endpoint.
- You can update the
incident_statusand/orcomponent_statuses, and provide a newmessageto your viewers and subscribers.
UpdateStatusPageIncident endpoint, setting the incident_status to "resolved".
Any components affected by the incident will be reset to "operational" (within that incident).
Updating the incident name (optional)
During a status page incident, you may wish to update the incident’s name, for instance because its nature has changed and its original name is outdated.
You can do this using the UpdateStatusPageIncident endpoint described in the API docs.
Status page maintenance windows
Status page maintenance windows are similar to status page incidents, so this focuses on the important differences and features. Scheduling a maintenance window To schedule a status page maintenance window, you use theCreateStatusPageMaintenance endpoint.
- Unlike with status page incidents, you will need to provide a
start_atandend_atwhen scheduling maintenance. - You supply a
maintenance_statusrather than anincident_status. - Optionally, you provide a list of the IDs of components affected by the maintenance.
CreateStatusPageMaintenanceUpdate endpoint.
In the incident.io dashboard, you can choose to manually or automatically update the status of a maintenance window. The API uses the manual status updates approach: you must publish updates in order to update the maintenance window’s status, and move it from e.g. "maintenance_scheduled" to "maintenance_in_progress".
Completing a maintenance window
When the maintenance is complete, you again use the CreateStatusPageMaintenanceUpdate endpoint to publish a final update, this time setting the maintenance_status to "maintenance_complete".
Widget API
The status page widget API is a read-only JSON API that reflects the current content of your status page. Use it to embed status information directly into your own product — for example, displaying a banner at the top of your web page or a pop-up in your mobile app. The widget API updates whenever you update your status page, and is a direct reflection of the data shown there. To enable the widget API, go to your status page in the dashboard, then Settings, then Widget API.
Although the widget API can be called directly from a web app, we strongly recommend proxying it through your own backend with some level of caching. The response itself is highly cacheable. If we notice high levels of traffic for your status page, we will reach out to discuss this.
Response structure
You can see a preview of the full JSON response from within the Widget API settings page. It contains three arrays —ongoing_incidents, in_progress_maintenances and scheduled_maintenances, allowing you to distinguish between those three different types of event. Each incident in those arrays will have dates associated with it.
Each incident also has an ID, name, status, the last update message, and several other fields. It also contains affected components. By implementing your own logic, you can use these components to decide (for example) whether to show a banner on a certain page or not. For example, if the incident contains “Login” as an affected component, your login page can filter on that.
Authentication
The endpoint is unauthenticated and publicly accessible on the internet. You can see the URL from within the Widget API settings page.FAQs
Can I automate status page incidents or maintenance windows using an API?
Can I automate status page incidents or maintenance windows using an API?
Yes — use the Status Page API to programmatically declare incidents, publish updates, resolve incidents, schedule maintenance windows, and mark maintenance as complete. See the API docs for endpoint details.
Can I create maintenance windows through the API?
Can I create maintenance windows through the API?
Yes — you can create and manage maintenance windows using the Status Page API. This allows you to schedule maintenance, publish updates, and mark maintenance as complete, all programmatically. Note that maintenance windows are only available on public and customer status pages.
Do you have a read-only status page API?
Do you have a read-only status page API?
Yes — the Widget API allows you to retrieve information about ongoing incidents and scheduled maintenance. It works regardless of whether your status page is live or not. The Widget API is read-only — to create or update incidents, use the Status Page API.