API reference · Pages & reporting

Status pages

Public and client-facing uptime pages: structure, updates, subscribers, translations.

Base URL https://app.upfour.io/v1 · auth via Authorization: Bearer <key> · “Try it” runs from your browser — the key is kept in this tab only. Use a pls_test_ sandbox key to experiment freely.

GET /status-pages

scope status_page.write stable returns 200

ParameterInTypeNotes
limit query integer default 50
cursor query string
client_id query uuid
all_clients query boolean
q query string
sort query string
curl -s https://app.upfour.io/v1/status-pages \
  -H "Authorization: Bearer $UP4_API_KEY"
Try it

Sent directly from your browser to https://app.upfour.io/v1. Mutating calls get an automatic Idempotency-Key.

POST /status-pages

scope status_page.write stable returns 201

curl -s -X POST https://app.upfour.io/v1/status-pages \
  -H "Authorization: Bearer $UP4_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
Try it

Sent directly from your browser to https://app.upfour.io/v1. Mutating calls get an automatic Idempotency-Key.

GET /status-pages/{pageID}

scope status_page.write stable returns 200

ParameterInTypeNotes
pageIDrequired path uuid
curl -s https://app.upfour.io/v1/status-pages/<pageID> \
  -H "Authorization: Bearer $UP4_API_KEY"
Try it

Sent directly from your browser to https://app.upfour.io/v1. Mutating calls get an automatic Idempotency-Key.

PUT /status-pages/{pageID}

scope status_page.write stable returns 200

ParameterInTypeNotes
pageIDrequired path uuid
curl -s -X PUT https://app.upfour.io/v1/status-pages/<pageID> \
  -H "Authorization: Bearer $UP4_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
Try it

Sent directly from your browser to https://app.upfour.io/v1. Mutating calls get an automatic Idempotency-Key.

DELETE /status-pages/{pageID}

scope status_page.write stable returns 204

ParameterInTypeNotes
pageIDrequired path uuid
curl -s -X DELETE https://app.upfour.io/v1/status-pages/<pageID> \
  -H "Authorization: Bearer $UP4_API_KEY"
Try it

Sent directly from your browser to https://app.upfour.io/v1. Mutating calls get an automatic Idempotency-Key.

GET /status-pages/{pageID}/access

scope status_page.write stable returns 200

ParameterInTypeNotes
pageIDrequired path uuid
curl -s https://app.upfour.io/v1/status-pages/<pageID>/access \
  -H "Authorization: Bearer $UP4_API_KEY"
Try it

Sent directly from your browser to https://app.upfour.io/v1. Mutating calls get an automatic Idempotency-Key.

PUT /status-pages/{pageID}/access

scope status_page.write stable returns 200

ParameterInTypeNotes
pageIDrequired path uuid
curl -s -X PUT https://app.upfour.io/v1/status-pages/<pageID>/access \
  -H "Authorization: Bearer $UP4_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
Try it

Sent directly from your browser to https://app.upfour.io/v1. Mutating calls get an automatic Idempotency-Key.

POST /status-pages/{pageID}/access-token

scope status_page.write stable returns 201

ParameterInTypeNotes
pageIDrequired path uuid
curl -s -X POST https://app.upfour.io/v1/status-pages/<pageID>/access-token \
  -H "Authorization: Bearer $UP4_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
Try it

Sent directly from your browser to https://app.upfour.io/v1. Mutating calls get an automatic Idempotency-Key.

DELETE /status-pages/{pageID}/access-token

scope status_page.write stable returns 204

ParameterInTypeNotes
pageIDrequired path uuid
curl -s -X DELETE https://app.upfour.io/v1/status-pages/<pageID>/access-token \
  -H "Authorization: Bearer $UP4_API_KEY"
Try it

Sent directly from your browser to https://app.upfour.io/v1. Mutating calls get an automatic Idempotency-Key.

PUT /status-pages/{pageID}/custom-domain

scope status_page.write stable returns 200

ParameterInTypeNotes
pageIDrequired path uuid
curl -s -X PUT https://app.upfour.io/v1/status-pages/<pageID>/custom-domain \
  -H "Authorization: Bearer $UP4_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
Try it

Sent directly from your browser to https://app.upfour.io/v1. Mutating calls get an automatic Idempotency-Key.

DELETE /status-pages/{pageID}/custom-domain

scope status_page.write stable returns 204

ParameterInTypeNotes
pageIDrequired path uuid
curl -s -X DELETE https://app.upfour.io/v1/status-pages/<pageID>/custom-domain \
  -H "Authorization: Bearer $UP4_API_KEY"
Try it

Sent directly from your browser to https://app.upfour.io/v1. Mutating calls get an automatic Idempotency-Key.

POST /status-pages/{pageID}/custom-domain/recheck

scope status_page.write stable returns 201

ParameterInTypeNotes
pageIDrequired path uuid
curl -s -X POST https://app.upfour.io/v1/status-pages/<pageID>/custom-domain/recheck \
  -H "Authorization: Bearer $UP4_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
Try it

Sent directly from your browser to https://app.upfour.io/v1. Mutating calls get an automatic Idempotency-Key.

GET /status-pages/{pageID}/domain

scope status_page.read stable returns 200

ParameterInTypeNotes
pageIDrequired path uuid
curl -s https://app.upfour.io/v1/status-pages/<pageID>/domain \
  -H "Authorization: Bearer $UP4_API_KEY"
Try it

Sent directly from your browser to https://app.upfour.io/v1. Mutating calls get an automatic Idempotency-Key.

GET /status-pages/{pageID}/domain/events

scope status_page.read stable returns 200

ParameterInTypeNotes
pageIDrequired path uuid
curl -s https://app.upfour.io/v1/status-pages/<pageID>/domain/events \
  -H "Authorization: Bearer $UP4_API_KEY"
Try it

Sent directly from your browser to https://app.upfour.io/v1. Mutating calls get an automatic Idempotency-Key.

GET /status-pages/{pageID}/report-updates

scope status_page.read stable returns 200

ParameterInTypeNotes
pageIDrequired path uuid
curl -s https://app.upfour.io/v1/status-pages/<pageID>/report-updates \
  -H "Authorization: Bearer $UP4_API_KEY"
Try it

Sent directly from your browser to https://app.upfour.io/v1. Mutating calls get an automatic Idempotency-Key.

GET /status-pages/{pageID}/reports

scope status_page.write stable returns 200

ParameterInTypeNotes
pageIDrequired path uuid
curl -s https://app.upfour.io/v1/status-pages/<pageID>/reports \
  -H "Authorization: Bearer $UP4_API_KEY"
Try it

Sent directly from your browser to https://app.upfour.io/v1. Mutating calls get an automatic Idempotency-Key.

POST /status-pages/{pageID}/reports

scope status_page.write stable returns 201

ParameterInTypeNotes
pageIDrequired path uuid
curl -s -X POST https://app.upfour.io/v1/status-pages/<pageID>/reports \
  -H "Authorization: Bearer $UP4_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
Try it

Sent directly from your browser to https://app.upfour.io/v1. Mutating calls get an automatic Idempotency-Key.

GET /status-pages/{pageID}/sections

scope status_page.write stable returns 200

ParameterInTypeNotes
pageIDrequired path uuid
curl -s https://app.upfour.io/v1/status-pages/<pageID>/sections \
  -H "Authorization: Bearer $UP4_API_KEY"
Try it

Sent directly from your browser to https://app.upfour.io/v1. Mutating calls get an automatic Idempotency-Key.

POST /status-pages/{pageID}/sections

scope status_page.write stable returns 201

ParameterInTypeNotes
pageIDrequired path uuid
curl -s -X POST https://app.upfour.io/v1/status-pages/<pageID>/sections \
  -H "Authorization: Bearer $UP4_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
Try it

Sent directly from your browser to https://app.upfour.io/v1. Mutating calls get an automatic Idempotency-Key.

PUT /status-pages/{pageID}/sections/{sectionID}

scope status_page.write stable returns 200

ParameterInTypeNotes
pageIDrequired path uuid
sectionIDrequired path uuid
curl -s -X PUT https://app.upfour.io/v1/status-pages/<pageID>/sections/<sectionID> \
  -H "Authorization: Bearer $UP4_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
Try it

Sent directly from your browser to https://app.upfour.io/v1. Mutating calls get an automatic Idempotency-Key.

DELETE /status-pages/{pageID}/sections/{sectionID}

scope status_page.write stable returns 204

ParameterInTypeNotes
pageIDrequired path uuid
sectionIDrequired path uuid
curl -s -X DELETE https://app.upfour.io/v1/status-pages/<pageID>/sections/<sectionID> \
  -H "Authorization: Bearer $UP4_API_KEY"
Try it

Sent directly from your browser to https://app.upfour.io/v1. Mutating calls get an automatic Idempotency-Key.

GET /status-pages/{pageID}/sections/{sectionID}/resources

scope status_page.write stable returns 200

ParameterInTypeNotes
pageIDrequired path uuid
sectionIDrequired path uuid
curl -s https://app.upfour.io/v1/status-pages/<pageID>/sections/<sectionID>/resources \
  -H "Authorization: Bearer $UP4_API_KEY"
Try it

Sent directly from your browser to https://app.upfour.io/v1. Mutating calls get an automatic Idempotency-Key.

POST /status-pages/{pageID}/sections/{sectionID}/resources

scope status_page.write stable returns 201

ParameterInTypeNotes
pageIDrequired path uuid
sectionIDrequired path uuid
curl -s -X POST https://app.upfour.io/v1/status-pages/<pageID>/sections/<sectionID>/resources \
  -H "Authorization: Bearer $UP4_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
Try it

Sent directly from your browser to https://app.upfour.io/v1. Mutating calls get an automatic Idempotency-Key.

PUT /status-pages/{pageID}/sections/{sectionID}/resources/{resourceID}

scope status_page.write stable returns 200

ParameterInTypeNotes
pageIDrequired path uuid
sectionIDrequired path uuid
resourceIDrequired path uuid
curl -s -X PUT https://app.upfour.io/v1/status-pages/<pageID>/sections/<sectionID>/resources/<resourceID> \
  -H "Authorization: Bearer $UP4_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
Try it

Sent directly from your browser to https://app.upfour.io/v1. Mutating calls get an automatic Idempotency-Key.

DELETE /status-pages/{pageID}/sections/{sectionID}/resources/{resourceID}

scope status_page.write stable returns 204

ParameterInTypeNotes
pageIDrequired path uuid
sectionIDrequired path uuid
resourceIDrequired path uuid
curl -s -X DELETE https://app.upfour.io/v1/status-pages/<pageID>/sections/<sectionID>/resources/<resourceID> \
  -H "Authorization: Bearer $UP4_API_KEY"
Try it

Sent directly from your browser to https://app.upfour.io/v1. Mutating calls get an automatic Idempotency-Key.

GET /status-pages/{pageID}/structure

scope status_page.write stable returns 200

ParameterInTypeNotes
pageIDrequired path uuid
curl -s https://app.upfour.io/v1/status-pages/<pageID>/structure \
  -H "Authorization: Bearer $UP4_API_KEY"
Try it

Sent directly from your browser to https://app.upfour.io/v1. Mutating calls get an automatic Idempotency-Key.

PUT /status-pages/{pageID}/structure

scope status_page.write stable returns 200

ParameterInTypeNotes
pageIDrequired path uuid
curl -s -X PUT https://app.upfour.io/v1/status-pages/<pageID>/structure \
  -H "Authorization: Bearer $UP4_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
Try it

Sent directly from your browser to https://app.upfour.io/v1. Mutating calls get an automatic Idempotency-Key.

GET /status-pages/{pageID}/subscribers

scope status_page.subscriber.write stable returns 200

ParameterInTypeNotes
pageIDrequired path uuid
curl -s https://app.upfour.io/v1/status-pages/<pageID>/subscribers \
  -H "Authorization: Bearer $UP4_API_KEY"
Try it

Sent directly from your browser to https://app.upfour.io/v1. Mutating calls get an automatic Idempotency-Key.

POST /status-pages/{pageID}/subscribers

scope status_page.subscriber.write stable returns 201

ParameterInTypeNotes
pageIDrequired path uuid
curl -s -X POST https://app.upfour.io/v1/status-pages/<pageID>/subscribers \
  -H "Authorization: Bearer $UP4_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
Try it

Sent directly from your browser to https://app.upfour.io/v1. Mutating calls get an automatic Idempotency-Key.

POST /status-pages/{pageID}/subscribers/upload

scope status_page.subscriber.write stable returns 201

ParameterInTypeNotes
pageIDrequired path uuid
curl -s -X POST https://app.upfour.io/v1/status-pages/<pageID>/subscribers/upload \
  -H "Authorization: Bearer $UP4_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
Try it

Sent directly from your browser to https://app.upfour.io/v1. Mutating calls get an automatic Idempotency-Key.

DELETE /status-pages/{pageID}/subscribers/{subscriberID}

scope status_page.subscriber.write stable returns 204

ParameterInTypeNotes
pageIDrequired path uuid
subscriberIDrequired path uuid
curl -s -X DELETE https://app.upfour.io/v1/status-pages/<pageID>/subscribers/<subscriberID> \
  -H "Authorization: Bearer $UP4_API_KEY"
Try it

Sent directly from your browser to https://app.upfour.io/v1. Mutating calls get an automatic Idempotency-Key.

POST /status-pages/{pageID}/subscribers/{subscriberID}/resend

scope status_page.subscriber.write stable returns 201

ParameterInTypeNotes
pageIDrequired path uuid
subscriberIDrequired path uuid
curl -s -X POST https://app.upfour.io/v1/status-pages/<pageID>/subscribers/<subscriberID>/resend \
  -H "Authorization: Bearer $UP4_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
Try it

Sent directly from your browser to https://app.upfour.io/v1. Mutating calls get an automatic Idempotency-Key.

GET /status-pages/{pageID}/translations

scope status_page.write stable returns 200

ParameterInTypeNotes
pageIDrequired path uuid
curl -s https://app.upfour.io/v1/status-pages/<pageID>/translations \
  -H "Authorization: Bearer $UP4_API_KEY"
Try it

Sent directly from your browser to https://app.upfour.io/v1. Mutating calls get an automatic Idempotency-Key.

POST /status-pages/{pageID}/translations

scope status_page.write stable returns 201

ParameterInTypeNotes
pageIDrequired path uuid
curl -s -X POST https://app.upfour.io/v1/status-pages/<pageID>/translations \
  -H "Authorization: Bearer $UP4_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
Try it

Sent directly from your browser to https://app.upfour.io/v1. Mutating calls get an automatic Idempotency-Key.

PUT /status-pages/{pageID}/translations/{translationID}

scope status_page.write stable returns 200

ParameterInTypeNotes
pageIDrequired path uuid
translationIDrequired path uuid
curl -s -X PUT https://app.upfour.io/v1/status-pages/<pageID>/translations/<translationID> \
  -H "Authorization: Bearer $UP4_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
Try it

Sent directly from your browser to https://app.upfour.io/v1. Mutating calls get an automatic Idempotency-Key.

DELETE /status-pages/{pageID}/translations/{translationID}

scope status_page.write stable returns 204

ParameterInTypeNotes
pageIDrequired path uuid
translationIDrequired path uuid
curl -s -X DELETE https://app.upfour.io/v1/status-pages/<pageID>/translations/<translationID> \
  -H "Authorization: Bearer $UP4_API_KEY"
Try it

Sent directly from your browser to https://app.upfour.io/v1. Mutating calls get an automatic Idempotency-Key.

GET /status-pages/{pageID}/updates

scope status_page.write stable returns 200

ParameterInTypeNotes
pageIDrequired path uuid
curl -s https://app.upfour.io/v1/status-pages/<pageID>/updates \
  -H "Authorization: Bearer $UP4_API_KEY"
Try it

Sent directly from your browser to https://app.upfour.io/v1. Mutating calls get an automatic Idempotency-Key.

POST /status-pages/{pageID}/updates

scope status_page.write stable returns 201

ParameterInTypeNotes
pageIDrequired path uuid
curl -s -X POST https://app.upfour.io/v1/status-pages/<pageID>/updates \
  -H "Authorization: Bearer $UP4_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}'
Try it

Sent directly from your browser to https://app.upfour.io/v1. Mutating calls get an automatic Idempotency-Key.

DELETE /status-pages/{pageID}/updates/{updateID}

scope status_page.write stable returns 204

ParameterInTypeNotes
pageIDrequired path uuid
updateIDrequired path uuid
curl -s -X DELETE https://app.upfour.io/v1/status-pages/<pageID>/updates/<updateID> \
  -H "Authorization: Bearer $UP4_API_KEY"
Try it

Sent directly from your browser to https://app.upfour.io/v1. Mutating calls get an automatic Idempotency-Key.