StatusPal API Reference (2.0.0)

Download OpenAPI specification:Download

Welcome to the StatusPal API reference.


← Go back to StatusPal

Introduction

Here you'll learn how to leverage the power of StatusPal through its API to query your status page's status, create and update incidents, push custom metrics and more.

Servers

  • https://statuspal.io/api/v2 (US servers)
  • https://statuspal.eu/api/v2 (EU servers)

If you need some assistance please email us at support@statuspal.io.

Example request

curl https://statuspal.io/api/v2/hello \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json'

Datetimes

All datetime fields are stored in UTC and follow ISO 8601 standard (2022-01-01T00:00:00).

Authentication

Some endpoints require authentication in order to be used, you'll need to pass your API key in the Authorization header, you can find your API key in your User Account page or under your organization's "Security > API" Keys page.

api_key

Security Scheme Type: API Key
Header parameter name: Authorization

Example authenticated request:

curl -X POST \
  https://statuspal.io/api/v2/status_pages/:subdomain/incidents \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: <your-api-key>' \
  -d '{
   "incident": {
      "type": "major",
      "title": "DB connection issues",
      "service_ids": [1],
      "updates": [{ "type": "issue", "description": "We investigating" }]
    }
  }'

Test

Test endpoints

Says hello

Responses

Response samples

Content type
json
{
  • "message": "hello"
}

Status

Status endpoints

Get the status reported on a status page

path Parameters
subdomain
required
string

The subdomain of your status page.

You can find this under your status page settings, the Subdomain field is found under the "Domain name" section. Alternatively find it in the URL of your admin dashboard (e.g. statuspal.io/admin/subdomain).

Responses

Response samples

Content type
json
{
  • "status_page": {
    }
}

Get the status reported on a status page service

path Parameters
subdomain
required
string

The subdomain of your status page.

You can find this under your status page settings, the Subdomain field is found under the "Domain name" section. Alternatively find it in the URL of your admin dashboard (e.g. statuspal.io/admin/subdomain).

serviceId
required
integer

The ID of a service

Responses

Response samples

Content type
json
{
  • "service": {
    }
}

Summary

Summary endpoints

Get the summary of a status page (status, services and active incidents and maintenances)

path Parameters
subdomain
required
string

The subdomain of your status page.

You can find this under your status page settings, the Subdomain field is found under the "Domain name" section. Alternatively find it in the URL of your admin dashboard (e.g. statuspal.io/admin/subdomain).

Responses

Response samples

Content type
json
{
  • "status_page": {
    },
  • "services": [
    ],
  • "incidents": [
    ],
  • "maintenances": [
    ],
  • "upcoming_maintenances": [
    ]
}

Get the summary of a service (status, services and active incidents and maintenances)

path Parameters
subdomain
required
string

The subdomain of your status page.

You can find this under your status page settings, the Subdomain field is found under the "Domain name" section. Alternatively find it in the URL of your admin dashboard (e.g. statuspal.io/admin/subdomain).

serviceId
required
integer

The ID of a service

Responses

Response samples

Content type
json
{
  • "service": {
    },
  • "incidents": [
    ],
  • "maintenances": [
    ],
  • "upcoming_maintenances": [
    ]
}

Incidents

Incidents endpoints

Get the list of incidents of a status page

path Parameters
subdomain
required
string

The subdomain of your status page.

You can find this under your status page settings, the Subdomain field is found under the "Domain name" section. Alternatively find it in the URL of your admin dashboard (e.g. statuspal.io/admin/subdomain).

query Parameters
before
string

Used as a cursor for pagination.

after
string

Used as a cursor for pagination.

limit
integer

Set the number of incidents to return in the response. This defaults to 20 items, and can be a maximum of 100.

type
string
Example: type=major

Filter incidents by incident type key.

Responses

Response samples

Content type
json
{
  • "incidents": [
    ],
  • "links": {
    },
  • "meta": {
    }
}

Adds a new incident associated to one or more services

Authorizations:
api_key
path Parameters
subdomain
required
string

The subdomain of your status page.

You can find this under your status page settings, the Subdomain field is found under the "Domain name" section. Alternatively find it in the URL of your admin dashboard (e.g. statuspal.io/admin/subdomain).

Request Body schema: json
required

The incident

object (Incident)

An incident, either major, minor or a scheduled maintenance

Responses

Request samples

Content type
json
{
  • "incident": {
    }
}

Response samples

Content type
json
{
  • "incident": {
    }
}

Get an incident

path Parameters
subdomain
required
string

The subdomain of your status page.

You can find this under your status page settings, the Subdomain field is found under the "Domain name" section. Alternatively find it in the URL of your admin dashboard (e.g. statuspal.io/admin/subdomain).

incidentId
required
integer

The ID of an incident/maintenance

Responses

Response samples

Content type
json
{
  • "incident": {
    }
}

Updates existing incident

Authorizations:
api_key
path Parameters
incidentId
required
integer

The ID of an incident/maintenance

subdomain
required
string

The subdomain of your status page.

You can find this under your status page settings, the Subdomain field is found under the "Domain name" section. Alternatively find it in the URL of your admin dashboard (e.g. statuspal.io/admin/subdomain).

Request Body schema: json
required

The incident

object (Incident)

An incident, either major, minor or a scheduled maintenance

Responses

Request samples

Content type
json
{
  • "incident": {
    }
}

Response samples

Content type
json
{
  • "incident": {
    }
}

Deletes incident permanently

Authorizations:
api_key
path Parameters
subdomain
required
string

The subdomain of your status page.

You can find this under your status page settings, the Subdomain field is found under the "Domain name" section. Alternatively find it in the URL of your admin dashboard (e.g. statuspal.io/admin/subdomain).

incidentId
required
integer

The ID of an incident/maintenance

Responses

Response samples

Content type
json
{
  • "error": 401
}

Incident Updates

Incident Updates endpoints

Adds a new update to the given incident

Authorizations:
api_key
path Parameters
subdomain
required
string

The subdomain of your status page.

You can find this under your status page settings, the Subdomain field is found under the "Domain name" section. Alternatively find it in the URL of your admin dashboard (e.g. statuspal.io/admin/subdomain).

incidentId
required
integer

The ID of an incident/maintenance

Request Body schema: json
required

The update

object (IncidentActivity)

Communicates an update of an incident, the special type resolved will close an incident.

Responses

Request samples

Content type
json
{
  • "update": {
    }
}

Response samples

Content type
json
{
  • "update": {
    }
}

Updates an incident update

Authorizations:
api_key
path Parameters
subdomain
required
string

The subdomain of your status page.

You can find this under your status page settings, the Subdomain field is found under the "Domain name" section. Alternatively find it in the URL of your admin dashboard (e.g. statuspal.io/admin/subdomain).

incidentId
required
integer

The ID of an incident/maintenance

Request Body schema: json
required

The update

object (IncidentActivity)

Communicates an update of an incident, the special type resolved will close an incident.

Responses

Request samples

Content type
json
{
  • "update": {
    }
}

Response samples

Content type
json
{
  • "update": {
    }
}

Deletes incident update permanently

Authorizations:
api_key
path Parameters
subdomain
required
string

The subdomain of your status page.

You can find this under your status page settings, the Subdomain field is found under the "Domain name" section. Alternatively find it in the URL of your admin dashboard (e.g. statuspal.io/admin/subdomain).

incidentId
required
integer

The ID of an incident/maintenance

updateId
required
integer

Responses

Response samples

Content type
json
{
  • "error": 401
}

Metrics

Metrics endpoints

Adds a metric data point to a custom metric

Authorizations:
api_key
path Parameters
subdomain
required
string

The subdomain of your status page.

You can find this under your status page settings, the Subdomain field is found under the "Domain name" section. Alternatively find it in the URL of your admin dashboard (e.g. statuspal.io/admin/subdomain).

metricId
required
integer

The ID of a custom metric

Request Body schema: json
required

The metric entry

object (MetricEntry)

Responses

Request samples

Content type
json
{
  • "entry": {
    }
}

Response samples

Content type
json
{
  • "entry": {
    }
}

Subscriptions

List subscriptions

Authorizations:
api_key
path Parameters
subdomain
required
string

The subdomain of your status page.

You can find this under your status page settings, the Subdomain field is found under the "Domain name" section. Alternatively find it in the URL of your admin dashboard (e.g. statuspal.io/admin/subdomain).

query Parameters
filter
string

Filters by email address or phone number.

In order to search by phone number, the following is supported:

  1. Full phone number. Ensure the country code is prefixed by a + sign and include a space between the country code and phone number (e.g. +49 000000000 or +49 000 000 000)
  2. Country code (e.g. +49)
  3. Phone number without country code (e.g. 000000000)
before
string

Used as a cursor for pagination.

after
string

Used as a cursor for pagination.

limit
integer

Set the number of subscriptions to return in the response. This defaults to 20 items, and can be a maximum of 100.

Responses

Response samples

Content type
json
{
  • "subscriptions": [
    ],
  • "links": {
    },
  • "meta": {
    }
}

Adds a new subscription email, SMS or discord subscription

Authorizations:
api_key
path Parameters
subdomain
required
string

The subdomain of your status page.

You can find this under your status page settings, the Subdomain field is found under the "Domain name" section. Alternatively find it in the URL of your admin dashboard (e.g. statuspal.io/admin/subdomain).

Request Body schema: json
required

The subscription

object (Subscription)

Responses

Request samples

Content type
json
{
  • "subscription": {
    }
}

Response samples

Content type
json
{
  • "subscription": {
    }
}

Get a subscription

Authorizations:
api_key
path Parameters
subdomain
required
string

The subdomain of your status page.

You can find this under your status page settings, the Subdomain field is found under the "Domain name" section. Alternatively find it in the URL of your admin dashboard (e.g. statuspal.io/admin/subdomain).

subscriptionId
required
string

The ID of a subscription

Responses

Response samples

Content type
json
{
  • "subscription": {
    }
}

Update the subscription

Authorizations:
api_key
path Parameters
subdomain
required
string

The subdomain of your status page.

You can find this under your status page settings, the Subdomain field is found under the "Domain name" section. Alternatively find it in the URL of your admin dashboard (e.g. statuspal.io/admin/subdomain).

subscriptionId
required
string

The ID of a subscription

Request Body schema: json
required

The subscription

object (Subscription)

Responses

Request samples

Content type
json
{
  • "subscription": {
    }
}

Response samples

Content type
json
{
  • "subscription": {
    }
}

Deletes the subscription

Authorizations:
api_key
path Parameters
subdomain
required
string

The subdomain of your status page.

You can find this under your status page settings, the Subdomain field is found under the "Domain name" section. Alternatively find it in the URL of your admin dashboard (e.g. statuspal.io/admin/subdomain).

subscriptionId
required
string

The ID of a subscription

Responses

Response samples

Content type
json
{
  • "error": 401
}

Services

Adds a new service

Authorizations:
api_key
path Parameters
subdomain
required
string

The subdomain of your status page.

You can find this under your status page settings, the Subdomain field is found under the "Domain name" section. Alternatively find it in the URL of your admin dashboard (e.g. statuspal.io/admin/subdomain).

Request Body schema: json
required

The service

object (Service)

Represents the service

Responses

Request samples

Content type
json
{
  • "service": {
    }
}

Response samples

Content type
json
{
  • "service": {
    }
}

Get a service

Authorizations:
api_key
path Parameters
subdomain
required
string

The subdomain of your status page.

You can find this under your status page settings, the Subdomain field is found under the "Domain name" section. Alternatively find it in the URL of your admin dashboard (e.g. statuspal.io/admin/subdomain).

serviceId
required
integer

The ID of a service

Responses

Response samples

Content type
json
{
  • "service": {
    }
}

Updates existing service

Authorizations:
api_key
path Parameters
serviceId
required
integer

The ID of a service

subdomain
required
string

The subdomain of your status page.

You can find this under your status page settings, the Subdomain field is found under the "Domain name" section. Alternatively find it in the URL of your admin dashboard (e.g. statuspal.io/admin/subdomain).

Request Body schema: json
required

The service

object (Service)

Represents the service

Responses

Request samples

Content type
json
{
  • "service": {
    }
}

Response samples

Content type
json
{
  • "service": {
    }
}

Deletes service permanently

Authorizations:
api_key
path Parameters
subdomain
required
string

The subdomain of your status page.

You can find this under your status page settings, the Subdomain field is found under the "Domain name" section. Alternatively find it in the URL of your admin dashboard (e.g. statuspal.io/admin/subdomain).

serviceId
required
integer

The ID of a service

Responses

Response samples

Content type
json
{
  • "error": 401
}

Webhooks

List all webhooks

Authorizations:
api_key
path Parameters
subdomain
required
string

The subdomain of your status page.

You can find this under your status page settings, the Subdomain field is found under the "Domain name" section. Alternatively find it in the URL of your admin dashboard (e.g. statuspal.io/admin/subdomain).

Responses

Response samples

Content type
json
{
  • "webhooks": [
    ]
}

Adds a new webhook

Authorizations:
api_key
path Parameters
subdomain
required
string

The subdomain of your status page.

You can find this under your status page settings, the Subdomain field is found under the "Domain name" section. Alternatively find it in the URL of your admin dashboard (e.g. statuspal.io/admin/subdomain).

Request Body schema: json
required

The webhook

object (Webhook)

Responses

Request samples

Content type
json
{
  • "webhook": {
    }
}

Response samples

Content type
json
{
  • "webhook": {
    }
}

Get a webhook

Authorizations:
api_key
path Parameters
subdomain
required
string

The subdomain of your status page.

You can find this under your status page settings, the Subdomain field is found under the "Domain name" section. Alternatively find it in the URL of your admin dashboard (e.g. statuspal.io/admin/subdomain).

webhookId
required
integer

The ID of a webhook

Responses

Response samples

Content type
json
{
  • "webhook": {
    }
}

Update the webhook

Authorizations:
api_key
path Parameters
subdomain
required
string

The subdomain of your status page.

You can find this under your status page settings, the Subdomain field is found under the "Domain name" section. Alternatively find it in the URL of your admin dashboard (e.g. statuspal.io/admin/subdomain).

webhookId
required
integer

The ID of a webhook

Request Body schema: json
required

The webhook

object (Webhook)

Responses

Request samples

Content type
json
{
  • "webhook": {
    }
}

Response samples

Content type
json
{
  • "webhook": {
    }
}

Deletes the webhook

Authorizations:
api_key
path Parameters
subdomain
required
string

The subdomain of your status page.

You can find this under your status page settings, the Subdomain field is found under the "Domain name" section. Alternatively find it in the URL of your admin dashboard (e.g. statuspal.io/admin/subdomain).

webhookId
required
integer

The ID of a webhook

Responses

Response samples

Content type
json
{
  • "error": 401
}

Access Groups

List all access groups

Authorizations:
api_key
path Parameters
subdomain
required
string

The subdomain of your status page.

You can find this under your status page settings, the Subdomain field is found under the "Domain name" section. Alternatively find it in the URL of your admin dashboard (e.g. statuspal.io/admin/subdomain).

Responses

Response samples

Content type
json
{
  • "access_groups": [
    ]
}

Adds a new access group

Authorizations:
api_key
path Parameters
subdomain
required
string

The subdomain of your status page.

You can find this under your status page settings, the Subdomain field is found under the "Domain name" section. Alternatively find it in the URL of your admin dashboard (e.g. statuspal.io/admin/subdomain).

Request Body schema: json
required

The access group

object (AccessGroup)

Responses

Request samples

Content type
json
{
  • "access_group": {
    }
}

Response samples

Content type
json
{
  • "access_group": {
    }
}

Get an access group

Authorizations:
api_key
path Parameters
subdomain
required
string

The subdomain of your status page.

You can find this under your status page settings, the Subdomain field is found under the "Domain name" section. Alternatively find it in the URL of your admin dashboard (e.g. statuspal.io/admin/subdomain).

accessGroupId
required
integer

The ID of an access group

Responses

Response samples

Content type
json
{
  • "access_group": {
    }
}

Update the access group

Authorizations:
api_key
path Parameters
subdomain
required
string

The subdomain of your status page.

You can find this under your status page settings, the Subdomain field is found under the "Domain name" section. Alternatively find it in the URL of your admin dashboard (e.g. statuspal.io/admin/subdomain).

accessGroupId
required
integer

The ID of an access group

Request Body schema: json
required

The access group

object (AccessGroup)

Responses

Request samples

Content type
json
{
  • "access_group": {
    }
}

Response samples

Content type
json
{
  • "access_group": {
    }
}

Deletes the access group

Authorizations:
api_key
path Parameters
subdomain
required
string

The subdomain of your status page.

You can find this under your status page settings, the Subdomain field is found under the "Domain name" section. Alternatively find it in the URL of your admin dashboard (e.g. statuspal.io/admin/subdomain).

accessGroupId
required
integer

The ID of an access group

Responses

Response samples

Content type
json
{
  • "error": 401
}

Status Page Members

List all members

Authorizations:
api_key
path Parameters
subdomain
required
string

The subdomain of your status page.

You can find this under your status page settings, the Subdomain field is found under the "Domain name" section. Alternatively find it in the URL of your admin dashboard (e.g. statuspal.io/admin/subdomain).

query Parameters
before
string

Used as a cursor for pagination.

after
string

Used as a cursor for pagination.

limit
integer

Set the number of subscriptions to return in the response. This defaults to 20 items, and can be a maximum of 100.

email
string

Filter the members by email.

Responses

Response samples

Content type
json
{
  • "members": [
    ],
  • "links": {
    },
  • "meta": {
    }
}

Adds a new membership

Authorizations:
api_key
path Parameters
subdomain
required
string

The subdomain of your status page.

You can find this under your status page settings, the Subdomain field is found under the "Domain name" section. Alternatively find it in the URL of your admin dashboard (e.g. statuspal.io/admin/subdomain).

Request Body schema: json
required

The membership

email
string

The member's email address.

role
string

The membership role. Available roles:

  • c - Editor
  • v - Viewer
  • a - Admin
enabled
boolean

Toggles the membership's state.

Responses

Request samples

Content type
json
{
  • "email": "jane@doe.com",
  • "role": "v",
  • "enabled": true
}

Response samples

Content type
json
{
  • "member": {
    }
}

Update the membership

Authorizations:
api_key
path Parameters
subdomain
required
string

The subdomain of your status page.

You can find this under your status page settings, the Subdomain field is found under the "Domain name" section. Alternatively find it in the URL of your admin dashboard (e.g. statuspal.io/admin/subdomain).

memberId
required
integer

The ID of a membership

Request Body schema: json
required

The membership

object (StatusPageMember)

Responses

Request samples

Content type
json
{
  • "member": {
    }
}

Response samples

Content type
json
{
  • "member": {
    }
}

Deletes the membership

Authorizations:
api_key
path Parameters
subdomain
required
string

The subdomain of your status page.

You can find this under your status page settings, the Subdomain field is found under the "Domain name" section. Alternatively find it in the URL of your admin dashboard (e.g. statuspal.io/admin/subdomain).

memberId
required
integer

The ID of a membership

Responses

Response samples

Content type
json
{
  • "error": 401
}

Organization Members

List all members

Authorizations:
api_key
path Parameters
organizationId
required
integer

The ID of the organization

query Parameters
before
string

Used as a cursor for pagination.

after
string

Used as a cursor for pagination.

limit
integer

Set the number of subscriptions to return in the response. This defaults to 20 items, and can be a maximum of 100.

email
string

Filter the members by email.

Responses

Response samples

Content type
json
{
  • "members": [
    ],
  • "links": {
    },
  • "meta": {
    }
}

Adds a new membership

Authorizations:
api_key
path Parameters
organizationId
required
integer

The ID of the organization

Request Body schema: json
required

The membership

email
string

The member's email address.

role
string

The membership role. Available roles:

  • c - Editor
  • v - Viewer
  • a - Admin
  • o - Owner

Responses

Request samples

Content type
json
{
  • "email": "jane@doe.com",
  • "role": "v"
}

Response samples

Content type
json
{
  • "member": {
    }
}

Update the membership

Authorizations:
api_key
path Parameters
organizationId
required
integer

The ID of the organization

memberId
required
integer

The ID of a membership

Request Body schema: json
required

The membership

object (OrganizationMember)

Responses

Request samples

Content type
json
{
  • "member": {
    }
}

Response samples

Content type
json
{
  • "member": {
    }
}

Deletes the membership

Authorizations:
api_key
path Parameters
organizationId
required
integer

The ID of the organization

memberId
required
integer

The ID of a membership

Responses

Response samples

Content type
json
{
  • "error": 401
}