Statuspage API (1.0.0)

Download OpenAPI specification:Download

Code of Conduct

Please don't abuse the API, and please report all feature requests and issues to https://support.atlassian.com/contact

Rate Limiting

Each API token is limited to 1 request / second as measured on a 60 second rolling window. To get this limit increased, please contact us at https://support.atlassian.com/contact

Error codes 420 or 429 indicate that you have exceeded the rate limit and the request has been rejected.

Basics

HTTPS

It's required

URL Prefix

In order to maintain version integrity into the future, the API is versioned. All calls currently begin with the following prefix:

https://api.statuspage.io/v1/

RESTful Interface

Wherever possible, the API seeks to implement repeatable patterns with logical, representative URLs and descriptive HTTP verbs. Below are some examples and conventions you will see throughout the documentation.

Sending Data

Information can be sent in the body as form urlencoded or JSON, but make sure the Content-Type header matches the body structure or the server gremlins will be angry.

All examples are provided in JSON format, however they can easily be converted to form encoding if required. Some examples of how to convert things are below:

// JSON
{
  "incident": {
    "name": "test incident",
    "components": ["8kbf7d35c070", "vtnh60py4yd7"]
  }
}

// Form Encoded (using curl as an example):
curl -X POST https://api.statuspage.io/v1/example \
  -d "incident[name]=test incident" \
  -d "incident[components][]=8kbf7d35c070" \
  -d "incident[components][]=vtnh60py4yd7"

Authentication

api_key

Obtaining your API Key

Authentication is done via an API token provided in the Statuspage management interface.

  1. Log in to your account at https://manage.statuspage.io/login.
  2. Click on your avatar in the bottom left of your screen to access the user menu.
  3. Click API info.

Passing your API key in an authorization header

The following example authenticates you with the Statuspage API. Along with the Page ID listed on the API page, we can fetch your page profile.

curl -H "Authorization: OAuth 89a229ce1a8dbcf9ff30430fbe35eb4c0426574bca932061892cefd2138aa4b1" \
  https://api.statuspage.io/v1/pages/gytm4qzbx9t6.json

Passing your API key in a query param

curl "https://api.statuspage.io/v1/pages/gytm4qzbx9t6.json?api_key=89a229ce1a8dbcf9ff30430fbe35eb4c0426574bca932061892cefd2138aa4b1"
Security Scheme Type API Key
Header parameter name: Authorization

permissions

Operations about permissions

Update a user's role permissions

Update a user's role permissions. Payload should contain a mapping of pages to a set of the desired roles, if the page has Role Based Access Control. Otherwise, the pages should map to an empty hash. User will lose access to any pages omitted from the payload.

Authorizations:
path Parameters
organization_id
required
string

Organization Identifier

user_id
required
string

User identifier

Request Body schema: application/json
pages
object

Responses

200

Update a user's role permissions. Payload should contain a mapping of pages to a set of the desired roles, if the page has Role Based Access Control. Otherwise, the pages should map to an empty hash. User will lose access to any pages omitted from the payload.

400

Bad request

401

Could not authenticate

403

You are not authorized to access this resource.

404

The requested resource could not be found.

put /organizations/{organization_id}/permissions/{user_id}
https://api.statuspage.io/v1/organizations/{organization_id}/permissions/{user_id}

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "pages":
    {
    }
}

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "user_id": "b1kjlnc6w8tf",
  • "pages":
    [
    ]
}

Get a user's permissions

Get a user's permissions

Authorizations:
path Parameters
organization_id
required
string

Organization Identifier

user_id
required
string

User identifier

Responses

200

Get a user's permissions

401

Could not authenticate

404

The requested resource could not be found.

get /organizations/{organization_id}/permissions/{user_id}
https://api.statuspage.io/v1/organizations/{organization_id}/permissions/{user_id}

Request samples

Copy
curl https://api.statuspage.io/v1/organizations/{organization_id}/permissions/{user_id} \
  -H "Authorization: OAuth your-api-key-goes-here" \
  -X GET

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "user_id": "9rgzw1p87p6p",
  • "pages":
    [
    ]
}

Status Embed Config

Operations about status embed configs.

Get status embed config settings

Get status embed config settings

Authorizations:
path Parameters
page_id
required
string

Page identifier

Responses

200

Get status embed config settings

401

Could not authenticate

403

You are not authorized to access this resource.

404

The requested resource could not be found.

get /pages/{page_id}/status_embed_config
https://api.statuspage.io/v1/pages/{page_id}/status_embed_config

Request samples

Copy
curl https://api.statuspage.io/v1/pages/{page_id}/status_embed_config \
  -H "Authorization: OAuth your-api-key-goes-here" \
  -X GET

Response samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "page_id": "string",
  • "position": "string",
  • "incident_background_color": "string",
  • "incident_text_color": "string",
  • "maintenance_background_color": "string",
  • "maintenance_text_color": "string"
}

Update status embed config settings

Update status embed config settings

Authorizations:
path Parameters
page_id
required
string

Page identifier

Request Body schema: application/json
status_embed_config
object

Responses

200

Update status embed config settings

400

Bad request

401

Could not authenticate

403

You are not authorized to access this resource.

404

The requested resource could not be found.

422

Unprocessable entity

patch /pages/{page_id}/status_embed_config
https://api.statuspage.io/v1/pages/{page_id}/status_embed_config

Request samples

Content type
application/json
Copy
Expand all Collapse all
{
  • "status_embed_config":
    {
    }
}

Response samples

Content type
application/json
Copy
Expand all Collapse all