Skip to main content
PATCH
/
v1
/
incidents
/
{incidentId}
Update incident status
curl --request PATCH \
  --url https://api.example.com/v1/incidents/{incidentId} \
  --header 'Content-Type: application/json' \
  --data '
{
  "status": "<string>"
}
'

Overview

Updates the status of an existing incident. Use this endpoint to manually move an incident through its lifecycle — for example, to mark it as resolved after remediation is complete. Required role: admin, owner, or operator

Path parameters

incidentId
string
required
The unique identifier of the incident to update. Example: inc_01HX9VTPQR3KF8MZWBYD5N6JCE.

Request body

status
string
required
The new status for the incident. One of: open, triaging, investigating, awaiting_approval, remediating, resolved, closed.

Incident lifecycle

Incidents move through the following statuses:
open → triaging → investigating → awaiting_approval → remediating → resolved → closed
You can also move directly to resolved or closed from any status to manually close an incident.

Response

Returns 200 OK with the updated incident object.
{
  "incidentId": "inc_01HX9VTPQR3KF8MZWBYD5N6JCE",
  "title": "Database latency spike on prod-db-01",
  "severity": "critical",
  "status": "resolved",
  "source": "automated",
  "assignedAgents": ["database-specialist", "performance-analyzer"],
  "rootCause": "Unindexed query introduced in deploy d9f3a21 causing full table scans on the orders table.",
  "recommendedActions": [
    "Add composite index on (tenant_id, created_at) for the orders table."
  ],
  "createdAt": "2024-04-01T10:23:45Z",
  "updatedAt": "2024-04-01T11:05:30Z"
}
Returns 404 Not Found if no incident exists with the given ID.

Examples

curl https://api.causeflow.ai/v1/incidents/inc_01HX9VTPQR3KF8MZWBYD5N6JCE \
  -X PATCH \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"status": "resolved"}'