Public docs
App API — Alerts
Create, list, update, and resolve workspace alerts.
Alert lifecycle
Alerts have two states derived from the resolved_at field:
resolved_at = null→ Activeresolved_at = timestamp→ Resolved
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.
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": {} }'