Know when the job didn't run.
Cron jobs, backups and queue workers usually fail without a sound. CronPup gives each job a ping URL. If the ping is late, or the job reports a failure, you get an email, a push notification or a Slack/Discord message. It also watches your TLS certificates and warns you before they expire.
Start free with 10 monitors Read the 2-minute setup
No credit card required. The free plan stays free.
2FASigned webhooksNo trackersExport or delete your data anytimeSecurity details
# crontab: back up nightly, and tell CronPup how it went
0 3 * * * /usr/local/bin/backup.sh && curl -fsS -m 10 https://cronpup.com/p/your-uuid
# or report the exit code, so failures alert you right away
0 3 * * * /usr/local/bin/backup.sh; curl -fsS -m 10 https://cronpup.com/p/your-uuid/$?
Create a monitor
Tell CronPup how often the job runs: "every hour", or the same cron line it already uses.
Add one line to the job
Request the ping URL when it finishes, or wrap the command with cronpup-run.
Get told when it goes quiet
A late or failed run sends a push, an email or a Slack message, and a recovery note when it's fixed.
What it looks like
Real screens with sample data.
Late detection
Give a fixed period ("every 15 minutes") or a real cron expression with a timezone. A grace period absorbs normal jitter.
Run tracking
Ping /start when the job begins and CronPup records how long it ran.
It alerts you if the job hangs past the grace period.
Certificate expiry
Add a hostname. We check its TLS certificate every 6 hours and warn you days before it lapses, including when auto-renewal quietly broke.
Alerts where you look
Email, phone push (via the free ntfy app) and webhooks on every plan. Webhooks work with Slack and Discord incoming webhooks as-is.
Failure output
POST the tail of your job's output with the ping. It shows up in the monitor's history next to the alert.
Public status page
Choose which monitors to show on a shareable page, so your team or customers can check whether last night's jobs ran. Names and statuses only.
Integrations
PagerDuty incidents that open and resolve themselves, a Prometheus /metrics endpoint, a JSON API for provisioning scripts, and README badges.
Plain pricing
A flat monthly price per plan, with no per-user fees and no per-check fees. See plans.
Why this exists
A backup that stopped running in March is usually found in June, when someone needs it. Uptime checkers don't catch this, because nothing is "down": the job just never ran. Heartbeat monitoring flips the check around. The job reports in, and silence is the alarm.