REST API
WatchCron provides a full REST API for managing checks programmatically. All API requests require a Bearer token (API key), which you can generate in your dashboard under API Keys.
Authentication
curl -H "Authorization: Bearer YOUR_API_KEY" \ https://watchcron.com/api/v1/checks
Endpoints
| Method | Endpoint | Description |
|---|---|---|
GET | /api/v1/checks | List all checks in the current project |
POST | /api/v1/checks | Create a new check |
GET | /api/v1/checks/{uuid} | Get check details and current status |
PUT | /api/v1/checks/{uuid} | Update check configuration |
DELETE | /api/v1/checks/{uuid} | Delete a check and all its ping data |
POST | /api/v1/checks/{uuid}/pause | Pause monitoring |
GET | /api/v1/checks/{uuid}/pings | List recent pings (paginated) |
GET | /api/v1/checks/{uuid}/flips | List status changes (up/down events) |
GET | /api/v1/channels | List notification channels |
Create a check
POST /api/v1/checks
curl -X POST https://watchcron.com/api/v1/checks \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "Nightly Backup", "schedule_type": "cron", "cron_expression": "0 2 * * *", "timezone": "UTC", "grace_seconds": 600 }'
Example response
JSON response
{
"uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"name": "Nightly Backup",
"status": "new",
"schedule_type": "cron",
"cron_expression": "0 2 * * *",
"timezone": "UTC",
"grace_seconds": 600,
"ping_url": "https://watchcron.com/ping/a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"last_ping_at": null,
"next_expected_at": null,
"created_at": "2026-03-22T10:00:00Z"
}
List pings with filtering
GET /api/v1/checks/{uuid}/pings
curl -H "Authorization: Bearer YOUR_API_KEY" \ "https://watchcron.com/api/v1/checks/YOUR-UUID/pings?per_page=50"