Public docs

App API — Alerts

Create, list, update, and resolve workspace alerts.

Phase 1 shell: this docs surface is wired to the existing backend and repo documentation, and will be expanded as the private dashboard comes online.

Alert lifecycle

Alerts have two states derived from the resolved_at field:

  • resolved_at = nullActive
  • resolved_at = timestampResolved

There is no separate status column.

---

GET /alerts/list/{workspace_id}

Returns all alerts for the workspace, newest first.

Response: { "success": true, "alerts": [...] }

---

GET /alerts/active/{workspace_id}

Returns only Active alerts (resolved_at IS NULL).

Response: { "success": true, "alerts": [...] }

---

GET /alerts/{alert_id}

Returns a single alert by ID.

Response: { "success": true, "alert": { ... } }

---

POST /alerts/create

Create a new alert manually.

Request body

{
  "workspace_id":       1,
  "severity":           "high" | "medium" | "low",
  "summary":            "Alert summary text",
  "partners":           ["Partner A", "Partner B"],
  "action":             "Recommended action (optional)",
  "created_by_user_id": 1,
  "source":             "manual" | "ai_ingested" | "api",
  "alert_type":         "breaking_change" | "auth" | "billing" | etc. (optional)",
  "metadata":           {}
}

---

PUT /alerts/{alert_id}/status

Set alert to Active or Resolved.

{ "status": "active" }
{ "status": "resolved" }

Setting to active clears resolved_at. Setting to resolved sets resolved_at = NOW().

---

PUT /alerts/{alert_id}/severity

Update severity on an active alert.

{ "severity": "high" | "medium" | "low" }

Only works on active alerts (resolved_at IS NULL).

---

PUT /alerts/{alert_id}/resolve

Resolve an alert (sets resolved_at to current timestamp). No request body needed.

Create an alert
curl -X POST https://api.opsentry.ai/alerts/create \
-H "Content-Type: application/json" \
-d '{
"workspace_id": 1,
"severity": "high",
"summary": "OAuth scope auth:legacy deprecated — partners must migrate",
"partners": ["Northstar Bank", "Apex Solutions"],
"action": "Contact affected partners before June 30",
"created_by_user_id": 1,
"source": "manual",
"alert_type": "breaking_change",
"metadata": {}
}'