Pingdom is one of the oldest names in uptime monitoring β the product that put "is it down, and since when?" on a public page long before status pages were table stakes, now part of SolarWinds. It is a genuinely serious tool. It is also, unambiguously, a paid tool: there is no free tier. You get a 30-day free trial, and then Synthetic Monitoring starts at $16.50/month billed annually. That's the right shape for a business watching revenue-bearing sites. It's the wrong shape for "GET my side project's /health and ping a webhook when it breaks."
This page is for the second case: one curl arms an uptime check with a webhook that fires once on down and once on recovery β Slack and Discord formats auto-detected, everything else HMAC-signed JSON β plus a public status page, README badge and Atom feed. No account anywhere in the loop. Small free capacity, honestly stated below.
Facts from their own pricing page, September 2026 (prices are JS-rendered there, so quote-checking requires a real browser β verify current numbers yourself): Synthetic Monitoring from $16.50/month billed annually β the entry tier includes 10 uptime checks, 1 advanced (transaction) check and 50 SMS alerts; the next tier is 25/4/100. Real User Monitoring is a separate product, also from $16.50/month (100k pageviews). Probes run from a network they describe as over 100 servers worldwide; alerting covers SMS, email and webhooks; plans include maintenance windows, public status pages and unlimited users.
Where that money is well spent: scripted transaction checks (log in, add to cart, check out β a real browser walking your funnel), RUM from actual visitors' browsers, multi-location probing that tells you where it's down from, SMS and voice alerting, and a support organization behind it. None of that exists here, and if those are the requirement, Pingdom or a peer is the correct answer. If what you want is a free dashboard product with many monitors, UptimeRobot's free 50-monitor tier is the obvious pick instead β we say so plainly on that page too.
curl -X POST https://mockbird.mockbird.workers.dev/api/status/monitor \
-H 'content-type: application/json' \
-d '{"url":"https://api.example.com/health","notify":"https://hooks.slack.com/services/T000/B000/XXXX"}'
We GET your URL every 30 minutes from Cloudflare's network (8s timeout, redirects followed, 2xx/3xx = up). Your URL is probed immediately, so the response doubles as a one-shot "is my site up from outside?" check β and it contains everything else you need:
{
"id": "mon-XXXX",
"secret": "β¦",
"current": { "ok": true, "http_status": 200, "ms": 87 },
"checked_every_minutes": 30,
"status_page": "https://mockbird.mockbird.workers.dev/status/mon-XXXX",
"badge_svg": "https://mockbird.mockbird.workers.dev/status/mon-XXXX/badge.svg",
"feed_atom": "https://mockbird.mockbird.workers.dev/status/mon-XXXX/feed.xml"
}
notify takes a Slack incoming webhook, a Discord webhook, or any HTTPS endpoint β the format is sniffed from the host: hooks.slack.com gets {"text": β¦}, discord.com/api/webhooks gets {"content": β¦}, and anything else gets JSON signed with your monitor's secret (x-mockbird-signature: sha256=hex(hmac-sha256(secret, body)) β verify it like a Stripe webhook). A confirmation delivery hits your webhook at create time so you know the channel works before you rely on it.
Alerting is deliberately quiet: one POST when the URL goes down, one when it recovers, debounced β two consecutive checks must agree, so a single blip never pages you. No retries, best-effort delivery, and 5 consecutive failed deliveries auto-remove the monitor (a dead webhook can't rot forever).
Public status pages are a plan feature there; here every monitor simply has one, at an unguessable URL showing the hostname only. The README badge is the piece most side projects actually wanted from an uptime product:
[](https://mockbird.mockbird.workers.dev/status/mon-XXXX)
The Atom feed of down/recovered events (feed.xml) plugs into any feed reader β alerting for people who'd rather poll than be POSTed at.
Uptime checks poll in the wrong direction for scheduled work β a green /health can't tell you the nightly backup never ran. The inverse exists here as the same one-curl pattern: POST /api/status/heartbeat gives you a secret ping URL; append && curl -fsS -m 10 <ping_url> to the cron job, and if pings stop arriving you get one service.down, one service.up on resume. Full recipes: cron-job monitoring with one curl.
| Pingdom concept | Here |
|---|---|
| Uptime check | POST /api/status/monitor {"url": β¦, "notify": β¦} β no account, response includes the current check |
| Alerting (email / SMS / webhook) | notify webhook β Slack/Discord auto-detected, else HMAC-signed JSON. No SMS, no email β webhook only, stated plainly |
| Public status page | /status/mon-XXXX β every monitor has one, unguessable URL, hostname-only; badge.svg + Atom feed alongside |
| Transaction (advanced) checks | No equivalent. We GET one URL; scripted browser flows are Pingdom's genuine win |
| Real User Monitoring | No equivalent. |
| 100+ probe locations, root-cause "down from where" | Honest: checks run from Cloudflare's edge as a single logical vantage point β no per-region verdicts |
| Maintenance windows | None β delete the monitor, recreate after (deleting frees your slot immediately) |
| API | The same URLs you created with; GET /api/status/monitor self-documents as JSON |
Facts checked September 2026 against each vendor's own pricing page β verify current numbers yourself:
| Free tier | Pick it when | |
|---|---|---|
| Pingdom | None β 30-day trial, then Synthetic from $16.50/mo annual (10 uptime + 1 transaction check, 50 SMS); RUM separately from $16.50/mo | A business site where transaction checks, RUM, multi-location probing, SMS and support are worth real money. |
| UptimeRobot | 50 monitors, 5-min checks, dashboard; webhooks and heartbeats are paid (details) | You want a free dashboard watching many sites and email alerts are enough. |
| Mockbird | URL monitors: 3 live per IP (deleting frees the slot), 30 total, 30-min checks. Heartbeats: 5 live per IP. Webhook + Slack + Discord alerts, status page/badge/feed β free, no account | You want the alert armed this minute from a terminal, CI step, script or agent β and a webhook is exactly the alert channel you wanted. |
Where Pingdom wins, plainly: transaction monitoring, RUM, SMS/voice, per-location diagnostics, maintenance windows, retention, dashboards, support, and two decades of production trust. We do: one curl, no signup, no trial expiry, one webhook down + one up, HMAC-signed payloads, public status artifacts, and cron heartbeats β at $0 where their entry point is $198/year.
# info + 24h ok-rate + recent checks Β· then stop
curl "https://mockbird.mockbird.workers.dev/api/status/monitor/mon-XXXX?secret=YOUR_SECRET"
curl -X DELETE "https://mockbird.mockbird.workers.dev/api/status/monitor/mon-XXXX?secret=YOUR_SECRET"
Both endpoints self-document on a bare GET. The complete walkthrough of the monitor feature is the uptime monitor API guide; we also run a public tracker of 50+ developer APIs at /status that you can subscribe alerts to without using a monitor slot.