StatusDashboard
Events

Create event

Create a new incident, maintenance window, or informational event.

View Markdown

POST /app/events

Creates a new event. The required fields vary by event type.

To prefill playbook fields from a saved blueprint, see Using a template — apply client-side before calling this endpoint.


Request

See API Basics for required headers.

Common fields (all event types)

FieldTypeRequiredDescription
eventTypestringYes"incident", "maintenance", or "informational". Cannot be changed after creation.
titlestringYesBrief event title. Max 250 characters.
descriptionstringYesEvent description. Rich text field. See Rich text fields. Max 5,000 characters.
publishbooleanNoWhether to publish immediately. Default: false.
notificationsbooleanNoWhether matching subscribers are notified when this event changes. Default: true. Independent of publish — see Event notifications.
segmentNotificationobjectNoPer-event segment include/exclude targeting. Requires the segments feature. See segmentNotification fields below.
attributesarrayNoCustom key/value metadata. See attributes fields below.
coordinatorobjectNoOptional point of contact. See coordinator fields below.

segmentNotification fields

Requires the organization segments feature. When omitted, segment targeting is disabled.

FieldTypeDescription
enabledbooleanWhether segment targeting is active for this event.
modestring"include" or "exclude".
segmentIdsstring[]UUIDs of org segments. Required (≥1) when enabled is true and mode is "include". All IDs must exist.

See Segment targeting for behavior details.

attributes fields

Optional custom metadata on the event. Max count per limits.attributes organization limit.

FieldTypeDescription
keystring1–32 characters. Must start with a letter; may contain letters, numbers, underscores, and hyphens. Unique per event.
valuestring1–256 characters.
isPublicbooleantrue — shown on the status dashboard and in subscriber notifications. false — visible only in the event editor.

See Attributes for visibility behavior.

Incident-specific fields

FieldTypeRequiredDescription
startTimestringNoISO 8601 UTC datetime of when the incident began. Cannot be in the future. Defaults to the time of creation when omitted.
statusLabelstringYesInitial status phase from the incident workflow.
affectedComponentsobjectYesMap of componentId → severityLabel. At least 1 entry required. Event severity is derived server-side from the highest-order label in this map.
initialTimelineMessagestringYesFirst timeline entry message. Rich text field. See Rich text fields. Max 5,000 characters. The first entry's timestamp is set to startTime, or the time of creation if startTime is omitted.
impactAnalysisstringNoOptional customer and service impact details. Rich text field. See Rich text fields. Max 5,000 characters.

Maintenance-specific fields

FieldTypeRequiredDescription
startTimestringYesISO 8601 UTC datetime. Scheduled start time; must be before endTime.
endTimestringYesISO 8601 UTC datetime. Scheduled end time; must be after startTime.
statusLabelstringYesInitial status phase from the maintenance workflow.
affectedComponentsobjectYesMap of componentId → severityLabel. At least 1 entry required, max 50. Event severity is derived server-side from the highest-order label in this map.
initialTimelineMessagestringYesFirst timeline entry message. Rich text field. See Rich text fields. Max 5,000 characters.
maintenanceAutomationobjectNoAutomatic start/stop at startTime and endTime. Default: disabled. See maintenanceAutomation fields and Maintenance — Automatic start & stop.
impactAnalysisstringNoOptional customer and service impact details. Rich text field. See Rich text fields. Max 5,000 characters.

maintenanceAutomation fields

Maintenance only. When omitted, automation is disabled.

FieldTypeDescription
enabledbooleanWhen true, the event automatically moves to the next active workflow phase at startTime and to the final phase at endTime.
advanceNotificationobjectOptional advance subscriber notice before start. Ignored when enabled is false.
advanceNotification.enabledbooleanWhen true, send one advance notification at startTime − lead.
advanceNotification.valueintegerLead amount. 1–9999.
advanceNotification.unitstring"minutes", "hours", or "days". Default lead when advance is enabled: 24 hours.
startMessagestringTimeline message for auto-start. Rich text. Max 5,000 characters. Default: "Maintenance has started as scheduled."
stopMessagestringTimeline message for auto-stop. Rich text. Max 5,000 characters. Default: "Maintenance has completed as scheduled."

Transitions are evaluated at minute precision (seconds on startTime / endTime are stored but do not delay the trigger minute). Subscriber notifications follow the event's notifications setting. See Maintenance — When transitions run.

Informational-specific fields

Informational events support an optional affectedComponents field for subscriber notification routing. The statusLabel, initialTimelineMessage, and impactAnalysis fields are not applicable and will return a 400 if passed. Do not pass a top-level severity field — severity is derived only for incidents and maintenance from affectedComponents.

FieldTypeRequiredDescription
affectedComponentsobjectNoMap of componentId → "". Up to 50 entries. Component IDs must exist. Severity labels are not applicable — pass an empty string or omit the value. Component status is not changed by this field.

Coordinator fields

All fields are optional. The coordinator object is omitted from the response when not set.

FieldTypeMax lengthDescription
namestring100Person's full name.
titlestring100Job title or role.
emailstring254Rendered as a mailto: link on the status dashboard.
phonestring50Rendered as a tel: link on the status dashboard.
extraInfostring500Free-form context, e.g. on-call hours.

Sample request — incident

curl -X POST https://api.statusdashboard.com/app/events \
  -H "Authorization: Bearer bcf847abf5c6:def456" \
  -H "Content-Type: application/json" \
  -d '{
    "eventType": "incident",
    "title": "API latency elevated",
    "startTime": "2026-04-25T09:45:00.000Z",
    "statusLabel": "Investigating",
    "affectedComponents": { "6b0d3a8c-5e2f-4b7d-9c1e-f23456789abc": "Degraded Performance" },
    "description": "We are investigating elevated API response times affecting a subset of users.",
    "initialTimelineMessage": "We are aware of elevated API response times and are investigating the root cause.",
    "publish": true
  }'

Sample request — maintenance

curl -X POST https://api.statusdashboard.com/app/events \
  -H "Authorization: Bearer bcf847abf5c6:def456" \
  -H "Content-Type: application/json" \
  -d '{
    "eventType": "maintenance",
    "title": "Database migration — 2026-05-01",
    "statusLabel": "Scheduled",
    "affectedComponents": { "8c1e4b7f-3a6d-4c9e-b2f1-a34567890bcd": "Degraded Performance" },
    "description": "Scheduled database maintenance. Brief downtime expected.",
    "startTime": "2026-05-01T02:00:00.000Z",
    "endTime": "2026-05-01T04:00:00.000Z",
    "initialTimelineMessage": "Maintenance is scheduled for 2026-05-01 02:00–04:00 UTC.",
    "publish": true,
    "notifications": true,
    "maintenanceAutomation": {
      "enabled": true,
      "advanceNotification": {
        "enabled": true,
        "value": 24,
        "unit": "hours"
      }
    }
  }'
When notifications is true, a successful create may enqueue subscriber notifications asynchronously. Delivery is non-fatal — the API response succeeds even if notification delivery is delayed. See Event notifications.

Sample response

Status: 201 Created

{
  "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 affecting a subset of users.",
    "startTime": "2026-04-25T09:45:00.000Z",
    "publish": true,
    "notifications": true,
    "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 the root cause.",
        "author": "user@example.com",
        "isEdited": false
      }
    ],
    "notes": [],
    "createdAt": "2026-04-25T10:00:00.000Z",
    "createdBy": "user@example.com",
    "updatedAt": "2026-04-25T10:00:00.000Z"
  }
}
Note that the first timeline entry's timestamp matches the incident's startTime. These two values are always in sync at creation.

Error responses

StatusWhen
400Validation error — missing required field, invalid severity label, invalid workflow phase, invalid component IDs, maintenanceAutomation or impactAnalysis on a non-incident/maintenance event, advance-notification lead exceeds time until start, or (for maintenance with a future startTime) statusLabel is not the scheduled/planned phase.
403Insufficient permissions.

On this page

We use cookies

We use essential cookies to keep the site working, and optional analytics cookies to understand how it's used. Read our Privacy Policy.