Download OpenAPI specification:Download
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.
If you need some assistance please email us at support@statuspal.io.
curl https://statuspal.io/api/v2/hello \
-H 'Accept: application/json' \
-H 'Content-Type: application/json'
All datetime fields are stored in UTC and follow ISO 8601 standard (2022-01-01T00:00:00
).
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.
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" }]
}
}'
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/ |
{- "status_page": {
- "url": "google.com",
- "time_zone": "Etc/UTC",
- "subdomain": "google",
- "name": "Google",
- "current_incident_type": "major"
}
}
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/ |
serviceId required | integer The ID of a service |
{- "service": {
- "name": "Monitoring service",
- "id": 0,
- "current_incident_type": "major",
- "children": [
- { }
]
}
}
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/ |
{- "status_page": {
- "url": "google.com",
- "time_zone": "Etc/UTC",
- "subdomain": "google",
- "name": "Google",
- "current_incident_type": "major"
}, - "services": [
- {
- "name": "Monitoring service",
- "id": 0,
- "current_incident_type": "major",
- "children": [
- { }
]
}
], - "incidents": [
- {
- "id": 89,
- "inserted_at": "2022-01-01T00:00:00",
- "updated_at": "2022-01-01T00:00:00",
- "title": "We are having issues with the DB connection",
- "starts_at": "2022-01-01T00:00:00",
- "ends_at": "2022-01-01T00:00:00",
- "type": "major",
- "service_ids": [
- 1
], - "updates": [
- {
- "id": 89,
- "inserted_at": "2022-01-01T00:00:00",
- "updated_at": "2022-01-01T00:00:00",
- "type": "issue",
- "description": "We have detected an issue with our CDN",
- "description_html": "<p>We have detected an issue with our CDN</p>",
- "translations": {
- "en": {
- "description": "English description"
}, - "es": {
- "description": "Spanish description"
}
}, - "subscribers_notified_at": "2022-01-01T00:00:00",
- "tweet": true
}
], - "translations": {
- "en": {
- "title": "English Title"
}, - "es": {
- "title": "Spanish Title"
}
}
}
], - "maintenances": [
- {
- "id": 89,
- "inserted_at": "2022-01-01T00:00:00",
- "updated_at": "2022-01-01T00:00:00",
- "title": "We are having issues with the DB connection",
- "starts_at": "2022-01-01T00:00:00",
- "ends_at": "2022-01-01T00:00:00",
- "type": "scheduled",
- "service_ids": [
- 1
], - "updates": [
- {
- "id": 89,
- "inserted_at": "2022-01-01T00:00:00",
- "updated_at": "2022-01-01T00:00:00",
- "type": "issue",
- "description": "We have detected an issue with our CDN",
- "description_html": "<p>We have detected an issue with our CDN</p>",
- "translations": {
- "en": {
- "description": "English description"
}, - "es": {
- "description": "Spanish description"
}
}, - "subscribers_notified_at": "2022-01-01T00:00:00",
- "tweet": true
}
], - "translations": {
- "en": {
- "title": "English Title"
}, - "es": {
- "title": "Spanish Title"
}
}
}
], - "upcoming_maintenances": [
- {
- "id": 89,
- "inserted_at": "2022-01-01T00:00:00",
- "updated_at": "2022-01-01T00:00:00",
- "title": "We are having issues with the DB connection",
- "starts_at": "2022-01-01T00:00:00",
- "ends_at": "2022-01-01T00:00:00",
- "type": "scheduled",
- "service_ids": [
- 1
], - "updates": [
- {
- "id": 89,
- "inserted_at": "2022-01-01T00:00:00",
- "updated_at": "2022-01-01T00:00:00",
- "type": "issue",
- "description": "We have detected an issue with our CDN",
- "description_html": "<p>We have detected an issue with our CDN</p>",
- "translations": {
- "en": {
- "description": "English description"
}, - "es": {
- "description": "Spanish description"
}
}, - "subscribers_notified_at": "2022-01-01T00:00:00",
- "tweet": true
}
], - "translations": {
- "en": {
- "title": "English Title"
}, - "es": {
- "title": "Spanish Title"
}
}
}
]
}
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/ |
serviceId required | integer The ID of a service |
{- "service": {
- "name": "Monitoring service",
- "id": 0,
- "current_incident_type": "major",
- "children": [
- { }
]
}, - "incidents": [
- {
- "id": 89,
- "inserted_at": "2022-01-01T00:00:00",
- "updated_at": "2022-01-01T00:00:00",
- "title": "We are having issues with the DB connection",
- "starts_at": "2022-01-01T00:00:00",
- "ends_at": "2022-01-01T00:00:00",
- "type": "major",
- "service_ids": [
- 1
], - "updates": [
- {
- "id": 89,
- "inserted_at": "2022-01-01T00:00:00",
- "updated_at": "2022-01-01T00:00:00",
- "type": "issue",
- "description": "We have detected an issue with our CDN",
- "description_html": "<p>We have detected an issue with our CDN</p>",
- "translations": {
- "en": {
- "description": "English description"
}, - "es": {
- "description": "Spanish description"
}
}, - "subscribers_notified_at": "2022-01-01T00:00:00",
- "tweet": true
}
], - "translations": {
- "en": {
- "title": "English Title"
}, - "es": {
- "title": "Spanish Title"
}
}
}
], - "maintenances": [
- {
- "id": 89,
- "inserted_at": "2022-01-01T00:00:00",
- "updated_at": "2022-01-01T00:00:00",
- "title": "We are having issues with the DB connection",
- "starts_at": "2022-01-01T00:00:00",
- "ends_at": "2022-01-01T00:00:00",
- "type": "scheduled",
- "service_ids": [
- 1
], - "updates": [
- {
- "id": 89,
- "inserted_at": "2022-01-01T00:00:00",
- "updated_at": "2022-01-01T00:00:00",
- "type": "issue",
- "description": "We have detected an issue with our CDN",
- "description_html": "<p>We have detected an issue with our CDN</p>",
- "translations": {
- "en": {
- "description": "English description"
}, - "es": {
- "description": "Spanish description"
}
}, - "subscribers_notified_at": "2022-01-01T00:00:00",
- "tweet": true
}
], - "translations": {
- "en": {
- "title": "English Title"
}, - "es": {
- "title": "Spanish Title"
}
}
}
], - "upcoming_maintenances": [
- {
- "id": 89,
- "inserted_at": "2022-01-01T00:00:00",
- "updated_at": "2022-01-01T00:00:00",
- "title": "We are having issues with the DB connection",
- "starts_at": "2022-01-01T00:00:00",
- "ends_at": "2022-01-01T00:00:00",
- "type": "scheduled",
- "service_ids": [
- 1
], - "updates": [
- {
- "id": 89,
- "inserted_at": "2022-01-01T00:00:00",
- "updated_at": "2022-01-01T00:00:00",
- "type": "issue",
- "description": "We have detected an issue with our CDN",
- "description_html": "<p>We have detected an issue with our CDN</p>",
- "translations": {
- "en": {
- "description": "English description"
}, - "es": {
- "description": "Spanish description"
}
}, - "subscribers_notified_at": "2022-01-01T00:00:00",
- "tweet": true
}
], - "translations": {
- "en": {
- "title": "English Title"
}, - "es": {
- "title": "Spanish Title"
}
}
}
]
}
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/ |
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. |
{- "incidents": [
- {
- "id": 89,
- "inserted_at": "2022-01-01T00:00:00",
- "updated_at": "2022-01-01T00:00:00",
- "title": "We are having issues with the DB connection",
- "starts_at": "2022-01-01T00:00:00",
- "ends_at": "2022-01-01T00:00:00",
- "type": "major",
- "service_ids": [
- 1
], - "updates": [
- {
- "id": 89,
- "inserted_at": "2022-01-01T00:00:00",
- "updated_at": "2022-01-01T00:00:00",
- "type": "issue",
- "description": "We have detected an issue with our CDN",
- "description_html": "<p>We have detected an issue with our CDN</p>",
- "translations": {
- "en": {
- "description": "English description"
}, - "es": {
- "description": "Spanish description"
}
}, - "subscribers_notified_at": "2022-01-01T00:00:00",
- "tweet": true
}
], - "translations": {
- "en": {
- "title": "English Title"
}, - "es": {
- "title": "Spanish Title"
}
}
}
], - "links": {
- "prev": "string"
}, - "meta": {
- "total_count": 100
}
}
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/ |
The incident
object (Incident) An incident, either major, minor or a scheduled maintenance |
{- "incident": {
- "title": "We are having issues with the DB connection",
- "starts_at": "2022-01-01T00:00:00",
- "ends_at": "2022-01-01T00:00:00",
- "type": "major",
- "service_ids": [
- 1
], - "updates": [
- {
- "type": "issue",
- "description": "We have detected an issue with our CDN",
- "translations": {
- "en": {
- "description": "English description"
}, - "es": {
- "description": "Spanish description"
}
}, - "notify": true,
- "tweet": true
}
], - "translations": {
- "en": {
- "title": "English Title"
}, - "es": {
- "title": "Spanish Title"
}
}
}
}
{- "incident": {
- "id": 89,
- "inserted_at": "2022-01-01T00:00:00",
- "updated_at": "2022-01-01T00:00:00",
- "title": "We are having issues with the DB connection",
- "starts_at": "2022-01-01T00:00:00",
- "ends_at": "2022-01-01T00:00:00",
- "type": "major",
- "service_ids": [
- 1
], - "updates": [
- {
- "id": 89,
- "inserted_at": "2022-01-01T00:00:00",
- "updated_at": "2022-01-01T00:00:00",
- "type": "issue",
- "description": "We have detected an issue with our CDN",
- "description_html": "<p>We have detected an issue with our CDN</p>",
- "translations": {
- "en": {
- "description": "English description"
}, - "es": {
- "description": "Spanish description"
}
}, - "subscribers_notified_at": "2022-01-01T00:00:00",
- "tweet": true
}
], - "translations": {
- "en": {
- "title": "English Title"
}, - "es": {
- "title": "Spanish Title"
}
}
}
}
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/ |
incidentId required | integer The ID of an incident/maintenance |
{- "incident": {
- "id": 89,
- "inserted_at": "2022-01-01T00:00:00",
- "updated_at": "2022-01-01T00:00:00",
- "title": "We are having issues with the DB connection",
- "starts_at": "2022-01-01T00:00:00",
- "ends_at": "2022-01-01T00:00:00",
- "type": "major",
- "service_ids": [
- 1
], - "updates": [
- {
- "id": 89,
- "inserted_at": "2022-01-01T00:00:00",
- "updated_at": "2022-01-01T00:00:00",
- "type": "issue",
- "description": "We have detected an issue with our CDN",
- "description_html": "<p>We have detected an issue with our CDN</p>",
- "translations": {
- "en": {
- "description": "English description"
}, - "es": {
- "description": "Spanish description"
}