Status API › Incidents
Save the postmortem
Saves the postmortem (Markdown) and, with published: true, shows it on the
public page. published: false saves it as a draft and takes it off the page.
Only a resolved incident's postmortem can be published.
Permission (API-key scope): status:incident:write.
Authorization
bearerAuth(status:incident:write)apiKeyHeader(status:incident:write)
Parameters
Path parameters
pageIDstring (uuid) requiredThe status page's id (a UUID).idstring (uuid) requiredThe incident's, maintenance window's or subscriber's id (a UUID).
Request body required
bodystringMarkdown. Required (non-empty) to publish.publishedbooleanShow it on the public page. Only a resolved incident's postmortem can be published.
Responses
200
The incident.
dataIncident requiredShow Incident properties
idstring (uuid) requiredorg_idstring requiredpage_idstring (uuid) requiredtitlestring requiredimpactIncidentImpact requiredstatusIncidentStatus requiredstarted_atstring (date-time) requiredresolved_atstring (date-time)created_atstring (date-time) requiredWhen the page got it.updated_atstring (date-time) requiredpostmortem_bodystringMarkdown; absent when none is written.postmortem_published_atstring (date-time)Set while the postmortem shows on the public page.backfilledboolean requiredWritten after the fact with its own past times; it mailed no subscriber.managed_inManagedIn requiredaffected_component_idsarray of string (uuid) requiredupdatesarray of IncidentUpdate requiredThe timeline.Show IncidentUpdate properties
idstring (uuid)incident_idstring (uuid)statusIncidentStatusbodystringcreated_atstring (date-time)
successboolean required
400
A field is missing or invalid (VALIDATION_ERROR); the message names it, or the body is not valid (INVALID_BODY).
errorobject requiredcodestring requiredMachine-readable code. Branch on this.messagestring requiredHuman-readable explanation.request_idstringThis request's id, also inX-Request-ID.
401
No API key was sent, or it is unknown, revoked or expired (UNAUTHORIZED).
errorobject requiredcodestring requiredMachine-readable code. Branch on this.messagestring requiredHuman-readable explanation.request_idstringThis request's id, also inX-Request-ID.
403
The key lacks the scope this endpoint needs (FORBIDDEN).
errorobject requiredcodestring requiredMachine-readable code. Branch on this.messagestring requiredHuman-readable explanation.request_idstringThis request's id, also inX-Request-ID.
404
No such page or incident, or one on another page (NOT_FOUND).
errorobject requiredcodestring requiredMachine-readable code. Branch on this.messagestring requiredHuman-readable explanation.request_idstringThis request's id, also inX-Request-ID.
409
Publishing before the incident is resolved (NOT_RESOLVED).
errorobject requiredcodestring requiredMachine-readable code. Branch on this.messagestring requiredHuman-readable explanation.request_idstringThis request's id, also inX-Request-ID.
429
Too many requests (RATE_LIMITED). Wait Retry-After seconds.
Retry-AfterintegerSeconds to wait.
errorobject requiredcodestring requiredMachine-readable code. Branch on this.messagestring requiredHuman-readable explanation.request_idstringThis request's id, also inX-Request-ID.
500
Something went wrong on EvoHub's side (INTERNAL_ERROR). Retry later.
errorobject requiredcodestring requiredMachine-readable code. Branch on this.messagestring requiredHuman-readable explanation.request_idstringThis request's id, also inX-Request-ID.
Example request
curl -X PUT 'https://evohub.io/api/v1/pages/3f6c2a1e-8b4d-4f7a-9c21-5d0e7a9b1c42/incidents/00000000-0000-0000-0000-000000000000/postmortem' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <TOKEN>' \
-d '{
"body": "## What happened\n\nA bad deploy raised API error rates for 25 minutes.",
"published": true
}'