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": "Heriot-Watt University System Status",
"state": "operational",
"state_text": "All systems are go!",
"url": "https://www.hwstatus.info",
"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.
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,
"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,
"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"
}
}
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://www.hwstatus.info/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",
"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://www.hwstatus.info/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://www.hwstatus.info/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",
"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.
We’ll find your subscription and send you a link to login to manage your preferences.
We’ve found your existing subscription and have emailed you a secure link to manage your preferences.
We’ll use your email to save your preferences so you can update them later.
Subscribe to other services using the bell icon on the subscribe button on the status page.
You’ll no long receive any status updates from Heriot-Watt University System Status, are you sure?
{{ error }}
We’ll no longer send you any status updates about Heriot-Watt University System Status.