start, success and fail signals
fail marks the heartbeat Down and alerts at once, without waiting for the interval to run out. start resets the countdown.
Find out when a nightly backup, an export or a script did not run. After each run the job pings its own PingZen URL; if no ping comes within the interval and the grace period, you get an alert in Telegram, email or Slack.
No agent and no SDK: one HTTPS request at the end of the job is enough.
Give it a name, the interval the job runs at and a grace period. PingZen gives it a unique ping URL.
A curl call at the end of the script or in crontab. Signals tell success from failure.
Telegram, email, Slack, Discord, Teams, Mattermost, webhooks or web push — the same channels as for websites.
# crontab: backup at 3:00, then success — or fail if it broke
0 3 * * * /opt/backup.sh && curl -fsS -X POST https://pingzen.dev/api/v1/ping/PING_KEY/db-backup/success || curl -fsS -X POST https://pingzen.dev/api/v1/ping/PING_KEY/db-backup/fail
# or just a ping, GET or POST
curl -fsS --retry 3 https://pingzen.dev/api/v1/ping/PING_KEY/db-backupAlerts in Telegram →fail marks the heartbeat Down and alerts at once, without waiting for the interval to run out. start resets the countdown.
The heartbeat turns Down as soon as the interval and the grace period have passed since the last ping. The next ping brings it back up.
A new heartbeat waits for its first ping and does not alert while it is pending.
Interval from 1 minute to 30 days, grace period up to 24 hours. A hint shows up when the interval does not match the job's real rhythm.
Only an outbound HTTPS request from the job's machine: no open ports, no static IP, no private checker.
90 days of pings; JSON up to 10 KB and the run time (duration_ms) can ride along with a ping. Heartbeats can be created through the REST API and MCP.
A free account, no card. Create a heartbeat, add one curl line, connect Telegram.