checkrd

Alerts

Create and manage alert rules for agent behavior monitoring.

Alerts

Alert rules monitor agent telemetry and notify you when thresholds are exceeded. Alerts can trigger on error rates, latency, denied request rates, or volume drops.

The Alert Object

json
{
  "id": "01916d00-aaaa-bbbb-cccc-dddddddddddd",
  "agent_id": "01916a3e-7b2c-...",
  "condition_type": "error_rate",
  "threshold": 0.05,
  "window_minutes": 15,
  "channel": "email",
  "channel_target": "oncall@company.com",
  "cooldown_minutes": 60,
  "notification_count": 3,
  "is_enabled": true,
  "last_triggered_at": "2026-04-12T03:15:00Z",
  "created_at": "2026-04-10T14:30:00Z"
}
FieldTypeDescription
condition_typestringerror_rate, latency_p99, denied_rate, or volume_drop.
thresholdnumberThreshold value (must be > 0).
window_minutesintegerEvaluation window (default 15).
channelstringemail or webhook.
channel_targetstringEmail address or webhook URL.
cooldown_minutesintegerMinimum time between notifications (default 60).

Create an Alert

POST /v1/alerts

Auth: JWT (member+)

ParameterTypeRequiredDescription
agent_idUUIDYesAgent to monitor.
condition_typestringYesOne of error_rate, latency_p99, denied_rate, volume_drop.
thresholdnumberYesThreshold value (> 0).
window_minutesintegerNoEvaluation window in minutes (default 15).
channelstringYesemail or webhook.
channel_targetstringYesNotification destination.
cooldown_minutesintegerNoCooldown between alerts (default 60).
bash
curl -X POST https://api.checkrd.io/v1/alerts \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "agent_id": "01916a3e-7b2c-...",
    "condition_type": "error_rate",
    "threshold": 0.05,
    "channel": "email",
    "channel_target": "oncall@company.com"
  }'

Response 200 OK -- Returns the alert object.


List Alerts

GET /v1/alerts

Auth: JWT (viewer+)

Supports limit and cursor pagination. Returns alerts with their associated agent names.


Update an Alert

PUT /v1/alerts/:alert_id

Auth: JWT (member+)

All fields are optional. Only the fields you pass are updated; omitted fields keep their current values. Returns the updated alert object.


Delete an Alert

DELETE /v1/alerts/:alert_id

Auth: JWT (admin+)

Returns { "success": true }.


Toggle an Alert

POST /v1/alerts/:alert_id/toggle

Auth: JWT (member+)

ParameterTypeRequiredDescription
is_enabledbooleanYesEnable or disable the alert.
bash
curl -X POST https://api.checkrd.io/v1/alerts/01916d00-.../toggle \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"is_enabled": false}'

Response 200 OK: returns the updated alert object.


Mute an Alert

POST /v1/alerts/:alert_id/mute

Auth: JWT (member+)

Suppresses notifications for a fixed window. The alert keeps evaluating but won't send email or webhook events until the mute expires.

ParameterTypeRequiredDescription
untilRFC 3339YesWhen the mute expires.
reasonstringNoFree-text note for the audit log.

Response 200 OK: returns the updated alert with muted_until populated.


Unmute an Alert

POST /v1/alerts/:alert_id/unmute

Auth: JWT (member+)

Clears the muted_until field immediately. Notifications resume on the next state transition.

Response 200 OK: returns the updated alert.


List Alert History

GET /v1/alerts/:alert_id/history

Auth: JWT (viewer+)

Returns the state-transition history for one alert: each firing / resolved transition with timestamps and the metric value that caused the change.

ParameterTypeRequiredDescription
limitintegerNoResults per page (default 50, max 200).
cursorstringNoOpaque pagination cursor.

Response 200 OK: paginated list of state transitions.


List Sent Notifications

GET /v1/alerts/:alert_id/notifications

Auth: JWT (viewer+)

Returns the notifications dispatched for this alert: each email or webhook delivery attempt, status (delivered / failed / retrying), and the recipient.

ParameterTypeRequiredDescription
limitintegerNoResults per page (default 50, max 200).
cursorstringNoOpaque pagination cursor.

Response 200 OK: paginated list of dispatch records.