Free plan — no credit card required

Know your jobs actually worked.

Cronaman alerts you when cron jobs go silent, run late, or produce the wrong output. One HTTP request. No agents. No SDKs.

simple ping
# Run your task
python backup.py

# Tell Cronaman it ran
curl -sS \
  https://api.cronaman.dev/ping/abc123
payload pingPro
# Run your task
python backup.py

# Tell Cronaman what it did
curl -X POST https://api.cronaman.dev/ping/abc123
  -d '{"records": 1500}'

Set up in 30 seconds

No agents to install. No SDKs. Just HTTP.

1

Create a monitor

Name it and set the expected check interval — hourly, daily, or a custom cron expression.

2

Ping it from your cron job

Add one curl command to the end of your script. That's it. Any language works.

3

Get alerted instantly

Receive an email (or Slack, Discord, Telegram, webhook on Pro) if the job goes silent or fails.

Everything you need to sleep soundly

Lightweight, reliable monitoring built for developers.

Simple integration

Any language, any scheduler — just one HTTP request at the end of your script.

Status dashboard

See all your monitors at a glance — healthy, late, or down.

Instant alerts

Email when a job goes silent or fails. Slack, Discord, Telegram, and webhooks on Pro.

Flexible scheduling

Fixed intervals or cron expressions. We adapt to your schedule.

Grace periods

Avoid false alarms for slow jobs. Set a grace window before we alert.

Ping history & event log

Full audit trail of every ping — timestamp, status, duration, and JSON payload. Paginated and filterable.

New — Semantic Ping Payloads

Other tools tell you your job ran. Cronaman tells you it worked.

A cron job can exit with code 0 and process zero records. That's a silent failure — and it's invisible to every timing-based monitor. Semantic payloads fix that.

Without semantic payloads

backup.sh
python backup.py   # exits 0 ✓
curl /ping/abc123 # "healthy" ✓
  • Job processed 0 records — Cronaman shows "healthy"
  • No alert fires. Silent failure goes undetected.
  • You find out when a customer complains.

With semantic payloads

Pro
backup.sh
python backup.py   # exits 0 ✓
curl -X POST /ping/abc123 \
  -d '{"records": 0}'
  • Assertion records > 0 fails → alert fires instantly
  • Ping history shows amber "Assert fail" row with details
  • You fix it before anyone notices.

POST a payload

Replace your GET ping with a POST and include a JSON body — any key/value pairs your job produces.

Define assertions

Set rules like "records_processed > 0" in the monitor settings. Supports gt, gte, lt, lte, eq.

Get alerted on failure

If any rule fails, Cronaman fires an alert instantly — even though the job exited with code 0.

Simple, transparent pricing

Start free. Upgrade when you need more.

Free
$0/month
  • 3 monitors
  • 1-hour minimum frequency
  • Email alerts
  • Last 100 pings per monitor
  • 1 public status page
  • Dashboard & ping event log
Get started free
ProRecommended
$15/month
  • Unlimited monitors
  • 1-minute check frequency
  • Email, Slack, Discord, Telegram & Webhook alerts
  • Last 1,000 pings per monitor
  • Unlimited public status pages
  • Semantic ping payloads & assertions
  • Priority support
Start with Pro

Never miss a failed job again

Join developers who rely on Cronaman to keep their scheduled tasks on track. Free forever for up to 3 monitors.

Start monitoring free