Simple ping-based monitoring with instant alerts.
Add one line to your crontab. We'll tell you when it stops.
# Before
0 * * * * /usr/bin/backup.sh
# After — just add the curl
0 * * * * /usr/bin/backup.sh && curl -fsS https://api.croncheck.dev/api/ping/my-backup?key=ck_xxx
Name it, set the expected interval, and get a unique ping URL.
Append a curl to your cron job, script, or CI pipeline. One line.
If a ping doesn't arrive on time, we notify you via email, Slack, Discord, or webhook.
HTTP GET or POST. Include duration, exit code, and messages. Works from anywhere.
Expect a ping every N minutes. Configurable grace period. Alert on silence.
Email, Slack, Discord, and custom webhooks. Escalation with backoff — no alert storms.
See all your monitors at a glance. Ping history, uptime, duration tracking.
Full REST API. Manage monitors, keys, and channels programmatically.
Runs on Cloudflare's global network. Sub-50ms ping ingestion worldwide.
croncheck ping my-backup — use it in scripts, pipelines, or your terminal.
Missed → Down → exponential backoff. Recovery alerts when things come back.
*/5 * * * * /path/to/job.sh && curl -fsS https://api.croncheck.dev/api/ping/my-job?key=ck_xxx
#!/bin/bash
start=$(date +%s%N)
/usr/bin/backup.sh
duration=$(( ($(date +%s%N) - start) / 1000000 ))
curl -fsS -X POST https://api.croncheck.dev/api/ping/backup \
-H "X-Api-Key: ck_xxx" \
-d "{\"duration_ms\": $duration, \"exit_code\": $?}"
$ croncheck ping my-backup
✓ Pinged my-backup (status: up)
$ croncheck status
NAME STATUS LAST PING INTERVAL
db-backup ✓ up 2m ago 1h
email-queue ✓ up 30s ago 5m
ssl-renewal ✗ down 3h ago 24h
- name: Notify CronCheck
if: always()
run: |
curl -fsS -X POST https://api.croncheck.dev/api/ping/deploy \
-H "X-Api-Key: ${{ secrets.CRONCHECK_KEY }}" \
-d '{"exit_code": ${{ job.status == 'success' && 0 || 1 }}}'
Start free. Upgrade when you need more.
Set up monitoring in 30 seconds. Free forever for small projects.
Start Monitoring — Free