Events
Re-open incident
Re-open a resolved incident, clearing its resolved state and adding a new timeline entry.
POST /app/events/{id}/reopen
Re-opens a resolved incident. Atomically clears the resolved state, removes the end time, updates the current status to the specified non-final workflow phase, and appends a new timeline entry. Returns the full updated event object.
This endpoint is only valid for incident events that are currently resolved (
resolvedAt is set). Use the Create timeline entry endpoint to post status updates during an active incident. Once resolved, non-final timeline updates are rejected — you must use this re-open endpoint instead.Path parameters
| Parameter | Description |
|---|---|
id | The event ID. |
Request
See API Basics for required headers.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
statusLabel | string | Yes | A non-final workflow phase label for the incident workflow. |
message | string | Yes | The message explaining why the incident is being re-opened. Max 5,000 characters. |
Sample request
curl -X POST https://api.statusdashboard.com/app/events/4f8b2e1a-3c7d-4e9f-a0b1-c2d3e4f56789/reopen \
-H "Authorization: Bearer bcf847abf5c6:def456" \
-H "Content-Type: application/json" \
-d '{
"statusLabel": "Investigating",
"message": "The issue has recurred. We are re-investigating."
}'Sample response
Status: 200 OK
{
"event": {
"id": "4f8b2e1a-3c7d-4e9f-a0b1-c2d3e4f56789",
"eventType": "incident",
"title": "API latency elevated",
"status": { "label": "Investigating", "isFinal": false, "isScheduled": false },
"severity": { "label": "Degraded Performance", "description": "Some functionality is impaired.", "icon": "alert-triangle", "color": "#f59e0b" },
"affectedComponents": {
"6b0d3a8c-5e2f-4b7d-9c1e-f23456789abc": {
"name": "API Gateway",
"status": { "label": "Degraded Performance", "description": "Some functionality is impaired.", "icon": "alert-triangle", "color": "#f59e0b" }
}
},
"description": "We are investigating elevated API response times.",
"startTime": "2026-04-25T09:45:00.000Z",
"endTime": null,
"resolvedAt": null,
"publish": true,
"notifications": true,
"timeline": [
{
"statusId": "7a3f9d2e-1b4c-4e8a-90b2-c3d4e5f67890",
"timestamp": "2026-04-25T11:20:00.000Z",
"status": { "label": "Resolved", "description": "Issue is resolved.", "color": "#22c55e", "icon": "check-circle" },
"message": "The incident has been resolved.",
"author": "alice@example.com",
"isEdited": false
},
{
"statusId": "9d1a4f7b-2c5e-4f8b-a1c3-d4e5f6789012",
"timestamp": "2026-04-25T12:05:00.000Z",
"status": { "label": "Investigating", "description": "We are looking into the issue.", "color": "#D97706", "icon": "search" },
"message": "The issue has recurred. We are re-investigating.",
"author": "alice@example.com",
"isEdited": false
}
],
"createdAt": "2026-04-25T09:45:00.000Z",
"updatedAt": "2026-04-25T12:05:00.000Z"
}
}Error responses
| Status | When |
|---|---|
400 | Validation error — missing fields, invalid statusLabel, statusLabel maps to a final phase, event is not an incident, or event is not currently resolved. |
403 | Insufficient permissions, or too many incidents are currently open for this organization. |
404 | Event not found. |

