Know the moment your site
or cron job goes quiet.

Free uptime monitoring with 1-minute checks, TCP port checks, cron-job heartbeats, domain & TLS-certificate expiry watch, public status pages and instant alerts to email, Discord, Slack, Microsoft Teams, Google Chat, ntfy or Telegram phone push or any webhook. No credit card. No 5-minute-check paywall.

Start monitoring β€” free   See a live demo   Read the API docs   How it compares

⚑ 1-minute HTTP checks

Most free tiers check every 5 minutes. Watchpup polls your endpoints every 60 seconds, follows redirects, verifies the status you expect (even a 401), asserts a keyword is present β€” or absent, to catch error pages β€” checks JSON health endpoints field-by-field (data.status must equal ok), and records response times, with optional 🐒 slow alerts when your site is up but degraded. Endpoints behind auth work too: custom request headers (Authorization, API keys), any HTTP method and request bodies.

πŸ”Œ TCP port checks

Not everything speaks HTTP. Monitor Postgres, Redis, SSH, SMTP-alternative ports, game servers β€” anything with a port. Watchpup opens a real TCP connection every minute, tracks connect latency, and alerts when it stops answering β€” every 60 seconds, not every five minutes.

πŸ’“ Cron heartbeats

Give any scheduled job a ping URL β€” or a ping email address, for backup tools, RAID controllers, and cron MAILTO that can only send mail. If your backup, ETL, or agent loop misses its schedule, you hear about it β€” the dead-man's-switch pattern, built in.

πŸ”’ TLS certificate expiry

Watchpup shakes hands with your servers daily and reads the certificate straight off the wire β€” HTTPS, SMTPS, IMAPS, any TLS port β€” then alerts before it expires (14 days out by default, your call). Catches the classic "someone forgot to renew the cert" outage, and self-signed or internal-CA certs work too since we don't need the chain to validate.

🧭 DNS record monitoring

Your site can be up while your DNS quietly rots. Watch any name β€” subdomains, even _dmarc.example.com β€” and get alerted when it stops resolving (NXDOMAIN, SERVFAIL), a record type disappears, or an A/CNAME/MX/TXT record stops matching the value you expect. Catches botched migrations, dropped SPF records and hijacked CNAMEs before your users do.

🌐 Domain expiry watch

Point Watchpup at your domains and it checks the public registry (RDAP) daily, then alerts you 30 days (your call) before a registration lapses β€” the outage that takes whole companies offline and that ping checks can't see coming. Free, on the same alert channels.

πŸ“„ Status pages & badges

One click turns your monitors into a clean public status page β€” live (it updates in viewers’ browsers the moment something changes) β€” with response-time charts, a 90-day uptime history bar, automatic 30-day incident history, a JSON API, a subscribable Atom incident feed and visitor email subscriptions (double opt-in β€œnotify me when it’s down/back up”, plus scheduled-maintenance heads-up emails β€” the things status-page vendors charge for) β€” with your own logo and accent color, free β€” or password-protect a page for internal and client-only audiences. Plus an embeddable live status pill for your own website (one script tag) and an SVG uptime badge for every monitor, ready to embed in your README.

πŸ€– API-first

Everything β€” signup, monitors, alerts β€” works over a simple JSON API with an OpenAPI spec. Humans get a dashboard; scripts and AI agents get curl (and a /llms.txt quickstart), MCP clients like Claude and Cursor get a native MCP server, terminals get a one-curl-install CLI. Prometheus users get a /api/metrics endpoint to graph uptime in Grafana β€” with a read-only API key that's safe to leave in scrape configs and CI β€” and every public status page has a keyless /metrics scrape too. Your data stays yours: CSV export per monitor β€” and switching in is one call: import your monitors from UptimeRobot or Healthchecks.io with a read-only API key.

πŸ‘₯ Team members

Uptime is a team sport β€” invite up to 10 teammates, each with their own login and password, to co-manage monitors, status pages and alert channels. No password sharing, revocable in one click, and the account owner keeps credentials and billing-grade controls to themselves. Seats are where most tools reach for your wallet; here they're free.

πŸ”§ Maintenance windows

Schedule a deploy or migration and Watchpup goes quiet on purpose: checks pause, no false alerts, and the downtime never counts against your uptime.

πŸ” Down reminders

One 3am alert is easy to sleep through. Turn on reminders and Watchpup keeps nudging every alert channel β€” β€œstill down, 45m and counting” β€” at the interval you choose, until the service recovers. Off by default, so quiet stays quiet.

🎯 SLA error budgets

Set a monthly uptime target β€” say 99.9% β€” and Watchpup turns it into an error budget: how many minutes of downtime you can still afford this month, burned down live on the monitor page and in the API and Prometheus metrics, with automatic alerts when 75% and 100% of the budget is gone. The SRE workflow, without the spreadsheet.

Start in 20 seconds, even from a terminal

> curl -X POST https://watchpup.watchpup.workers.dev/api/signup \
    -d '{"email":"you@example.com","password":"…"}'
{ "api_key": "wp_…" }

> curl -X POST https://watchpup.watchpup.workers.dev/api/monitors -H "Authorization: Bearer wp_…" \
    -d '{"kind":"http","name":"my site","url":"https://example.com"}'

Prefer a CLI? curl -fsSL https://watchpup.watchpup.workers.dev/cli -o ~/.local/bin/watchpup && chmod +x ~/.local/bin/watchpup β€” then watchpup signup you@example.com.

Free while in beta: 15 monitors per account, 60-second minimum interval, 8 alert channels, unlimited status pages.