API reference · Alerting & response Incidents Open, acknowledge, comment, escalate, resolve. Everything the incident timeline shows, writable.
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 /incidentsPOST /incidentsGET /incidents/{incidentID}POST /incidents/{incidentID}/acknowledgePUT /incidents/{incidentID}/acknowledgeGET /incidents/{incidentID}/aiPOST /incidents/{incidentID}/ai/postmortemPOST /incidents/{incidentID}/ai/summaryPUT /incidents/{incidentID}/ai/{kind}/ratingGET /incidents/{incidentID}/attachmentsPOST /incidents/{incidentID}/attachmentsGET /incidents/{incidentID}/attachments/{attachmentID}DELETE /incidents/{incidentID}/attachments/{attachmentID}GET /incidents/{incidentID}/commentsPOST /incidents/{incidentID}/commentsDELETE /incidents/{incidentID}/comments/{commentID}POST /incidents/{incidentID}/escalateGET /incidents/{incidentID}/groupPOST /incidents/{incidentID}/reopenPUT /incidents/{incidentID}/reopenPOST /incidents/{incidentID}/resolvePUT /incidents/{incidentID}/resolveGET /incidents/{incidentID}/runbook-progressPUT /incidents/{incidentID}/runbook-steps/{stepID}/completionGET /incidents/{incidentID}/timelinePOST /incidents/{incidentID}/updates GET /incidents scope incident.write stable returns 200
Parameter In Type Notes 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/incidents \
-H "Authorization: Bearer $UP4_API_KEY" Try it POST /incidents scope incident.write stable returns 201
curl -s -X POST https://app.upfour.io/v1/incidents \
-H "Authorization: Bearer $UP4_API_KEY" \
-H "Content-Type: application/json" \
-d '{}' Try it GET /incidents/{incidentID} scope incident.read stable returns 200
Parameter In Type Notes incidentIDrequired path uuid
curl -s https://app.upfour.io/v1/incidents/<incidentID> \
-H "Authorization: Bearer $UP4_API_KEY" Try it POST /incidents/{incidentID}/acknowledge scope incident.write stable returns 201
Parameter In Type Notes incidentIDrequired path uuid
curl -s -X POST https://app.upfour.io/v1/incidents/<incidentID>/acknowledge \
-H "Authorization: Bearer $UP4_API_KEY" \
-H "Content-Type: application/json" \
-d '{}' Try it PUT /incidents/{incidentID}/acknowledge scope incident.write stable returns 200
Parameter In Type Notes incidentIDrequired path uuid
curl -s -X PUT https://app.upfour.io/v1/incidents/<incidentID>/acknowledge \
-H "Authorization: Bearer $UP4_API_KEY" \
-H "Content-Type: application/json" \
-d '{}' Try it GET /incidents/{incidentID}/ai scope incident.read stable returns 200
Parameter In Type Notes incidentIDrequired path uuid
curl -s https://app.upfour.io/v1/incidents/<incidentID>/ai \
-H "Authorization: Bearer $UP4_API_KEY" Try it POST /incidents/{incidentID}/ai/postmortem scope incident.write stable returns 201
Parameter In Type Notes incidentIDrequired path uuid
curl -s -X POST https://app.upfour.io/v1/incidents/<incidentID>/ai/postmortem \
-H "Authorization: Bearer $UP4_API_KEY" \
-H "Content-Type: application/json" \
-d '{}' Try it POST /incidents/{incidentID}/ai/summary scope incident.write stable returns 201
Parameter In Type Notes incidentIDrequired path uuid
curl -s -X POST https://app.upfour.io/v1/incidents/<incidentID>/ai/summary \
-H "Authorization: Bearer $UP4_API_KEY" \
-H "Content-Type: application/json" \
-d '{}' Try it PUT /incidents/{incidentID}/ai/{kind}/rating scope incident.write stable returns 200
Parameter In Type Notes incidentIDrequired path uuid kindrequired path uuid
curl -s -X PUT https://app.upfour.io/v1/incidents/<incidentID>/ai/<kind>/rating \
-H "Authorization: Bearer $UP4_API_KEY" \
-H "Content-Type: application/json" \
-d '{}' Try it GET /incidents/{incidentID}/attachments scope incident.write stable returns 200
Parameter In Type Notes incidentIDrequired path uuid
curl -s https://app.upfour.io/v1/incidents/<incidentID>/attachments \
-H "Authorization: Bearer $UP4_API_KEY" Try it POST /incidents/{incidentID}/attachments scope incident.write stable returns 201
Parameter In Type Notes incidentIDrequired path uuid
curl -s -X POST https://app.upfour.io/v1/incidents/<incidentID>/attachments \
-H "Authorization: Bearer $UP4_API_KEY" \
-H "Content-Type: application/json" \
-d '{}' Try it GET /incidents/{incidentID}/attachments/{attachmentID} scope incident.write stable returns 200
Parameter In Type Notes incidentIDrequired path uuid attachmentIDrequired path uuid
curl -s https://app.upfour.io/v1/incidents/<incidentID>/attachments/<attachmentID> \
-H "Authorization: Bearer $UP4_API_KEY" Try it DELETE /incidents/{incidentID}/attachments/{attachmentID} scope incident.write stable returns 204
Parameter In Type Notes incidentIDrequired path uuid attachmentIDrequired path uuid
curl -s -X DELETE https://app.upfour.io/v1/incidents/<incidentID>/attachments/<attachmentID> \
-H "Authorization: Bearer $UP4_API_KEY" Try it POST /incidents/{incidentID}/escalate scope incident.write stable returns 201
Parameter In Type Notes incidentIDrequired path uuid
curl -s -X POST https://app.upfour.io/v1/incidents/<incidentID>/escalate \
-H "Authorization: Bearer $UP4_API_KEY" \
-H "Content-Type: application/json" \
-d '{}' Try it GET /incidents/{incidentID}/group scope incident.read stable returns 200
Parameter In Type Notes incidentIDrequired path uuid
curl -s https://app.upfour.io/v1/incidents/<incidentID>/group \
-H "Authorization: Bearer $UP4_API_KEY" Try it POST /incidents/{incidentID}/reopen scope incident.write stable returns 201
Parameter In Type Notes incidentIDrequired path uuid
curl -s -X POST https://app.upfour.io/v1/incidents/<incidentID>/reopen \
-H "Authorization: Bearer $UP4_API_KEY" \
-H "Content-Type: application/json" \
-d '{}' Try it PUT /incidents/{incidentID}/reopen scope incident.write stable returns 200
Parameter In Type Notes incidentIDrequired path uuid
curl -s -X PUT https://app.upfour.io/v1/incidents/<incidentID>/reopen \
-H "Authorization: Bearer $UP4_API_KEY" \
-H "Content-Type: application/json" \
-d '{}' Try it POST /incidents/{incidentID}/resolve scope incident.write stable returns 201
Parameter In Type Notes incidentIDrequired path uuid
curl -s -X POST https://app.upfour.io/v1/incidents/<incidentID>/resolve \
-H "Authorization: Bearer $UP4_API_KEY" \
-H "Content-Type: application/json" \
-d '{}' Try it PUT /incidents/{incidentID}/resolve scope incident.write stable returns 200
Parameter In Type Notes incidentIDrequired path uuid
curl -s -X PUT https://app.upfour.io/v1/incidents/<incidentID>/resolve \
-H "Authorization: Bearer $UP4_API_KEY" \
-H "Content-Type: application/json" \
-d '{}' Try it GET /incidents/{incidentID}/runbook-progress scope incident.read stable returns 200
Parameter In Type Notes incidentIDrequired path uuid
curl -s https://app.upfour.io/v1/incidents/<incidentID>/runbook-progress \
-H "Authorization: Bearer $UP4_API_KEY" Try it PUT /incidents/{incidentID}/runbook-steps/{stepID}/completion scope incident.write stable returns 200
Parameter In Type Notes incidentIDrequired path uuid stepIDrequired path uuid
curl -s -X PUT https://app.upfour.io/v1/incidents/<incidentID>/runbook-steps/<stepID>/completion \
-H "Authorization: Bearer $UP4_API_KEY" \
-H "Content-Type: application/json" \
-d '{}' Try it GET /incidents/{incidentID}/timeline scope incident.read stable returns 200
Parameter In Type Notes incidentIDrequired path uuid
curl -s https://app.upfour.io/v1/incidents/<incidentID>/timeline \
-H "Authorization: Bearer $UP4_API_KEY" Try it POST /incidents/{incidentID}/updates scope incident.write stable returns 201
Parameter In Type Notes incidentIDrequired path uuid
curl -s -X POST https://app.upfour.io/v1/incidents/<incidentID>/updates \
-H "Authorization: Bearer $UP4_API_KEY" \
-H "Content-Type: application/json" \
-d '{}' Try it