Skip to main content

The Major Incident Management plugin's API

All under /api/v1/x/major/, 404 while the plugin is off (it needs Incident Management on). Reading needs major:read, changing major:write, the settings major:admin (admins). Everything about an incident goes through Incident Management's access rules: an incident you can't see is 404 here too. Guide: major incidents.

EndpointWhat
GET ?status=open|done&orgId=&serviceId=Major incidents you can see (on the service or one of its offerings, with serviceId), open first: commander, manager, next stakeholder update, escalation level, checklist progress.
GET reviews?state=open|overdue|completed&orgId=Required post-incident reviews, overdue first (state: waiting, due, overdue, completed).
GET count{ open, overdue } for the sidebar.
GET report?days=&orgId=Declared (and by priority), time to declare and to resolve, escalated, checklist on time, stakeholder updates, reviews and actions, the overdue reviews.
GET staffActive staff, to pick stakeholders from.
GET incidents/<id>{ major, review, canEdit, devTasks }: the roles, bridge, stakeholders, rhythm, checklist (who checked what, when), stakeholder updates and escalation; the review with its owner, due date, state and actions. Nulls when the incident has neither.
POST incidents/<id>/declare{ reason, managerId, commsLeadId, techLeadId, bridge }, all optional. 409 already_major. Role holders must see every affected unit (400 out_of_scope).
POST incidents/<id>/stand-down{ reason }: no longer major; the incident stays.
PATCH incidents/<id>managerId, commsLeadId, techLeadId (null removes), bridge, stakeholderIds (the whole list, any staff), updateEveryMinutes.
POST incidents/<id>/steps, PATCH …/steps/<stepId>, DELETE …/steps/<stepId>Add a step { title, role }; check it off or undo { done }, rename { title }; remove it.
POST incidents/<id>/stakeholder-updates{ body }: plain text up to 600 characters, emailed whole to the stakeholders.
PATCH incidents/<id>/reviewownerId, dueAt, completed (400 not_written until the incident's review is written).
POST incidents/<id>/review/actions, PATCH …/<actionId>, DELETE …/<actionId>Actions: { title, ownerId, dueDate }; change them or { done }.
GET incidents/<id>/dev-projects, POST incidents/<id>/review/actions/<actionId>/dev-taskWith Software Development on: the projects you can add tasks to; { projectId } makes the action a task there (tokens also need dev:write). The action is done when the task is.
GET settings/<orgId>, PATCH settings/<orgId>Admins: autoPriorities, checklist ([{ title, minutes, role }]), noCommanderMinutes, noUpdateMinutes, repeatMinutes, levels ([{ userIds, unitIds }]), stakeholderIds, updateEveryMinutes, reviewPriorities, reviewDueDays, reviewTemplate.

Every minute the plugin:

  • escalates open major incidents with no commander, or no update (a note, a customer update or a stakeholder update), for too long, one level further each repeatMinutes;
  • reminds the communications lead when a stakeholder update is due;
  • tells the owner once when a review is overdue.

It listens to incidents.declared and incidents.priority_changed (major by priority), incidents.resolved (the review becomes required) and incidents.deleted.

MCP tools

ScopeTools
major:readlist_major_incidents, get_major_incident, list_reviews, major_report
major:writedeclare_major_incident, stand_down_major_incident, update_major_incident, check_major_step, send_stakeholder_update, update_review, review_action (also makes dev tasks)
major:admin (admins)get_major_settings

Webhook events

EventWith
major.declaredauto, reason.
major.stood_down
major.role_assignedrole, person.
major.escalatedlevel, reason (no_commander or no_update), notified.
major.stakeholder_update_sentrecipients.
major.review_required, major.review_overdue
major.review_completedon_time.

Audited: declaring, standing down, completing a review, settings.