Status pages
/api/v1/status-pagesList all status pages owned by the current user.
Authorization
HTTPBearer In: header
Response Body
application/json
curl -X GET "https://example.com/api/v1/status-pages"[ { "id": "string", "user_id": "string", "name": "string", "slug": "string", "description": "string", "is_public": true, "custom_domain": "string", "branding": {}, "overall_status": "string", "created_at": "string", "updated_at": "string", "components": [] }]/api/v1/status-pagesCreate a new status page.
Authorization
HTTPBearer In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X POST "https://example.com/api/v1/status-pages" \ -H "Content-Type: application/json" \ -d '{ "name": "string", "slug": "string" }'{ "id": "string", "user_id": "string", "name": "string", "slug": "string", "description": "string", "is_public": true, "custom_domain": "string", "branding": {}, "overall_status": "string", "created_at": "string", "updated_at": "string", "components": []}/api/v1/status-pages/{page_id}Get a status page by ID.
Authorization
HTTPBearer In: header
Path Parameters
Response Body
application/json
application/json
curl -X GET "https://example.com/api/v1/status-pages/string"{ "id": "string", "user_id": "string", "name": "string", "slug": "string", "description": "string", "is_public": true, "custom_domain": "string", "branding": {}, "overall_status": "string", "created_at": "string", "updated_at": "string", "components": []}/api/v1/status-pages/{page_id}Delete a status page (cascades to components and subscribers).
Authorization
HTTPBearer In: header
Path Parameters
Response Body
application/json
curl -X DELETE "https://example.com/api/v1/status-pages/string"/api/v1/status-pages/{page_id}Update a status page.
Authorization
HTTPBearer In: header
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X PUT "https://example.com/api/v1/status-pages/string" \ -H "Content-Type: application/json" \ -d '{}'{ "id": "string", "user_id": "string", "name": "string", "slug": "string", "description": "string", "is_public": true, "custom_domain": "string", "branding": {}, "overall_status": "string", "created_at": "string", "updated_at": "string", "components": []}/api/v1/status-pages/{page_id}/componentsAdd a component to a status page.
Authorization
HTTPBearer In: header
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X POST "https://example.com/api/v1/status-pages/string/components" \ -H "Content-Type: application/json" \ -d '{ "name": "string" }'{ "id": "string", "page_id": "string", "name": "string", "description": "string", "monitor_id": "string", "status": "string", "sort_order": 0, "updated_at": "string"}/api/v1/status-pages/{page_id}/components/{comp_id}Remove a component from a status page.
Authorization
HTTPBearer In: header
Path Parameters
Response Body
application/json
curl -X DELETE "https://example.com/api/v1/status-pages/string/components/string"/api/v1/status-pages/{page_id}/components/{comp_id}Update a component on a status page.
Authorization
HTTPBearer In: header
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X PUT "https://example.com/api/v1/status-pages/string/components/string" \ -H "Content-Type: application/json" \ -d '{}'{ "id": "string", "page_id": "string", "name": "string", "description": "string", "monitor_id": "string", "status": "string", "sort_order": 0, "updated_at": "string"}/api/v1/public/status/{slug}Public status page endpoint — no authentication required. Returns 404 if the page does not exist or is not public.
Path Parameters
Response Body
application/json
application/json
curl -X GET "https://example.com/api/v1/public/status/string"{ "name": "string", "slug": "string", "description": "string", "branding": {}, "overall_status": "string", "components": [ { "name": "string", "description": "string", "status": "string", "updated_at": "string" } ]}/api/v1/public/status/{slug}/incidentsPublic — list incidents linked to a status page.
Returns non-resolved incidents plus any resolved within the last 7 days. Returns 404 if the page does not exist or is not public.
Path Parameters
Response Body
application/json
application/json
curl -X GET "https://example.com/api/v1/public/status/string/incidents"[ { "id": "string", "title": "string", "status": "string", "severity": "string", "created_at": "string", "resolved_at": "string" }]/api/v1/public/status/{slug}/subscribeSubscribe an email address to status page updates.
Returns 409 if the email is already subscribed. Returns 404 if the slug does not exist or the page is not public.
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X POST "https://example.com/api/v1/public/status/string/subscribe" \ -H "Content-Type: application/json" \ -d '{ "email": "user@example.com" }'{ "message": "string"}/api/v1/public/status/{slug}/subscribe/confirmConfirm a status page email subscription via the token sent by email. Returns 404 if the slug or token is invalid / already confirmed.
Path Parameters
Query Parameters
Confirmation token from the email link
Response Body
application/json
application/json
curl -X GET "https://example.com/api/v1/public/status/string/subscribe/confirm?token=string"{ "message": "string"}/api/v1/public/status/{slug}/unsubscribeUnsubscribe from a status page using the verification token from the subscription email. Returns 404 if the slug or token is invalid.
Path Parameters
Query Parameters
Verification token from the subscription email
Response Body
application/json
application/json
curl -X DELETE "https://example.com/api/v1/public/status/string/unsubscribe?token=string"{ "message": "string"}/api/v1/me/status-pages/{status_page_id}/incidentsLink an incident to a status page.
The incident must belong to the same organization. Returns 404 if the status page or incident is not found. Returns 409 if the link already exists.
Authorization
HTTPBearer In: header
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X POST "https://example.com/api/v1/me/status-pages/string/incidents" \ -H "Content-Type: application/json" \ -d '{ "incident_id": "2f811c5b-b888-4fb3-aac5-3c6a4b05df32" }'null/api/v1/me/status-pages/{status_page_id}/incidents/{incident_id}Remove an incident link from a status page.
Returns 404 if the link does not exist.
Authorization
HTTPBearer In: header
Path Parameters
uuidResponse Body
application/json
curl -X DELETE "https://example.com/api/v1/me/status-pages/string/incidents/497f6eca-6276-4993-bfeb-53cbbbba6f08"/api/v1/me/status-pages/{status_page_id}/subscribersList email subscribers for a status page.
Requires admin or above in the organization. Returns paginated subscriber list with id, email, verified flag, and created_at.
Authorization
HTTPBearer In: header
Path Parameters
Query Parameters
1 <= value <= 200500 <= value0Response Body
application/json
application/json
curl -X GET "https://example.com/api/v1/me/status-pages/string/subscribers"{ "items": [ { "id": "string", "email": "string", "verified": true, "created_at": "string" } ], "total": 0, "limit": 0, "offset": 0}