Incidents often cause a chain reaction, use this API to build our service status into your own workflow.
Get the overall status for a page, without all the complexities of components and notices.
{
"page": {
"name": "Domainz",
"state": "operational",
"state_text": "All systems are go!",
"url": "https://status.domainz.net.nz",
"links": {
"components": {
"href": "/v1/components",
"count": 50
},
"notices": {
"href": "/v1/notices",
"count": 100
},
},
"created_at": "2023-01-01T00:00:00.000Z",
"updated_at": "2023-01-01T00:00:00.000Z"
}
}
Retrieve a paginated list of components and their status, useful to those who want a more detailed explanation of what’s impacted, or just the status of a subset of components.
Also includes a summary of the past 30 days uptime for components that have Metrics enabled.
If you want to search for certain components, such as those at the top of the tree, or the children of a given parent you can pass the filter parameter.
{
"components": [
{
"id": 1,
"state": "operational",
"name": "Example Component",
"description": "This is an example component.",
"parent_id": null,
"metrics_summary": {
"timeframe_start": "2023-03-01",
"timeframe_end": "2023-03-31",
"percentage_uptime": {
"percent": 97.260273972602,
"words": "97.26%"
},
"url": "https://status.domainz.net.nz/components/east-coast/metrics"
},
"links": {
"children": {
"href": "/api/v1/components?filter[parent_id_eq]=1",
"count": 1,
}
},
"created_at": "2023-01-01T00:00:00.000Z",
"updated_at": "2023-01-01T00:00:00.000Z"
},
{
"id": 2,
"state": "operational",
"name": "Sub-Component",
"description": "This is an example sub-component.",
"parent_id": 1,
"metrics_summary": null,
"links": {
"children": {
"href": "/api/v1/components?filter[parent_id_eq]=2",
"count": 0,
}
},
"created_at": "2023-01-01T00:00:00.000Z",
"updated_at": "2023-01-01T00:00:00.000Z"
}
],
"meta": {
"count": 25,
"total_count": 50,
"next_page": "/api/v1/components?page=2"
}
}
Get the Percentage Uptime, Mean Time To Recovery and Mean Time Between Failures within a given timeframe for components with Metrics enabled. (the past 30 days by default)
Learn more about how we calculate component uptime.
The ID of the component for which we will calculate metrics.
The start date of the timeframe for which we will calculate metrics. This date must be, at most, 12 months ago.
The end date of the timeframe for which we will calculate metrics.
Optionally return the equations, timeframe data and unplanned notices we used to calculate the metrics.
{
"component": {
"id": "123",
"name": "Network"
},
"timeframe_start": "2023-03-01",
"timeframe_end": "2023-03-31",
"percentage_uptime": {
"percent": 97.260273972602,
"words": "97.26%",
"calculation": "100 - ((total_impact_time / total_time) * 100)"
},
"mean_time_to_recovery": {
"seconds": 72000,
"words": "2 Hours",
"calculation": "total_impact_time / notices.count"
},
"mean_time_between_failures": {
"seconds": 252000,
"words": "2 Days, 6 Hours",
"calculation": "(total_time - total_impact_time) / notices.count"
},
"url": "https://status.domainz.net.nz/components/east-coast/metrics?past_x_days=custom&timeframe_end=2031-03-01&timeframe_start=2023-03-01",
"calculation_data_in_timeframe": {
"total_time": {
"seconds": 2592000,
"words": "30 Days"
},
"total_impact_time": {
"seconds": 72000,
"words": "20 Hours"
},
"notices": {
"href": "/api/v1/notices?filter[components_id]=123&filter[impact_timeframe_overlaps][]=2023-03-01T00:00:00&filter[impact_timeframe_overlaps][]=2023-03-31T59:59:59",
"count": 10
}
}
}
Retrieve a paginated list of notices for a page, past, present and future.
This list only contains basic details, for more information such as the impacted components, or the entire progress update history request detailed notice information.
If you want to search for certain notices, such as planned maintenances, or only current incidents you can do so by passing the “filter” query string parameter.
You can mix and match other "type" and "timeline_state" values in the filter, so you have the flexibility to return just the records you need.
{
"notices": [
{
"id": 1,
"type": "unplanned",
"timeline_state": "present",
"state": "investigating",
"subject": "Current Incident",
"url": "https://status.domainz.net.nz/notices/xxx-current-incident",
"began_at": "2023-01-01T00:00:00.000Z",
"ended_at": null,
"created_at": "2023-01-01T00:00:00.000Z",
"updated_at": "2023-01-01T00:00:00.000Z",
"impact_time": {
"seconds": 120,
"words": "2 minutes"
},
"links": {
"self": "/api/notices/1"
},
"latest_update": {
"state": "investigating",
"content": "We are currently investigating an issue with our service."
"created_at": "2023-01-01T00:00:00.000Z",
"updated_at": "2023-01-01T00:00:00.000Z"
}
},
{
"id": 2,
"type": "planned",
"timeline_state": "future",
"state": "scheduled",
"subject": "Planned Maintenance",
"url": "https://status.domainz.net.nz/notices/xxx-planned-maintenance",
"begins_at": "2023-01-01T00:00:00.000Z",
"ends_at": "2023-01-01T01:00:00.000Z",
"began_at": null,
"ended_at": null,
"created_at": "2023-01-01T00:00:00.000Z",
"updated_at": "2023-01-01T00:00:00.000Z",
"links": {
"self": "/api/notices/2"
},
"latest_update": {
"state": "scheduled",
"content": "We have some upcomming maintenance planned."
"created_at": "2023-01-01T00:00:00.000Z",
"updated_at": "2023-01-01T00:00:00.000Z"
}
}
],
"meta": {
"count": 25,
"total_count": 100,
"next_page": "/api/v1/notices?page=2"
}
}
Retrieve the detail for a given notice, including its impacted components and its full list of progress updates.
{
"notice": {
"id": 1,
"type": "unplanned",
"timeline_state": "present",
"state": "investigating",
"subject": "Current Incident",
"url": "https://status.domainz.net.nz/notices/xxx-current-incident",
"began_at": "2023-01-01T00:00:00.000Z",
"ended_at": null,
"created_at": "2023-01-01T00:00:00.000Z",
"updated_at": "2023-01-01T00:00:00.000Z",
"impact_time": {
"seconds": 120,
"words": "2 minutes"
},
"links": {
"self": "/api/notices/1"
},
"components": [
{
"id": 1,
"state": "operational",
"name": "Example Component",
"description": "This is an example component.",
"parent_id": null,
"created_at": "2023-01-01T00:00:00.000Z",
"updated_at": "2023-01-01T00:00:00.000Z"
}
],
"updates": [
{
"state": "investigating",
"content": "We are currently investigating an issue with our service."
"created_at": "2023-01-01T00:00:00.000Z",
"updated_at": "2023-01-01T00:00:00.000Z"
}
]
}
}
Collections such as “components” and “notices” only return a maximum of 25 records per request. Larger collections are split into multiple pages and contain a URL to retrieve the next page in the collection.
We also include a count of the records on this page and the total record count across all pages.
{
"notices": [],
"meta": {
"count": 25,
"total_count": 100,
"next_page": "/v1/notices?page=2"
}
}
The Status API allows developers to build on and benefit from the Sorry™ platform. At the same time, we must protect our system and our users’ rights, rate limiting to 10 requests per second.