Getting Started Edit
Welcome to our API.
The Status Page has a simple and powerful REST API, which enables you to:
create and update components and incidents submit data points of your monitoring system’s metrics
This API is still under development and will evolve.
Authentication Edit
You need to be authenticated for all API requests. You can generate an API key in your admin dashboard.
Add the API key to all requests as a -H parameter.
Nothing will work unless you include your API key
Each API token is limited to 10 requests / second.
curl "https:/status.epilot.cloud/api/..." \
-H "x-api-key: 0ADi6PRalO1qtCLaqJ8yz9jWo944CrVm6LP3jZ3t"
Errors Edit
| Code | Description |
|---|---|
| 200 | Success |
| 400 | The HTTP request was malformed |
| 404 | Method, format, or entry point not found |
| 405 | Method not allowed |
| 500 | Internal server error |
| 502 | Server temporarily not available |
| 503 | Server temporarily not available due to maintenance |
| 504 | Backend timeout |
{
"error": true,
"message": "error message here"
}
/list Edit
List all components
Parameters
- none
- For this command there're no parameters
This call will return all current components in an unformated json style
Parameters for better readability are coming soon
Lists all the components with Description, Status and the internal ID.
curl "https://status.epilot.cloud/api/v0/components" \
-H "x-api-key: 0ADi6PRalO1qtCLaqJ8yz9jWo944CrVm6LP3jZ3t"
[
{
"componentID": "aKR6rTg0aW2d",
"name": "Website",
"description": "",
"status": "Operational",
"order": 1509676878
},
...
]
/add Edit
Add Component
Parameters
- name
- Add's new component
- description
- Add's an description
- status
- Add's a Status Flag
The component will automatically be displayed on the status page.
The Status Flag needs to be one of these to be successfull:
| Operational | Under Maintenance | Degraded Performance |
| Partial Outage | Major Outage |
The command below creates a new component on the status page.
curl -X POST "https://status.epilot.cloud/api/v0/components" \
-d '{"name":"Website", "description":"Example Description", "status":"Operational"}' \
-H "x-api-key: 0ADi6PRalO1qtCLaqJ8yz9jWo944CrVm6LP3jZ3t" -H "Content-Type: application/json"
{
"componentID": "aKR6rTg0aW2d",
"name": "Website",
"description": "Example Description",
"status": "Operational",
"order": 1509676878
}
/update Edit
Update Component
Parameters
- componentid
- The internal Component ID
- status
- Necessary Status Flag
Update an existing component status on the status page. The response will include the component’s name, description, the new status and a log ID.
curl -X PATCH "https://status.epilot.cloud/api/v0/components/<component_id>" \
-d '{"status":"Major Outage"}' \
-H "x-api-key: 0ADi6PRalO1qtCLaqJ8yz9jWo944CrVm6LP3jZ3t" -H "Content-Type: application/json"
/delete Edit
Deletes a component
Parameters
- componentid
- Internal component ID
Deletes a component on the status page.
curl -X DELETE "https://status.epilot.cloud/api/v0/components/<component_id>" \
-H "x-api-key: 0ADi6PRalO1qtCLaqJ8yz9jWo944CrVm6LP3jZ3t"
There is no response yet.
/list Edit
List all past and current incidents
Parameters
- Parameters
- For this command there're no parameters
This call will return all current components in an unformated json style
Lists all the incidents with the internal ID, Incident Name, Last Status, Created at and last updated at Timestamp.
curl "https://status.epilot.cloud/api/v0/incidents" \
-H "x-api-key: 0ADi6PRalO1qtCLaqJ8yz9jWo944CrVm6LP3jZ3t"
[
{
"incidentID": "aKR6rTg0aW2d",
"name": "DNS resolution issues",
"status": "Investigating",
"createdAt": "2018-05-01T09:04:04.016Z"
"updatedAt": "2018-05-01T09:04:04.016Z"
},
...
]
/get Edit
Get specific incident
Parameters
- incident
- The incident ID
Returns a specific incident with all its updates
curl "https://status.epilot.cloud/api/v0/incidents/<incident_id>" \
-H "x-api-key: 0ADi6PRalO1qtCLaqJ8yz9jWo944CrVm6LP3jZ3t"
{
"incidentID": "aKR6rTg0aW2d",
"name": "DNS resolution issues",
"status": "Investigating",
"createdAt": "2018-05-01T09:20:44.915Z"
"updatedAt": "2018-05-01T09:20:44.915Z"
"incidentUpdates": [
{
"incidentID": "aKR6rTg0aW2d",
"incidentUpdateID": "1PGVAHA4ml9X",
"incidentStatus": "Investigating",
"message": "We are investigating DNS resolution issues.",
"createdAt": "2018-05-01T09:20:45.155Z"
"updatedAt": "2018-05-01T09:20:45.155Z"
}
]
}
/add Edit
Create incident
Parameters
- status
- Add's a Status Flag
- message
- Add's a incident description
The component will automatically be displayed on the status page.
The Status Flag needs to be one of these to be successfull:
| Investigating | Identified |
| Monitoring | Resolved |
The command below creates a new incident on the status page and returns the last known status.
curl -X POST "https://status.epilot.cloud/api/v0/incidents/" \
-d '{
"name":"DNS resolution issues",
"status":"Investigating",
"message":"We are investigating DNS resolution issues."
}' \
-H "x-api-key: 0ADi6PRalO1qtCLaqJ8yz9jWo944CrVm6LP3jZ3t" -H "Content-Type: application/json"
{
"incidentID": "aKR6rTg0aW2d",
"name": "DNS resolution issues",
"status": "Investigating",
"createdAt": "2018-05-01T09:20:44.915Z",
"updatedAt": "2018-05-01T09:20:44.915Z",
"incidentUpdates": [
{
"incidentID": "aKR6rTg0aW2d",
"incidentUpdateID": "1PGVAHA4ml9X",
"incidentStatus": "Investigating",
"message": "We are investigating DNS resolution issues.",
"createdAt": "2018-05-01T09:20:45.155Z"
"updatedAt": "2018-05-01T09:20:45.155Z"
}
]
}
/update Edit
Update an incident
Parameters
- incidentid
- The incident ID
- status
- Updated Status Flag
- message
- Updated incident description
Update an existing incident with a new status.
curl -X PATCH "https://status.epilot.cloud/api/v0/incidents/<incident_id>" \
-d '{
"status":"Identified",
"message":"We have migrated to an unaffected DNS provider. Some users may experience problems with cached results as the change propagates."
}' \
-H "x-api-key: 0ADi6PRalO1qtCLaqJ8yz9jWo944CrVm6LP3jZ3t" -H "Content-Type: application/json"
{
"incidentID": "aKR6rTg0aW2d",
"name": "DNS resolution issues",
"status": "Identified",
"createdAt": "2018-05-01T09:20:44.915Z",
"updatedAt": "2018-05-01T10:33:34.490Z",
"incidentUpdates": [
{
"incidentID": "aKR6rTg0aW2d",
"incidentUpdateID": "1PGVAHA4ml9X",
"incidentStatus": "Investigating",
"message": "We are investigating DNS resolution issues.",
"createdAt": "2018-05-01T09:20:45.155Z",
"updatedAt": "2018-05-01T09:20:45.155Z"
},
{
"incidentID": "aKR6rTg0aW2d",
"incidentUpdateID": "ThFwz6BHTlef",
"incidentStatus": "Identified",
"message": "We have migrated to an unaffected DNS provider. Some users may experience problems with cached results as the change propagates.",
"createdAt": "2018-05-01T10:33:34.684Z",
"updatedAt": "2018-05-01T10:33:34.684Z"
}
]
}
/delete Edit
Delete an incident
Parameters
- incidentid
- The incident ID
Deletes an incident on the status page.
curl -X DELETE "https://status.epilot.cloud/api/v0/incidents/<incident_id>" \
-H "x-api-key: 0ADi6PRalO1qtCLaqJ8yz9jWo944CrVm6LP3jZ3t"
There is no response yet.
/list Edit
List maintenance
Parameters
- Parameters
- For this command there're no parameters
This call will retrieve all current and past maintenances
curl "https://status.epilot.cloud/api/v0/maintenances" \
-H "x-api-key: 0ADi6PRalO1qtCLaqJ8yz9jWo944CrVm6LP3jZ3t"
[
{
"maintenanceID": "UUzuSiFAmhSK",
"name": "Network maintenance",
"status": "Scheduled",
"startAt": "2018-05-01T16:00:00.000Z",
"endAt": "2018-05-01T19:00:00.000Z",
"createdAt": "2018-05-01T03:10:00.228Z",
"updatedAt": "2018-05-01T03:10:00.228Z"
},
...
]
/get Edit
Get specific maintenance
Parameters
- maintenanceid
- The maintenance ID
Returns a specific maintenance with all its past updates if any.
curl "https://status.epilot.cloud/api/v0/maintenances/<maintenance_id>" \
-H "x-api-key: 0ADi6PRalO1qtCLaqJ8yz9jWo944CrVm6LP3jZ3t"
{
"maintenanceID": "UUzuSiFAmhSK",
"name": "Network maintenance",
"status": "Scheduled",
"startAt": "2018-05-01T16:00:00.000Z",
"endAt": "2018-05-01T19:00:00.000Z",
"createdAt": "2018-05-01T03:10:00.228Z",
"updatedAt": "2018-05-01T03:10:00.228Z",
"maintenanceUpdates": [
{
"maintenanceID": "UUzuSiFAmhSK",
"maintenanceUpdateID": "vPwSwBHNPSZK",
"maintenanceStatus": "Scheduled",
"message": "We will perform network maintenance. Brief customer service interruption is expected from this maintenance.",
"createdAt": "2018-05-01T03:10:00.228Z"
"updatedAt": "2018-05-01T03:10:00.228Z"
}
]
}
/add Edit
Add maintenance
Parameters
- name
- The maintenance name
- status
- The current status of the maintenance
- startAt
- The starting time of the maintenance
- endAt
- The ending time of the maintenance
- message
- The description of the maintenance
The maintenance will automatically displayed on the status page.
curl -X POST "https://status.epilot.cloud/api/v0/maintenances" \
-d '{
"name": "Network maintenance",
"status": "Scheduled",
"startAt": "2018-04-22T16:00:00.000Z",
"endAt": "2018-04-22T19:00:00.000Z",
"message": "We will perform network maintenance. Brief customer service interruption is expected from this maintenance."
}' \
-H "x-api-key: 0ADi6PRalO1qtCLaqJ8yz9jWo944CrVm6LP3jZ3t" -H "Content-Type: application/json"
{
"maintenanceID": "UUzuSiFAmhSK",
"name": "Network maintenance",
"status": "Scheduled",
"startAt": "2018-04-22T16:00:00.000Z",
"endAt": "2018-04-22T19:00:00.000Z",
"createdAt": "2018-04-21T03:10:00.228Z",
"updatedAt": "2018-04-21T03:10:00.228Z",
"maintenanceUpdates": [
{
"maintenanceID": "UUzuSiFAmhSK",
"maintenanceUpdateID": "vPwSwBHNPSZK",
"maintenanceStatus": "Scheduled",
"message": "We will perform network maintenance. Brief customer service interruption is expected from this maintenance.",
"createdAt": "2018-04-21T03:10:00.228Z"
"updatedAt": "2018-04-21T03:10:00.228Z"
}
]
}
/update Edit
Update maintenance
Parameters
- id
- The maintenance ID
- status
- The current status of the maintenance
- message
- The description of the maintenance
Update an existing maintenance.
curl -X PATCH "https://status.epilot.cloud/api/v0/maintenances/<maintenance_id>" \
-d '{
"status":"In Progress",
"message":"The maintenance starts as scheduled."
}' \
-H "x-api-key: 0ADi6PRalO1qtCLaqJ8yz9jWo944CrVm6LP3jZ3t" -H "Content-Type: application/json"
{
"maintenanceID": "UUzuSiFAmhSK",
"name": "Network maintenance",
"status": "In Progress",
"startAt": "2018-04-22T16:00:00.000Z",
"endAt": "2018-04-22T19:00:00.000Z",
"createdAt": "2018-04-21T03:10:00.228Z",
"updatedAt": "2018-04-21T03:22:42.629Z",
"maintenanceUpdates": [
{
"maintenanceID": "UUzuSiFAmhSK",
"maintenanceUpdateID": "HaSx3tFccSUT",
"maintenanceStatus": "In Progress",
"message": "The maintenance starts as scheduled.",
"createdAt": "2018-04-21T03:22:42.629Z",
"updatedAt": "2018-04-21T03:22:42.629Z"
},
{
"maintenanceID": "UUzuSiFAmhSK",
"maintenanceUpdateID": "vPwSwBHNPSZK",
"maintenanceStatus": "Scheduled",
"message": "We will perform network maintenance. Brief customer service interruption is expected from this maintenance.",
"createdAt": "2018-04-21T03:10:00.228Z"
"updatedAt": "2018-04-21T03:10:00.228Z"
}
]
}
/delete Edit
Deletes a maintenance
Parameters
- maintenanceid
- The maintenance ID
Deletes a maintenance on the status page.
curl -X DELETE "https://status.epilot.cloud/api/v0/maintenances/<maintenance_id>" \
-H "x-api-key: 0ADi6PRalO1qtCLaqJ8yz9jWo944CrVm6LP3jZ3t"
There is no response yet.
/submit Edit
Create metrics
Parameters
- metric_id
- The metric ID
- timestamp
- The timestamp of the data point
- value
- The data point value
The metrics submit allows you to add manual datapoints to the status page.
The second and millisecond parts of the timestamp is discarded. For example, the timestamp 2017-06-05T11:11:11.111Z is saved as 2017-06-05T11:11:00.000Z.
The data points are saved by the minutes. If there are multiple points in one minute, only the latest point is saved.
The number of data points per request must be equal to or less than 3000.
The response body is the ACTUAL values saved in the storage. So some data points may be omitted and the second part of a timestamp may be discarded.
curl -X POST "https://status.epilot.cloud/api/v0/metrics/data" \
-d '{
"<your_metric_id>": [
{"timestamp": "2018-05-01T00:00:00.000Z", "value": 1},
{"timestamp": "2018-05-01T00:01:00.000Z", "value": 2}
]
}' \
-H "x-api-key: 0ADi6PRalO1qtCLaqJ8yz9jWo944CrVm6LP3jZ3t" -H "Content-Type: application/json"
{
"ARzfSNr5lb3G":[
{"timestamp": "2018-05-01T00:00:00.000Z", "value": 1},
{"timestamp": "2018-05-01T00:01:00.000Z", "value": 2}
]
}