Comparison

Keel vs Healthchecks.io

These two tools look similar — small, flat-priced, webhook-friendly — but they watch for opposite failure modes. Keel polls your URLs and complains when they go down; Healthchecks.io waits for your jobs to ping it and complains when they go quiet. This page is for people deciding which failure mode is theirs.

The comparison

Healthchecks.io's figures below are from their pricing page and their self-hosting docs as of October 2026. Keel's are from ours. Both will drift; the shape of the difference won't.

What you getKeelHealthchecks.io
What it watches URLs, from outside. Keel fetches each monitor on a schedule and compares the status code. Silence. Your cron jobs, backups, and scheduled tasks ping a URL when they run; a check alerts if the ping doesn't arrive in time.
Free tier 3 monitors, 5-minute checks, webhook alerts, 30-day history. 20 checks, 100 log entries per job, email alerts.
Paid pricing £5/month flat — 50 monitors, 60-second checks. No seats, no add-ons, no usage tiers. Business $20/month — 100 checks, 1,000 log entries per job, 50 SMS/WhatsApp and 20 phone-call credits. Business Plus $80/month — 1,000 checks, larger credit packs. Annual billing is 20% off. There is also a Supporter plan at $5/month with the same limits as free, for backing the project.
Incident threshold Two consecutive failures open an incident; one blip is ignored on purpose. The first passing check closes it and fires up. A configurable schedule and grace time: each check expects a ping on its cron or interval, and alerts after the grace period expires without one.
What a check can do HTTP and HEAD, against a status code you choose. Redirects are not followed — a 3xx counts as down unless you set it as the expected code. Simple, cron, and OnCalendar schedules; grace time per check; success/failure/start signals; keyword filtering on ping bodies; run-time measurement; log attachment per ping.
Alerting Webhooks only — down, up, or both, to any HTTPS endpoint, on every plan including Free. Payloads are plain JSON, so Slack, Discord, and curl work without adapters. Failed deliveries retry once. Email, webhooks, and a long list of integrations — Slack, PagerDuty, Telegram, Discord, and more (their comparison post lists these on the free plan; SMS, WhatsApp, and phone calls are the paid-plan credits).
Status pages Not offered. Not offered — status badges per check, but no hosted status pages.
Open source / self-hosting Closed, hosted only. Yes — BSD 3-clause licensed; self-host the whole thing on Python 3.12+, Django, and PostgreSQL or MySQL.
History 30 days of every check — status, status code, latency, error text. 100 log entries per job on free, 1,000 on paid plans; older pings are pruned as new ones arrive.

When Keel is the better fit

When the thing being watched is a URL, not a schedule.

You're watching websites, not jobs

Keel polls each URL on its own schedule — every 5 minutes free, every 60 seconds on Pro — and opens an incident after two consecutive failures. Nothing has to call home; a website that's down gets caught because Keel went and looked.

50 things watched for £5/month flat

Keel's Pro plan covers 50 monitors at 60-second checks for £5/month. Healthchecks.io's Business plan is $20/month for 100 checks — a fair price for cron monitoring with SMS credits, but a different job and a different number.

Hosted, and stays that way

Healthchecks.io being open source is a genuine advantage — if you want your monitoring self-hosted, take it. But self-hosting also means the monitor's downtime is your downtime. Keel is closed and hosted; the thing watching your sites isn't another service you run.

Every check kept for 30 days

Keel keeps 30 days of every check — status, status code, latency, error text. Healthchecks.io keeps the most recent 100 pings per job on free (1,000 paid), which for a 5-minute job covers hours, not weeks. For arguing about what happened last Tuesday, more rows win.

When Healthchecks.io is the better fit

For anything with a timer in it — and their free tier is bigger.

You monitor cron jobs and backups

A backup that silently stops running never returns a bad status code — it just goes quiet. Healthchecks.io is purpose-built for that: cron expressions, grace time, start/success/failure signals, per-ping logs. Keel has no equivalent; a URL poller can't see a job that never runs.

You need more free checks

Healthchecks.io's free plan is 20 checks against Keel's 3 monitors. On quantity for nothing, they win outright, and no framing changes that arithmetic.

You want SMS and phone-call alerts

Paid Healthchecks.io plans include monthly SMS, WhatsApp, and phone-call credits — a real escalation path without writing a receiver. Keel's webhook is the entire alerting surface by design.

You want the source, or your own instance

BSD 3-clause, self-hostable on your own Postgres, data never leaving your network — for some workplaces that's the whole decision. Keel is closed and hosted only.

Pick the small one on purpose. Or both.

If your jobs need a dead-man's switch, use Healthchecks.io — it's the right tool and a generous free tier. If your URLs need polling and a webhook when they break, that's Keel: £5/month and about a minute of setup. Plenty of stacks sensibly run both.

The webhook payload and public API are documented at keelmonitor.com/docs; the two-line price list lives at keelmonitor.com/#pricing.