SCHEDULED monitor, it returns a checkinUrl in the response — your job hits that URL at the end of each run, and Overwatch records the heartbeat. If Overwatch stops hearing from your job within the expected window, it marks the monitor as havent_heard. If your job calls the endpoint with ?status=fail, Overwatch immediately marks it as down.
The checkin endpoint does not require an
Authorization header. It is designed to be called directly from cron scripts, CI pipelines, and serverless functions without managing credentials.Record a checkin
GET and POST behave identically. Use whichever is easiest to call from your environment. The checkinUrl returned when you create a SCHEDULED monitor is a GET-compatible URL you can paste directly into a cron job or pipeline step.
Path parameters
The monitor ID. This is the UUID returned in the
data.id field when you created the monitor, and is also embedded in the checkinUrl.Query parameters
Optional. Defaults to
ok. Pass fail to record a failed run and immediately mark the monitor as down.Response
"ok" when the checkin was recorded as successful, "failure" when ?status=fail was passed.The monitor ID that received the checkin.
Examples
Successful checkin
Failed checkin
Cron job (shell)
Add to your crontab to ping after the job completes. Use|| to send a failure signal if the job exits non-zero.
Python
Node.js
Getting your checkin URL
When you create aSCHEDULED monitor, the API response includes a checkinUrl field:
https://overwatchapp.dev/api/v1/monitors/{id}/checkin.