Your job hits a unique URL on every run. When a ping is late, the alert is already in your Telegram. No agents, no credit card to start.
First check in 60 seconds Documentation
10 checks free forever Β· 14-day Pro trial, no card required
# crontab -e */5 * * * * backup.sh && \ curl -fsS https://ping.cronalive.com/<uuid> # a ping is late β π΄ backup.sh is DOWN β Telegram Β· email Β· Slack Β· SMS Β· PagerDuty
| Check | Status | Period | Last ping | 7 days | Uptime |
|---|---|---|---|---|---|
| nightly-backupprod | up | every 24 h | 3 h ago | 100% | |
| send-invoicesbilling | up | every 5 min | 41 s ago | 99.98% | |
| etl-syncdata | up | hourly | 12 min ago | 99.9% | |
| wp-cronsite | late | every 15 min | 19 min ago | 99.4% | |
| certbot-renewinfra | up | every 12 h | 5 h ago | 100% | |
| db-replicationprod | down | every minute | 27 min ago | 97.2% |
Statuses stream in over WebSocket, no refresh needed. "db-replication" has already paged Telegram β with the reason and the last ping time.
A simple period ("every 5 minutes"), a cron expression or a systemd OnCalendar β with a timezone and a grace period.
curl in crontab, a Laravel scheduler macro, a Python decorator or a CLI wrapper β a check can even be created by its first ping.
Telegram-first: DMs and groups. Plus email, HMAC-signed webhooks, Slack, Discord, SMS and PagerDuty β with quiet hours and repeat reminders.
/start, /fail, exit codes 0β255 β run duration and hung jobs are visible on a chart.
Status codes, keyword checks, redirects, basic auth. An outage is confirmed by a second probe from another region.
A warning 7/14/30 days before the certificate expires β before your customers notice.
Live dashboard over WebSocket, 30/90/365-day uptime, ping log with body, IP and user-agent.
REST API v1 with rw/ro keys, Laravel/Python/Node packages, auto-provisioning straight from code.
SVG status of a check or a whole tag β for READMEs, wikis and status pages.
Every channel gets event and tag filters, quiet hours, reminders and a delivery journal. Need your own format? Webhooks with body templates.
A 3 a.m. pg_dump is the classic silent failure: the script dies, and you find out on restore day. Ping as the last line of the backup script, and a missed copy wakes you β not your customers.
wp-cron only runs when traffic comes, and it dies quietly along with it. Move it to a real system cron with a ping, and WordPress scheduling stops being a black box.
The nightly import "ran" β but hung halfway? The /start signal plus a success ping put every run's duration on a chart, so a stall shows up before the reports break.
A live worker process doesn't mean jobs are being processed. A heartbeat from inside the worker alerts when the queue goes quiet for too long β whatever the cause.
Certificate renewal breaks silently and expires loudly. A ping after certbot renew plus an SSL alert 14 days before expiry β two independent lines of defense against the "expired" padlock.
$7 / 490 β½ per month
$67.20 / 4704 β½ per year
β $5.60 / 392 β½ per month
100 checks Β· interval from 1 min Β· 1 year of history Β· API, HMAC, SMS Β· 1M pings/mo
$19 / 1490 β½ per month
$182.40 / 14304 β½ per year
β $15.20 / 1192 β½ per month
500 checks Β· interval from 30 sec Β· 2 years of history Β· white-label badges, priority support Β· 10M pings/mo
Paddle checkout worldwide, YooKassa for Russian cards. Yearly billing saves 20%.
Three things. Flat-rate pricing: a fixed monthly fee instead of pay-as-you-go, so the invoice never surprises you. Telegram-first alerts: DMs and group chats, linked with a single tap β no SMTP lag. And we take Russian cards (YooKassa) alongside international ones (Paddle).
Pings are never dropped β breaking a heartbeat defeats the purpose. You'll get an email suggesting an upgrade. Only after exceeding the quota more than 3x for two months in a row (and a 7-day heads-up) do we suspend creating new checks β existing ones keep being monitored and keep alerting.
Anytime β the plan stays active until the end of the paid period, then the account drops to Free. Checks over the Free limit get paused, not deleted. You can export your data as JSON and delete the account yourself.
Yes. Ping bodies and HTTP check headers can carry sensitive data, so they are encrypted at the application level and purged when your planβs retention expires. Everything travels over HTTPS only.
Delivery resilience: dashboard snippets include a fallback out of the box (curl url1 || curl url2), and SDKs fetch the current domain list from the API. Losing one domain loses neither pings nor your sleep.
Yes. systemd: ExecStopPost with $EXIT_STATUS and OnCalendar schedules. Laravel: a composer package with a scheduler macro. Kubernetes CronJob: curl as the last command of the container. Plus Python and Node packages.
Yes: project members with owner, admin and readonly roles. Invite a colleague by email from the project settings β the link is valid for 7 days, and if they have no account yet, the invitation applies right after sign-up. Pro includes up to 5 members, Business has no member limit; plan limits apply to the ownerβs account, not per member.
REST API v1: check CRUD, ping and event history, integration and pause management. Read-write and read-only project keys are issued in the project settings; a 600 req/min rate limit, an OpenAPI spec and static docs.
Grace is the allowance after the deadline: cron rarely fires to the second, and without it any drift would page you for nothing. At the deadline the check turns "late", and only after grace does the "down" alert fire. An explicit fail signal alerts immediately, no waiting.
A monitoring service must be more available than what it monitors. The ping ingestion tier deploys and fails independently of the dashboard, and there are multiple ping domains. During a global outage on our side false down alerts are suppressed, and statuses are reconciled once we recover.