Cron jobs · backups · GitHub Actions · reports
Know when your events stop firing
Register expected events, POST a heartbeat when they succeed, and get email, Slack, Discord, Telegram, or a GitHub Issue if a window is missed — before users notice. Optional JSON becomes last values and charts.
No credit card · 3 free monitors · First alert in minutes
# After your job succeeds
curl -fsS -X POST https://gonewatch.com/api/heartbeat/YOUR_TOKEN \
-H "Content-Type: application/json" \
-d '{"duration_ms":184320,"bytes":2147483648,"tables":42}'No agent. No SDK. Optional JSON for charts.
Fits the stack you already have
Alerts
- Slack
- Discord
- Telegram
- GitHub IssuesTicket
- LinearTicket
Jobs
- GitHub
- cURL
- Node.js
- Python
See it in action
A missed heartbeat becomes an overdue window, then a Down alert — before your users notice anything broke.
What happens when a job slips
Production DB backup
Daily at 8:00 PM · Eastern
Last heartbeat · 2 minutes ago
Up → Overdue → Down → Alert
Your dashboard at a glance
Monitors
Track heartbeats from cron jobs, backups, and pipelines.
- Down
Production DB backup
No pings yet·Daily at 8:00 PM · Eastern
- Overdue
Weekly revenue report
45 minutes ago·Mon at 9:00 AM · Eastern
- Up
Stripe subscription sync
3 minutes ago·Every 15 minutes
- Up
Search index rebuild
6 hours ago·Daily at 3:00 AM · UTC
Questions before you sign up? Read the FAQ
New · payload charts
Send a number. See a chart.
The same POST can include JSON — duration, size, row counts, or your own keys. Gonewatch keeps top-level scalars and turns them into last values, sparklines, and expandable history. Nested objects and logs are dropped. The ping still counts.
- duration_ms formats as time · 184320 → 3m 4s
- bytes formats as size · 2147483648 → 2 GB
- Empty body still counts. JSON is optional.
nightly-backup
Last payload · optional JSON on the same POST
- duration_ms
- 3m 4s
- bytes
- 2 GB
- tables
- 42
duration_ms
3m 4s
bytes
2 GB
Simple heartbeats
POST when your job finishes. One URL per monitor — no agent required.
Fixed time of day or rolling interval
Daily at 8 PM, weekly on Monday, or every N minutes — plus a grace window after each expected window.
Email, Slack, Discord, Telegram, GitHub
Chat alerts on Down and recovery on every plan. GitHub Issues and Linear tickets open on Down and close on recovery — Basic and Pro.
Optional JSON charts
Send scalars with the ping. Last values and sparklines on every plan — not log storage.
How it works
From zero to your first alert in minutes.
- 1Create a monitor — fixed time of day or rolling interval
- 2Copy the heartbeat URL into your script, cron, or GitHub Action
- 3POST when the event completes — optional JSON for charts
- 4Get email, Slack, Discord, Telegram — or a GitHub Issue — if the heartbeat stops arriving
Pricing
Free tier with 3 monitors, email, Slack, Discord, and Telegram. Basic and Pro for GitHub Issues, Linear, more capacity, or longer history.
Learn more →Docs
Heartbeat API, chat alerts, GitHub Issues, optional JSON payloads, and limits — written for the person pasting a curl.
Learn more →Guides
How to watch a cron job, a nightly backup, or a scheduled GitHub Action.
Learn more →Roadmap
GitHub Issues and Linear tickets are in. Public status pages are next. Share feedback anytime.
Learn more →Questions before you sign up
The objections that usually come up before the first monitor.
Do I need a credit card to start?
No. The Free plan includes monitors, email alerts, and status history with no credit card required. Upgrade from your dashboard when you need more capacity.
How do heartbeats work?
After your job succeeds, POST to your monitor's unique URL. Gonewatch records the ping and expects the next one on your schedule — at a fixed time of day or on a rolling interval — with a grace window after each expected window. No agent or SDK is required — a curl in your script is enough.
Can I send data with a heartbeat?
Yes. Include JSON with a heartbeat — duration, counts, or other fields — and Gonewatch stores top-level scalars. You'll see last values, charts, and expandable history on the monitor. Nested objects, arrays, and oversized payloads are dropped; the ping still counts. See the payload docs for limits.
How fast will I be alerted?
Within a few minutes after your grace period ends without a heartbeat — typically under three minutes. Gonewatch checks monitors continuously, marks the monitor Down at that threshold, and sends your alert email. You are not waiting on your job's next scheduled run to find out.
What if my job runs late but still succeeds?
As long as a heartbeat arrives before the grace window ends after the expected time or interval, the monitor stays healthy. Tune grace period to match how late your jobs can run without being a problem.
Billing and plan details live on the pricing FAQ.
Stop finding out from users
Silent cron failures are expensive. Gonewatch tells you when expected work didn't happen.
Get started freeNo credit card · 3 free monitors · Cancel anytime