Free for up to 5 monitors

Know when your
cron jobs fail

Simple ping-based monitoring with instant alerts.
Add one line to your crontab. We'll tell you when it stops.

crontab -e
# 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
db-backup 2m ago
email-queue 30s ago
ssl-renewal 3h overdue
analytics-etl 12m ago
log-rotation 1h ago

Three steps. That's it.

1

Create a monitor

Name it, set the expected interval, and get a unique ping URL.

2

Add the ping

Append a curl to your cron job, script, or CI pipeline. One line.

3

Get alerted

If a ping doesn't arrive on time, we notify you via email, Slack, Discord, or webhook.

Built for developers

🏓

Ping monitoring

HTTP GET or POST. Include duration, exit code, and messages. Works from anywhere.

Heartbeat mode

Expect a ping every N minutes. Configurable grace period. Alert on silence.

🔔

Multi-channel alerts

Email, Slack, Discord, and custom webhooks. Escalation with backoff — no alert storms.

📊

Dashboard

See all your monitors at a glance. Ping history, uptime, duration tracking.

🔑

API-first

Full REST API. Manage monitors, keys, and channels programmatically.

Edge-powered

Runs on Cloudflare's global network. Sub-50ms ping ingestion worldwide.

🖥️

CLI tool

croncheck ping my-backup — use it in scripts, pipelines, or your terminal.

🛡️

Smart escalation

Missed → Down → exponential backoff. Recovery alerts when things come back.

Works everywhere

Crontab

*/5 * * * * /path/to/job.sh && curl -fsS https://api.croncheck.dev/api/ping/my-job?key=ck_xxx

Shell script

#!/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\": $?}"

CLI

$ 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

GitHub Actions

- 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 }}}'

Simple pricing

Start free. Upgrade when you need more.

Free

$0/mo
  • 5 monitors
  • 1 alert channel
  • 7 day history
  • Email alerts
  • 1 minute checks
Get Started

Team

$29/mo
  • 200 monitors
  • 50 alert channels
  • 1 year history
  • Team members
  • Priority support
  • API access
Contact Us

Stop finding out your cron jobs broke
from angry users.

Set up monitoring in 30 seconds. Free forever for small projects.

Start Monitoring — Free