IncidentContext data model
Everything the incident detail view shows, in one read.
Fields
| Field | Type | Required | Description |
|---|---|---|---|
generatedAt | string (date-time) | No | |
incident | object | No | |
incident.id | string (uuid) | No | |
incident.title | string | No | |
incident.description | string or null | No | |
incident.state | string | No | One of: ongoing, acknowledged, resolved. |
incident.rawStatus | string | No | Stored status, for example INVESTIGATING or RESOLVED. |
incident.startedAt | string (date-time) | No | |
incident.detectedAt | string (date-time) | No | |
incident.acknowledgedAt | string (date-time) or null (date-time) | No | |
incident.acknowledgedBy | object or null | No | |
incident.acknowledgedBy.id | string | No | |
incident.acknowledgedBy.name | string | No | |
incident.resolvedAt | string (date-time) or null (date-time) | No | |
incident.durationMs | integer | No | |
incident.autoResolve | boolean | No | |
incident.rootCause | string or null | No | |
incident.resolution | string or null | No | |
incident.monitorId | string (uuid) or null (uuid) | No | |
incident.serverId | string (uuid) or null (uuid) | No | |
incident.visualTargetId | string (uuid) or null (uuid) | No | |
incident.metadata | any | No | Stored incident metadata (any JSON). |
incident.severity | string | No | critical, high, medium, low or info. |
incident.incidentKind | string or null | No | |
incident.reported | boolean | No | A person reported the incident. |
incident.reportedBy | object or null | No | |
incident.reportedBy.id | string | No | |
incident.reportedBy.name | string | No | |
owner | string | No | One of: uptime, ssl, performance, domain, content, visual, security, server, other. |
checkType | string | No | One of: other_address, uptime, ssl, domain, performance, content, visual, security, server, manual. |
cause | string | No | One of: other_address, http_error, checker_blocked, checker_rate_limited, timeout, dns, refused, down, certificate_expired, certificate_self_signed, certificate_mismatch, certificate_problem, ssl_expiring, ssl_expired, slow, performance, domain_expired, visual_change, content_failed, security, server, manual. |
headline | string | No | |
shortCause | string or null | No | |
summary | object | No | |
summary.what | string | No | |
summary.where | string or null | No | |
summary.next | string or null | No | |
steps | array of string | No | |
fixActions | array of object | No | Suggested fixes. Empty unless your role is Owner, Admin or Developer. |
fixActions[].kind | string | Yes | One of: ssl_check, settings_link, bot_page, server_link, mute. |
fixActions[].enabled | boolean | No | ssl_check only. |
fixActions[].section | string | No | settings_link only: monitor settings section id. |
fixActions[].serverId | string | No | server_link only. |
fixActions[].label | string | No | |
whatWeChecked | array of object | No | |
whatWeChecked[].label | string | No | |
whatWeChecked[].value | string | No | |
whatWeChecked[].at | string (date-time) | No | Optional time to show after value. |
settingsSection | string or null | No | One of: general, uptime, ssl, domain, visual, content, performance, dns, alerts, reports, server, danger, null. |
monitor | object or null | No | Null for server incidents and when the monitor was deleted. |
monitor.id | string (uuid) | No | |
monitor.name | string | No | |
monitor.url | string | No | |
monitor.enabled | boolean | No | |
monitor.checkInterval | integer | No | |
monitor.timeout | integer | No | |
monitor.alertThreshold | integer | No | |
monitor.maxResponseTime | integer | No | |
monitor.locations | array of string | No | |
monitor.sslCheck | boolean | No | |
monitor.sslAlertDays | array of integer | No | |
monitor.domainExpiryEnabled | boolean | No | |
monitor.domainAlertDays | array of integer | No | |
monitor.notificationRepeatInterval | integer | No | Minutes until a reminder, then one a day; 0 sends no reminders. |
monitor.alertsMutedUntil | string (date-time) or null (date-time) | No | End of an active mute; null when alerts are live. |
monitor.alertsMuteExempt | boolean | No | True when a mute never holds back this incident's alerts (possible malware). |
monitor.linkedChannels | array of object | No | |
monitor.linkedChannels[].id | string (uuid) | No | |
monitor.linkedChannels[].name | string | No | |
monitor.linkedChannels[].type | string | No | |
monitor.linkedChannels[].enabled | boolean | No | |
server | object or null | No | |
server.id | string (uuid) | No | |
server.name | string | No | |
server.status | string | No | |
server.cpuUsage | number or null | No | |
server.memoryUsage | number or null | No | |
server.diskUsage | number or null | No | |
server.cpuCores | integer or null | No | |
server.loadAverage | array of number or null | No | |
server.loadWarnRatio | number or null | No | |
server.loadCritRatio | number or null | No | |
server.agentLastSeen | string (date-time) or null (date-time) | No | |
regions | array of object | No | |
regions[].region | string | No | |
regions[].label | string | No | |
regions[].failing | boolean | No | |
regions[].latest | object or null | No | |
regions[].latest.at | string (date-time) | No | |
regions[].latest.ok | boolean | No | |
regions[].latest.regionalOnly | boolean | No | |
regions[].latest.result | string | No | |
regions[].latest.statusCode | integer or null | No | |
checkLog | object | No | Checks from 15 minutes before the start to the resolution (or now). When the window holds more than 50 checks, the newest 50 and oldest 10 are returned and omitted counts the rest. |
checkLog.windowStart | string (date-time) | No | |
checkLog.windowEnd | string (date-time) | No | |
checkLog.rows | array of object | No | |
checkLog.rows[].id | string | No | |
checkLog.rows[].at | string (date-time) | No | |
checkLog.rows[].region | string | No | |
checkLog.rows[].regionLabel | string | No | |
checkLog.rows[].ok | boolean | No | |
checkLog.rows[].regionalOnly | boolean | No | |
checkLog.rows[].statusCode | integer or null | No | |
checkLog.rows[].result | string | No | |
checkLog.rows[].error | string or null | No | |
checkLog.rows[].errorCode | string or null | No | |
checkLog.rows[].responseTimeMs | number or null | No | |
checkLog.omitted | integer | No | |
certificate | object or null | No | |
certificate.validFrom | string (date-time) | No | |
certificate.validTo | string (date-time) | No | |
certificate.daysRemaining | integer | No | |
certificate.issuer | string | No | |
certificate.subject | string | No | |
certificate.algorithm | string | No | |
certificate.keySize | integer | No | |
certificate.altNames | array of string | No | |
visualDiff | object or null | No | Before and after screenshots recorded with a visual incident. |
visualDiff.a | string | No | Baseline image path. |
visualDiff.b | string | No | Capture image path. |
visualDiff.diff | string or null | No | |
visualDiff.percent | number | No | |
visualDiff.threshold | number or null | No | |
visualDiff.screenshotId | string | No | |
visualDiff.visualTargetId | string or null | No | |
visualDiff.viewport | string or null | No | One of: DESKTOP, MOBILE, null. |
visualDiff.targetLabel | string or null | No | |
visualDiff.exact | boolean | No | One of: true. |
checksInRow | object | No | |
checksInRow.count | integer | No | |
checksInRow.atLeast | boolean | No | True when the stored log is cut short, so the real count may be higher. |
uptimeToday | object or null | No | The monitor's day so far in the tz time zone (UTC when not given or not valid). |
uptimeToday.percent | number or null | No | |
uptimeToday.downSeconds | integer | No | |
uptimeToday.since | string (date-time) | No | |
uptimeToday.slots | array of string | No | Items are one of: ok, bad, none. |
sentEvents | array of object | No | Alerts that went out, one per event. |
sentEvents[].event | string | No | One of: opened, reminder, recovered. |
sentEvents[].at | string (date-time) | No | |
sentEvents[].sent | integer | No | |
sentEvents[].failed | integer | No | |
sentEvents[].pending | integer | No | |
sentEvents[].total | integer | No | |
earlierOnMonitor | array of object | No | Up to three earlier resolved incidents of the same monitor. |
earlierOnMonitor[].id | string (uuid) | No | |
earlierOnMonitor[].title | string | No | |
earlierOnMonitor[].source | string | No | |
earlierOnMonitor[].startedAt | string (date-time) | No | |
earlierOnMonitor[].durationMs | integer | No | |
earlierOnMonitor[].checkType | string | No | |
publicPreview | object or null | No | What the first public status page showing this monitor says right now. |
publicPreview.statusPage | object | No | |
publicPreview.statusPage.id | string (uuid) | No | |
publicPreview.statusPage.name | string | No | |
publicPreview.statusPage.slug | string | No | |
publicPreview.statusPage.host | string or null | No | |
publicPreview.services | array of object | No | |
publicPreview.services[].name | string | No | |
publicPreview.services[].state | string | No | One of: ok, degraded, problem, maintenance. |
publicPreview.incident | object or null | No | |
publicPreview.incident.title | string | No | |
publicPreview.incident.status | string | No | |
publicPreview.incident.message | string or null | No | |
publicPreview.incident.at | string (date-time) | No | |
statusPages | array of object | No | |
statusPages[].id | string (uuid) | No | |
statusPages[].name | string | No | |
deliveries | array of object or null | No | Who was told, per channel, oldest first. Empty for incidents from before delivery records existed; null when the record could not be read. |
deliveries[].event | string | No | update is what a person's manual close, update or reopen sent. One of: opened, reminder, recovered, update, other. |
deliveries[].channelId | string (uuid) or null (uuid) | No | |
deliveries[].channelName | string | No | |
deliveries[].channelType | string | No | Channel type such as EMAIL or SLACK, or ALL for an outcome that applied to every channel. |
deliveries[].status | string | No | One of: sent, not_sent, pending. |
deliveries[].reason | string or null | No | Plain-language reason when not sent or still pending. |
deliveries[].at | string (date-time) | No | |
updates | array of object | No | |
updates[].id | string (uuid) | No | |
updates[].status | string | No | |
updates[].message | string | No | |
updates[].authorName | string or null | No | |
updates[].system | boolean | No | |
updates[].createdAt | string (date-time) | No | |
muteEvents | array of object | No | Alert mutes and unmutes of the monitor while the incident was open, oldest first. |
muteEvents[].at | string (date-time) | No | |
muteEvents[].kind | string | No | One of: muted, unmuted. |
muteEvents[].byName | string or null | No | |
muteEvents[].until | string (date-time) or null (date-time) | No | End of the mute, for muted. |
related | array of object | No | |
related[].id | string (uuid) | No | |
related[].title | string | No | |
related[].state | string | No | One of: ongoing, acknowledged, resolved. |
related[].startedAt | string (date-time) | No | |
related[].resolvedAt | string (date-time) or null (date-time) | No | |
cluster | object or null | No | Present only for incidents tied to a server: the monitors on that server it affects and its child incidents. Null otherwise. |
cluster.affectedMonitors | array of object | No | |
cluster.clusterRollup | object or null | No | |
cluster.separateOpenIssues | array of object | No | |
cluster.childIncidents | array of object | No | |
cluster.childIncidents[].id | string (uuid) | No | |
cluster.childIncidents[].title | string | No | |
cluster.childIncidents[].status | string | No | |
cluster.childIncidents[].severity | string | No | |
cluster.childIncidents[].monitorId | string (uuid) or null (uuid) | No | |
cluster.childIncidents[].monitor | object or null | No | |
cluster.childIncidents[].monitor.name | string | No | |
cluster.childIncidents[].monitor.url | string | No | |
cluster.childIncidents[].monitor.status | string | No | |
cluster.parentIncident | object or null | No | |
cluster.parentIncident.id | string (uuid) | No | |
cluster.parentIncident.title | string | No | |
cluster.parentIncident.status | string | No | |
viewer | object | No | |
viewer.canEdit | boolean | No | Owner, Admin or Developer. |
viewer.canPostStatusUpdate | boolean | No | Owner or Admin. |
Used by
- Get incident detail context:
GET /api/incidents/{id}/context
Generated from the OpenAPI 3.1 specification at https://docs.visualsentinel.com/openapi.json.