Update post-mortem
Create or replace the post-mortem for an event.
PUT /app/events/{id}/post-mortem
Creates or fully replaces the post-mortem for an event. Uses PUT (full replace of the post-mortem document) — see Documented PUT exceptions in API Basics. Requires the Post-Mortem Reports feature entitlement.
Post-mortems are only supported on incident and maintenance events. Submitting to an informational event returns 400.
Path parameters
| Parameter | Description |
|---|---|
id | The event ID. |
Request
See API Basics for required headers.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
executiveSummary | string | Yes | Opening overview of scope, impact, and outcome. Gives readers the key facts before the detailed analysis. Rich text field. See Rich text fields. Max 10,000 characters. |
rootCauseAnalysis | string | Yes | Detailed explanation of the root cause and contributing factors. Rich text field. See Rich text fields. Max 10,000 characters. |
actionItems | array | Yes | List of remediation tasks. Max 50 items. See Action item fields. |
published | boolean | Yes | Whether to make the post-mortem publicly visible on status dashboards. |
Action item fields
| Field | Type | Required | Description |
|---|---|---|---|
id | string | No | UUID of an existing action item. Omit to have one assigned automatically. |
text | string | Yes | Description of the task. Max 500 characters. |
status | string | No | open, in_progress, or done. Defaults to open. |
owner | string | No | Optional owner or team name. Max 100 characters. |
ownerIsPublic | boolean | No | When false, owner is omitted from the public post-mortem page. Defaults to true. |
expectedCompletionAt | string | No | ISO 8601 date string (YYYY-MM-DD). Optional expected completion date. |
completedAt | string | No | ISO 8601 date string (YYYY-MM-DD). Optional actual completion date. |
isPublic | boolean | No | When false, the item is omitted from the public post-mortem page. Defaults to true. |
completedBy is not accepted on PUT. When completedAt is newly set, the server assigns completedBy from the authenticated user's email.
Array order is preserved as the display order on the public post-mortem page.
Sample request
curl -X PUT https://api.statusdashboard.com/app/events/4f8b2e1a-3c7d-4e9f-a0b1-c2d3e4f56789/post-mortem \
-H "Authorization: Bearer bcf847abf5c6:def456" \
-H "Content-Type: application/json" \
-d '{
"executiveSummary": "A misconfigured load balancer rule caused elevated API latency for approximately 45 minutes, affecting around 12% of requests.",
"rootCauseAnalysis": "A deploy at 09:30 UTC introduced a load balancer rule with an incorrect timeout value. This caused upstream connections to be dropped under moderate load.",
"actionItems": [
{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"text": "Add load balancer config to pre-deploy validation checks.",
"status": "done",
"owner": "Platform team",
"ownerIsPublic": true,
"expectedCompletionAt": "2026-04-30",
"completedAt": "2026-04-26"
},
{
"text": "Review timeout defaults across all gateway configurations.",
"status": "in_progress",
"owner": "Infrastructure",
"ownerIsPublic": true,
"expectedCompletionAt": "2026-05-15",
"isPublic": true
}
],
"published": true
}'Sample response
Status: 200 OK
{
"postMortem": {
"executiveSummary": "A misconfigured load balancer rule caused elevated API latency for approximately 45 minutes, affecting around 12% of requests.",
"rootCauseAnalysis": "A deploy at 09:30 UTC introduced a load balancer rule with an incorrect timeout value. This caused upstream connections to be dropped under moderate load.",
"actionItems": [
{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"text": "Add load balancer config to pre-deploy validation checks.",
"status": "done",
"owner": "Platform team",
"ownerIsPublic": true,
"expectedCompletionAt": "2026-04-30",
"completedAt": "2026-04-26",
"completedBy": "user@example.com",
"isPublic": true
},
{
"id": "c3d4e5f6-a7b8-9012-cdef-234567890123",
"text": "Review timeout defaults across all gateway configurations.",
"status": "in_progress",
"owner": "Infrastructure",
"ownerIsPublic": true,
"expectedCompletionAt": "2026-05-15",
"isPublic": true
}
],
"published": true,
"createdAt": "2026-04-25T12:00:00.000Z",
"updatedAt": "2026-04-26T14:05:00.000Z",
"updatedBy": "user@example.com"
}
}Error responses
| Status | When |
|---|---|
400 | Validation error, or event is an informational type. |
403 | Insufficient permissions. |
404 | Event not found. |

