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/checksList all checks in the current project
POST/api/v1/checksCreate 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}/pausePause monitoring
GET/api/v1/checks/{uuid}/pingsList recent pings (paginated)
GET/api/v1/checks/{uuid}/flipsList status changes (up/down events)
GET/api/v1/channelsList 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"