Status API › Incidents
Post an update
POST/api/v1/pages/{pageID}/incidents/{id}/updates
Adds a timeline entry and moves the incident to its status; resolved sets
resolved_at. Confirmed subscribers who follow an affected component (or the
whole page) are mailed.
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
statusIncidentStatus requiredbodystring required
Responses
201
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.
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 POST 'https://evohub.io/api/v1/pages/3f6c2a1e-8b4d-4f7a-9c21-5d0e7a9b1c42/incidents/00000000-0000-0000-0000-000000000000/updates' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <TOKEN>' \
-d '{
"body": "A fix is deployed; we are watching error rates.",
"status": "monitoring"
}'