Events
Get event
Retrieve a single event by ID, including its full timeline, notes, and post-mortem.
GET /app/events/{id}
Returns a single event by ID. The response includes the full timeline and notes arrays.
Path parameters
| Parameter | Description |
|---|---|
id | The event ID. |
Request
See API Basics for required headers.
Sample request
curl https://api.statusdashboard.com/app/events/4f8b2e1a-3c7d-4e9f-a0b1-c2d3e4f56789 \
-H "Authorization: Bearer bcf847abf5c6:def456"Sample response
Status: 200 OK
{
"event": {
"id": "4f8b2e1a-3c7d-4e9f-a0b1-c2d3e4f56789",
"eventType": "incident",
"title": "API latency elevated",
"status": { "label": "Monitoring", "isFinal": 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 affecting a subset of users.",
"coordinator": {
"name": "Jane Smith",
"title": "Support Engineer",
"email": "jane@example.com",
"phone": "+1 555 000 0000"
},
"startTime": "2026-04-25T09:45:00.000Z",
"publish": true,
"notifications": true,
"attributes": [
{ "key": "jira_ticket", "value": "INC-4821", "isPublic": true },
{ "key": "internal_ref", "value": "oncall-thread-9912", "isPublic": false }
],
"timeline": [
{
"statusId": "7a3f9d2e-1b4c-4e8a-90b2-c3d4e5f67890",
"timestamp": "2026-04-25T09:45:00.000Z",
"status": { "label": "Investigating", "description": "We are looking into the issue.", "color": "#D97706", "icon": "search" },
"message": "We are aware of elevated API response times and are investigating.",
"author": "user@example.com",
"isEdited": false
},
{
"statusId": "9d1a4f7b-2c5e-4f8b-a1c3-d4e5f6789012",
"timestamp": "2026-04-25T10:30:00.000Z",
"status": { "label": "Monitoring", "description": "A fix has been deployed; watching for recurrence.", "color": "#3b82f6", "icon": "activity" },
"message": "A fix has been deployed. We are monitoring the system for stability.",
"author": "user@example.com",
"isEdited": false
}
],
"notes": [
{
"noteId": "2e8c5b9a-4d7f-4a0b-b2d4-e5f6789abcde",
"timestamp": "2026-04-25T10:15:00.000Z",
"note": "Escalated to database team at 10:15 UTC.",
"author": "user@example.com",
"isEdited": false
}
],
"postMortem": {
"executiveSummary": "<p>Elevated API latency affected a subset of users for approximately 45 minutes due to a misconfigured rate-limit rule deployed at 09:30 UTC.</p>",
"rootCauseAnalysis": "<p>A configuration change to the API gateway rate-limiter introduced an overly aggressive limit on a high-traffic route. The change was not caught in staging because the load profile differed from production.</p>",
"actionItems": [
{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"text": "Add production-parity load tests to the staging pipeline.",
"status": "done",
"owner": "Platform team",
"ownerIsPublic": true,
"expectedCompletionAt": "2026-04-30",
"completedAt": "2026-04-26",
"completedBy": "user@example.com",
"isPublic": true
},
{
"id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
"text": "Implement automated rollback for rate-limiter configuration changes.",
"status": "in_progress",
"owner": "Infrastructure",
"ownerIsPublic": true,
"expectedCompletionAt": "2026-05-15",
"isPublic": true
}
],
"published": true,
"createdAt": "2026-04-25T11:00:00.000Z",
"updatedAt": "2026-04-25T11:00:00.000Z",
"updatedBy": "user@example.com"
},
"createdAt": "2026-04-25T09:58:00.000Z",
"createdBy": "user@example.com",
"updatedAt": "2026-04-25T10:30:00.000Z",
"updatedBy": "user@example.com"
},
"limits": {
"attributes": 5,
"notesPerEvent": 50,
"timelineEntriesPerEvent": 50,
"componentsPerEvent": 100
}
}Response fields
Response envelope
| Field | Type | Description |
|---|---|---|
event | object | Full event record. See fields below. |
limits | object | Per-event limit caps for this organization (notes, timeline entries, components, attributes). |
limits.attributes | number | Max custom attributes per event (public + private). |
limits.notesPerEvent | number | Max internal notes per event. |
limits.timelineEntriesPerEvent | number | Max timeline entries per event. |
limits.componentsPerEvent | number | Max affected components per event. |
Event object
| Field | Type | Description |
|---|---|---|
id | string | Unique event ID. |
eventType | string | "incident", "maintenance", or "informational". |
title | string | Brief event title. |
status | object | null | Current event status. null for informational events. |
status.label | string | Status label from the workflow phases. |
status.isFinal | boolean | Whether this is a final (terminal) workflow phase. |
status.isScheduled | boolean | Present and true only on maintenance events in the scheduled phase. Absent on incidents and on maintenance once it has moved past the scheduled phase. |
severity | object | null | Full severity snapshot. null for informational events or if no components are selected. |
severity.label | string | Severity label (e.g. "Degraded Performance"). |
severity.description | string | Human-readable description of the severity level. |
severity.icon | string | Icon identifier for the severity. |
severity.color | string | Hex color code for the severity. |
affectedComponents | object | Map of componentId → component snapshot. Empty object when no components are associated. |
affectedComponents[id].name | string | Component name at the time the event was created or last updated. |
affectedComponents[id].status | object | absent | Severity snapshot for this component. Contains label, description, icon, and color. Present on incidents and maintenance; absent on informational notices (name-only snapshot). |
description | string | Event description. Rich text field. See Rich text fields. Max 5,000 characters. |
impactAnalysis | string | undefined | Incident and maintenance only. Optional customer and service impact details. Rich text field. See Rich text fields. Max 5,000 characters. Present when set; omitted when unset. |
coordinator | object | null | Optional point of contact. Contains name, title, email, phone, and extraInfo fields — all optional strings. null when not set. |
startTime | string | null | ISO 8601 UTC start time. Present on incidents (required) and maintenance (scheduled window start). null for informational. |
endTime | string | null | ISO 8601 UTC end time. Auto-set on incidents when a final-phase timeline entry is posted. Set at creation for maintenance (scheduled window end). null until set. |
maintenanceAutomation | object | undefined | Maintenance only. Automatic start/stop settings when configured. See create event — maintenanceAutomation. Absent when not set. |
maintenanceAutomation.enabled | boolean | Whether automatic start/stop is active. |
maintenanceAutomation.advanceNotification | object | undefined | Advance notice settings when configured. |
maintenanceAutomation.startMessage | string | undefined | Custom auto-start timeline message when set. |
maintenanceAutomation.stopMessage | string | undefined | Custom auto-stop timeline message when set. |
automationState | object | undefined | Maintenance only. Read-only record of completed automatic actions. Absent until at least one action has run. |
automationState.advanceNotifiedAt | string | undefined | ISO 8601 UTC when the advance notification was sent. |
automationState.autoStartedAt | string | undefined | ISO 8601 UTC when automatic start ran. |
automationState.autoCompletedAt | string | undefined | ISO 8601 UTC when automatic stop ran. |
publish | boolean | Whether the event is visible on status dashboards. |
notifications | boolean | Whether matching subscribers are notified when this event changes. Default: true on create. See Event notifications. |
segmentNotification | object | undefined | Per-event segment include/exclude targeting when configured. See Segment targeting. |
segmentNotification.enabled | boolean | Whether segment targeting is active. |
segmentNotification.mode | string | "include" or "exclude". |
segmentNotification.segmentIds | string[] | Segment UUIDs stored on the event. |
attributes | array | undefined | Custom key/value metadata when configured. Each entry includes key, value, and isPublic. See Attributes. |
timeline | array | Chronological array of timeline entries. Empty array for informational events. |
timeline[].message | string | Status message. Rich text field. See Rich text fields. Max 5,000 characters. |
timeline[].status | object | Full workflow phase snapshot. Contains label, description, color, and icon. |
notes | array | Internal notes (admin-only, not published). |
createdAt | string | ISO 8601 UTC creation timestamp. |
createdBy | string | Email of the user who created the event. |
updatedAt | string | ISO 8601 UTC last-updated timestamp. |
updatedBy | string | absent | Email of the last user to update the event. Absent until the event is updated after creation (PUT, timeline, notes, etc.). |
resolvedAt | string | null | ISO 8601 UTC timestamp when the event first entered a final workflow phase (for example when you posted Resolved). Set once at that moment (typically request time); not updated if you later backdate the final timeline entry. Cleared on reopen. Distinct from endTime, which is the interval end used for uptime and day history. null until resolved. |
postMortem | object | absent | Post-mortem report. Present on incident and maintenance events once one has been saved; absent when none exists. Omitted entirely when the Post-Mortem Reports feature is not enabled. Always absent for informational events. |
postMortem.executiveSummary | string | Opening overview of scope, impact, and outcome. Gives readers the key facts before the detailed analysis. Rich text field. See Rich text fields. |
postMortem.rootCauseAnalysis | string | Detailed root cause analysis. Rich text field. See Rich text fields. |
postMortem.actionItems | array | Remediation tasks in display order. May be empty. |
postMortem.actionItems[].id | string | Unique action item ID (UUID). |
postMortem.actionItems[].text | string | Description of the action item. |
postMortem.actionItems[].status | string | open, in_progress, or done. |
postMortem.actionItems[].owner | string | absent | Optional owner or team name. |
postMortem.actionItems[].ownerIsPublic | boolean | When false, owner is omitted from the public post-mortem page. |
postMortem.actionItems[].expectedCompletionAt | string | absent | ISO 8601 date string (YYYY-MM-DD). Optional expected completion date. |
postMortem.actionItems[].completedAt | string | absent | ISO 8601 date string (YYYY-MM-DD). Optional actual completion date. |
postMortem.actionItems[].completedBy | string | absent | Email of the user who first set completedAt. |
postMortem.actionItems[].isPublic | boolean | When false, the item is omitted from the public post-mortem page. |
postMortem.published | boolean | Whether the post-mortem is visible on status dashboards. |
postMortem.createdAt | string | ISO 8601 UTC timestamp when the post-mortem was first saved. |
postMortem.updatedAt | string | ISO 8601 UTC timestamp of the last save. |
postMortem.updatedBy | string | absent | Email of the last user to save the post-mortem. |
Error responses
| Status | When |
|---|---|
403 | Insufficient permissions. |
404 | Event not found. |

