e·pilot API logo

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"
{
"componentID": "aKR6rTg0aW2d",
"name": "Website",
"description": "",
"status": "Major Outage",
"order": 1509676878
}

/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}
]
}