All systems operational

Never miss a failed
cron job again

Add one line to your cron job. Get alerted instantly when it stops running. Dead-simple monitoring for scheduled tasks, background jobs, and data pipelines.

crontab
# Add this to the end of any cron job:
*/5 * * * * /path/to/job.sh && curl -fsS https://cronping.cortexcove.com/ping/abc123
99.9%Uptime SLA
<50msPing Latency
30sCheck Interval
5Free Monitors

Three steps. That's it.

No agents to install. No complex configuration. Just a simple HTTP ping.

1

Create a monitor

Give it a name and set the expected schedule. CronPing generates a unique ping URL for your job.

2

Add a ping to your job

Append a curl call to your cron job. Every successful run sends us a ping.

3

Get alerted when it stops

If a ping doesn't arrive on time, we alert you via email, Slack, or webhook. Instant recovery notifications too.

Built for reliability

Everything you need, nothing you don't.

Sub-second ping processing

Pings are recorded in Redis first, then persisted async. Your cron job won't wait.

🔔

Multi-channel alerts

Email, Slack, and generic webhooks. Get alerted wherever you work.

🕐

Configurable grace periods

Jobs don't always run exactly on time. Set grace periods to avoid false alarms.

📈

Ping history & stats

See when your jobs ran, how often they fail, and track uptime over time.

🔒

Secure by default

Unique random tokens per monitor. No secrets exposed in your crontab.

🔌

Full REST API

Manage monitors programmatically. Build your own dashboard or integrate with CI/CD.

Integrate in seconds

One line of code. Any language.

cURL / Shell

# At the end of your cron job: curl -fsS --retry 3 https://cronping.cortexcove.com/ping/abc123def456 # Or pipe job output to the ping: /path/to/backup.sh 2>&1 | curl -fsS -X POST -d @- https://cronping.cortexcove.com/ping/abc123def456

Python

import requests # Call at the end of your script requests.get("https://cronping.cortexcove.com/ping/abc123def456", timeout=10)

Node.js

// Call at the end of your job await fetch("https://cronping.cortexcove.com/ping/abc123def456");

Go

// Call at the end of your job http.Get("https://cronping.cortexcove.com/ping/abc123def456")

wget

wget -q -O /dev/null https://cronping.cortexcove.com/ping/abc123def456

Simple, transparent pricing

Start free. Upgrade when you need more. No surprise overages.

Free

$0 /mo
  • 5 monitors
  • Email alerts
  • 30 days ping history
  • 30-second check interval
Get Started
MOST POPULAR

Pro

$9 /mo
  • 200 monitors
  • Email + Slack + Webhook alerts
  • 90 days ping history
  • Full API access
  • Priority support
Start Free Trial

Business

$29 /mo
  • Unlimited monitors
  • All alert channels
  • 1 year ping history
  • Team access (coming soon)
  • Dedicated support
Start Free Trial

All plans include unlimited pings. No credit card required for the free tier.
Compare: Cronitor starts at $200/mo for similar features.

Frequently asked questions

What happens if my cron job fails?
When your cron job fails and doesn't send a ping, CronPing waits for the expected schedule plus the grace period you configured. If no ping arrives within that window, we immediately alert you via all your configured channels (email, Slack, webhook). When the job starts working again and sends a ping, we send a recovery notification.
How fast are the alerts?
Our checker runs every 30 seconds. Once a monitor is detected as overdue, alerts are sent within seconds. For most scenarios, you'll know about a failed job within a minute of it being expected.
Does the ping call slow down my cron job?
The ping endpoint is designed for minimal latency. We write to Redis and return "OK" immediately -- typically under 10ms. The curl call at the end of your job adds negligible time. Use curl -fsS --retry 3 for reliability without blocking.
Can I monitor jobs that run every minute?
Yes. The minimum expected schedule is 30 seconds. CronPing handles high-frequency pings efficiently by processing them through Redis first, so even per-minute jobs won't cause any latency in your monitoring.
What if CronPing itself goes down?
We run on redundant infrastructure with automatic failover. Your cron jobs continue running normally -- the curl call fails silently with the -f flag. We recommend using --retry 3 to handle transient failures.
How is this different from Cronitor or Healthchecks.io?
CronPing is simpler and more affordable. Cronitor starts at $200/mo for teams; our Business plan is $29/mo with unlimited monitors. We focus on doing one thing well: monitoring cron jobs. No complex dashboards, no unnecessary features -- just reliable alerting when your jobs stop running.

Start monitoring in under 60 seconds

Free tier includes 5 monitors. No credit card required.

Create Free Account