API Documentation

Authentication

All API endpoints (except ping) require authentication via:

Ping Endpoints (Public, No Auth)

GET|POST /ping/:slug — Report success. Returns OK.
GET|POST /ping/:slug/fail — Report failure. Triggers alert.
GET|POST /ping/:slug/start — Mark job start (for duration tracking).

Query: ?duration=1234 (ms)

curl -fsS https://canterforge.com/cronsafe/ping/YOUR_SLUG

Monitors API

GET /api/monitors — List all monitors
POST /api/monitors — Create monitor
{"name":"Nightly Backup","expected_interval":86400,"grace_seconds":300,"alert_email":"[email protected]","alert_webhook":"slack:https://hooks.slack.com/..."}
GET /api/monitors/:id — Monitor detail + pings + alerts
PUT /api/monitors/:id — Update (partial OK)
DELETE /api/monitors/:id — Delete monitor + all data

Status Badge

![CronSafe](https://canterforge.com/cronsafe/badge/YOUR_SLUG)

Webhook Formats