Skip to content

API reference

Status pages

Status pages endpoints of the StatusTick REST API: list status pages, create a status page, get a status page, change a status page's settings.

List status pages

GET/v1/status-pages

Each page with its groups and components; use the component id to set its status.

Authorization

apiKey
AuthorizationBearer <token>

Your organization's API key.

In: header

Response Body

application/json

application/json

application/json

curl -X GET "https://example.com/v1/status-pages"
[  {    "id": "string",    "name": "string",    "slug": "string",    "description": "string",    "visibility": "PUBLIC",    "autoPublishIncidents": true,    "groups": [      {        "id": "string",        "name": "string",        "components": [          {            "id": "string",            "name": "string",            "description": "string",            "monitorIds": [              "string"            ],            "showResponseTimes": true          }        ]      }    ],    "uptimeRangeDays": 30,    "uptimePeriods": [      "24h"    ],    "passwordSet": true,    "draft": {},    "visitorSpikeAlert": true,    "createdAt": "2019-08-24T14:15:22Z",    "updatedAt": "2019-08-24T14:15:22Z"  }]

Create a status page

POST/v1/status-pages

Needs a READ_WRITE key from an owner or admin. The page starts without components; set them with PUT /v1/status-pages/{pageId}/layout.

Authorization

apiKey
AuthorizationBearer <token>

Your organization's API key.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/v1/status-pages" \  -H "Content-Type: application/json" \  -d '{    "name": "Acme status",    "slug": "acme",    "visibility": "PUBLIC"  }'
{  "id": "string",  "name": "string",  "slug": "string",  "description": "string",  "visibility": "PUBLIC",  "autoPublishIncidents": true,  "groups": [    {      "id": "string",      "name": "string",      "components": [        {          "id": "string",          "name": "string",          "description": "string",          "monitorIds": [            "string"          ],          "showResponseTimes": true        }      ]    }  ],  "uptimeRangeDays": 30,  "uptimePeriods": [    "24h"  ],  "passwordSet": true,  "draft": {},  "visitorSpikeAlert": true,  "createdAt": "2019-08-24T14:15:22Z",  "updatedAt": "2019-08-24T14:15:22Z"}

Get a status page

GET/v1/status-pages/{pageId}

The published page; unpublished changes made in the editor are in draft.

Authorization

apiKey
AuthorizationBearer <token>

Your organization's API key.

In: header

Path Parameters

pageId*string

Response Body

application/json

application/json

curl -X GET "https://example.com/v1/status-pages/string"
{  "id": "string",  "name": "string",  "slug": "string",  "description": "string",  "visibility": "PUBLIC",  "autoPublishIncidents": true,  "groups": [    {      "id": "string",      "name": "string",      "components": [        {          "id": "string",          "name": "string",          "description": "string",          "monitorIds": [            "string"          ],          "showResponseTimes": true        }      ]    }  ],  "uptimeRangeDays": 30,  "uptimePeriods": [    "24h"  ],  "passwordSet": true,  "draft": {},  "visitorSpikeAlert": true,  "createdAt": "2019-08-24T14:15:22Z",  "updatedAt": "2019-08-24T14:15:22Z"}
PATCH/v1/status-pages/{pageId}

Needs a READ_WRITE key from an owner or admin. Applies at once. Leave out the fields you do not change.

Authorization

apiKey
AuthorizationBearer <token>

Your organization's API key.

In: header

Path Parameters

pageId*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

curl -X PATCH "https://example.com/v1/status-pages/string" \  -H "Content-Type: application/json" \  -d '{    "name": "Acme status",    "description": "Live status of Acme."  }'
{  "id": "string",  "name": "string",  "slug": "string",  "description": "string",  "visibility": "PUBLIC",  "autoPublishIncidents": true,  "groups": [    {      "id": "string",      "name": "string",      "components": [        {          "id": "string",          "name": "string",          "description": "string",          "monitorIds": [            "string"          ],          "showResponseTimes": true        }      ]    }  ],  "uptimeRangeDays": 30,  "uptimePeriods": [    "24h"  ],  "passwordSet": true,  "draft": {},  "visitorSpikeAlert": true,  "createdAt": "2019-08-24T14:15:22Z",  "updatedAt": "2019-08-24T14:15:22Z"}

Delete a status page

DELETE/v1/status-pages/{pageId}

Needs a READ_WRITE key from an owner or admin.

Authorization

apiKey
AuthorizationBearer <token>

Your organization's API key.

In: header

Path Parameters

pageId*string

Response Body

application/json

application/json

curl -X DELETE "https://example.com/v1/status-pages/string"
Empty
PUT/v1/status-pages/{pageId}/layout

Needs a READ_WRITE key from an owner or admin. Replaces every group and component of the published page at once. Keep a component's id to keep its status history; a component without an id is new, and one left out is removed. A component shows at most 20 monitors.

Authorization

apiKey
AuthorizationBearer <token>

Your organization's API key.

In: header

Path Parameters

pageId*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

curl -X PUT "https://example.com/v1/status-pages/string/layout" \  -H "Content-Type: application/json" \  -d '{    "groups": [      {        "name": "Website",        "components": [          {            "name": "Shop",            "monitorIds": [              "mnt_4KrVK3M1DqhDTFouCffKie"            ]          }        ]      }    ]  }'
{  "id": "string",  "name": "string",  "slug": "string",  "description": "string",  "visibility": "PUBLIC",  "autoPublishIncidents": true,  "groups": [    {      "id": "string",      "name": "string",      "components": [        {          "id": "string",          "name": "string",          "description": "string",          "monitorIds": [            "string"          ],          "showResponseTimes": true        }      ]    }  ],  "uptimeRangeDays": 30,  "uptimePeriods": [    "24h"  ],  "passwordSet": true,  "draft": {},  "visitorSpikeAlert": true,  "createdAt": "2019-08-24T14:15:22Z",  "updatedAt": "2019-08-24T14:15:22Z"}
GET/v1/status-pages/{pageId}/views

Views counted from the page's beacon, on its StatusTick address and its custom domain; bots are left out. A visitor counts once per page per UTC day, without cookies and without their IP being kept. Hourly points count a visitor in the hour of their first view that day.

Authorization

apiKey
AuthorizationBearer <token>

Your organization's API key.

In: header

Path Parameters

pageId*string

Query Parameters

range?string

24 hourly points, or 7 or 30 daily points (UTC days); the current hour or day is the last.

Default"LAST_24_HOURS"

Value in

  • "LAST_24_HOURS"
  • "LAST_7_DAYS"
  • "LAST_30_DAYS"

Response Body

application/json

application/json

curl -X GET "https://example.com/v1/status-pages/string/views"
{  "range": "LAST_24_HOURS",  "views": 0,  "uniqueVisitors": 0,  "points": [    {      "at": "2019-08-24T14:15:22Z",      "views": 0,      "uniqueVisitors": 0    }  ]}
GET/v1/status-pages/{pageId}/component-statuses

Authorization

apiKey
AuthorizationBearer <token>

Your organization's API key.

In: header

Path Parameters

pageId*string

Response Body

application/json

curl -X GET "https://example.com/v1/status-pages/string/component-statuses"
[  {    "componentId": "string",    "manual": true,    "manualStatus": "OPERATIONAL",    "message": "string",    "status": "OPERATIONAL",    "updatedAt": "2019-08-24T14:15:22Z"  }]
PUT/v1/status-pages/{pageId}/components/{componentId}/status

Needs a READ_WRITE key. Only for components without monitors; a component with monitors answers 422 (status_page.component.monitored.unprocessable). The message is shown under the component on the public page; an empty message clears it.

Authorization

apiKey
AuthorizationBearer <token>

Your organization's API key.

In: header

Path Parameters

pageId*string
componentId*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

curl -X PUT "https://example.com/v1/status-pages/string/components/string/status" \  -H "Content-Type: application/json" \  -d '{    "status": "MAJOR_OUTAGE",    "message": "Phone support is down."  }'
{  "componentId": "string",  "manual": true,  "manualStatus": "OPERATIONAL",  "message": "string",  "status": "OPERATIONAL",  "updatedAt": "2019-08-24T14:15:22Z"}
GET/v1/status-pages/{pageId}/components/{componentId}/status-changes

Authorization

apiKey
AuthorizationBearer <token>

Your organization's API key.

In: header

Path Parameters

pageId*string
componentId*string

Query Parameters

limit?integer
Rangevalue <= 100
Default50
page?integer
Default0

Response Body

application/json

curl -X GET "https://example.com/v1/status-pages/string/components/string/status-changes"
{  "changes": [    {      "componentId": "string",      "fromStatus": "OPERATIONAL",      "toStatus": "OPERATIONAL",      "source": "MANUAL",      "actorId": "string",      "actorName": "string",      "message": "string",      "changedAt": "2019-08-24T14:15:22Z"    }  ],  "page": 0,  "limit": 0,  "hasMore": true}
PUT/v1/status-pages/monitors/{monitorId}/components

Needs a READ_WRITE key. The monitor shows on exactly these components (ids from GET /v1/status-pages) and is taken off every other component of your pages; an empty list takes it off all of them. Applies at once, outside any unpublished draft of a page.

Authorization

apiKey
AuthorizationBearer <token>

Your organization's API key.

In: header

Path Parameters

monitorId*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

curl -X PUT "https://example.com/v1/status-pages/monitors/mnt_4KrVK3M1DqhDTFouCffKie/components" \  -H "Content-Type: application/json" \  -d '{    "componentIds": [      "spc_2bS9wQm4LxT7nYc1Hd8KpE"    ]  }'
{  "monitorId": "string",  "componentIds": [    "string"  ]}
All docs