Announcements

New Feature: Heartbeat Monitoring (Pro Plan).

Written by Tomas Koprusak 301 words | 2 min read Updated Nov 13, 2025
0%

Uptime Robot can already check the status of servers/devices who have public IPs with its ping and port monitoring feature.

Yet, there are many other servers/computers/devices that are inside an intranet (but connected to the internet) and need to be monitored.

Heartbeat monitoring

It is now possible to monitor such endpoints using heartbeat monitoring.

The feature works in an opposite way compared to other monitoring types.

Uptime Robot provides a unique URL for each heartbeat monitor created and expects the monitored item to send regular requests to this URL.

Once a regular request doesn’t arrive on time, the monitor is marked as down.

Heartbeat Monitoring

Heartbeat monitoring is not only ideal for monitoring servers/computers inside an intranet but also a great fit for monitoring the health of the regular/cron jobs your website/app may be performing.

As an example, if your app runs a cron job which deletes the old logs every 10 minutes, you can update the code to send a HTTP request to the heartbeat monitor’s URL once that cron job is ran and know that the cron job may be having problems if the heartbeat monitor is down.

How to use the feature?

Heartbeat monitoring is available in the Pro Plan and it works with steps:

  • Create a new heartbeat monitor using the Add New Monitor dialog
  • Get the URL of the heartbeat monitor created in the same dialog
  • Setup a cron job (or a scheduled task in Windows) that sends an HTTP request to this heartbeat URL every x minutes (where x is the interval selected for the monitor)
  • That is it.

Alternatively, please check the docs for creating cron jobs in Unix/Linux and scheduled tasks in Windows.

P.S> The feature is in beta status and look forward to any feedback/suggestions.

Start using UptimeRobot today.

Join more than 2M+ users and companies!

  • Get 50 monitors for free - forever!
  • Monitor your website, server, SSL certificates, domains, and more.
  • Create customizable status pages.

Written by

Tomas Koprusak

Product Owner |

He has worked for Sygic as a marketer and co-led the implementation and development of a product acquired from a competitor. He has also worked as a freelance developer, helping clients from various areas. Tomas brings a wealth of industry experience to our team. He spent a few years in the blockchain industry, leading projects and marketing teams at multiple blockchain-based companies. He has presented products and managed deals in more than 10 countries around the world, managed the ICO, and built a successful marketing team at Fuergy that continues to thrive. Tomas managed a product team for the biggest job site in Slovakia, covering development and transformation to a new B2B app. Not only is Tomas skilled at web development, but he also has a deep understanding of SaaS businesses, which makes him an invaluable asset in shaping and leading various projects at UptimeRobot. His focus is always on the continual improvement of our service and user experience. In addition to his professional achievements, Tomas is a devoted father. His personal interests include cycling (he traveled around the whole country of Slovakia), playing guitar (he even played in a band), servicing bikes, music, and enjoying good beer.

Feature suggestions? Share

77 Comments

Peter Sep 11, 2019 at 2:39 pm

This sounds great!

I think it'd be nice if
1) longer intervals were allowed. 24 hours is not enough for weekly tasks, and problematic for daily tasks -- just because Monday's task finished at 04:00 doesn't mean that Tuesday's task will also finish by 04:00; it might take minutes or hours longer.
2) the heartbeat URLs included human-readable text, to make it easier to verify that a task was configured with the correct URL. Instead of "https://heartbeat.uptimerobot.com/mMonitorGUID" something like "https://heartbeat.uptimerobot.com/Initial-Monitor-Name/mMonitorGUID" would be nice.

Umut Muhaddisoglu Sep 11, 2019 at 2:39 pm

Peter,

Both are great suggestions and noted them. Thanks a lot.

Louis Sep 11, 2019 at 2:48 pm

Great addition! However, we have many cron jobs running only once a week. Would be great if the monitoring interval could be extended to that time range.

Umut Muhaddisoglu Sep 11, 2019 at 2:48 pm

Louis,

Thanks very much for this. Added a +1 besides Peter's suggestion :).

TimC Sep 11, 2019 at 3:41 pm

Great addition!

I have processes that have to run during a specific window of time, rather than at a specific interval. It would be useful to add a 'must check-in during this period:' condition. Also, a combination of this plus interval, such as 'must check-in every 4hrs between 0 and 15m past the hour'.

Thx.

T.

Glenn van Es Sep 11, 2019 at 3:59 pm

Would be nice if this could also be used for monitoring backups, if an e-mail is received and the subject is backup for XXX is successfull, make it green, otherwise red.

Erica Kane Sep 11, 2019 at 4:07 pm

Make this a +1 for longer intervals (and then a way to type them in rather than using the slider). We pay for a service to do exactly this, and they can't handle our one job that is supposed to run once every 45 days, because it isn't a cron expression. If you avoid that limitation you will be far ahead of the current services out there.

Padraig Sep 11, 2019 at 4:10 pm

Just to add I agree with Peter and Louis above.

Alexandre Sep 11, 2019 at 4:36 pm

That's awesome. Nice addition.
+1 for Peter's suggestion. We have daily cron jobs that depends on external services and execution time may wildly fluctuate.

I'll add that for cron jobs it would be great to be able to say when we expect an heartbeat. Given a cron that runs everyday at 0200, if there is no heartbeat by 0400 I should get an alert. Setting the interval to 26 hours would do that. Now imagine that my cron have a nasty bug an take longer every day to run. The "window" will slide every day a little bit further and basically allow 26 hours from last execution *end* to the next end. Which may end in a cron that takes 10 hours to run and finish at 1200, with no alerts, since last execution was also very slow and withing the 26 hours.
A monitoring definition like a cron and a delay would make it easy to detect performance problems in crons. Granted, this is way more complex than what is currently in place. Just throwing the idea here :)

Anyway, nice job!

Peter Sep 11, 2019 at 4:36 pm

Glen, Fran, are you familiar with SendGrid? If you have control over the email recipient address, it should be pretty easy to use an event hook to notify Uptime Robot.

https://sendgrid.com/docs/for-developers/tracking-events/getting-started-event-webhook/

Martin Sep 11, 2019 at 4:37 pm

Nice feature! Thanks

Marcel Sep 11, 2019 at 4:55 pm

Very nice, thanks for this awesome Feature!

Aaron Sep 11, 2019 at 5:43 pm

Heartbeat tests sound great. Sort of the thin end of passive monitoring.

I concur with the others that heartbeat tests should be able to be long intervals, e.g. monthly or quarterly password rotations. I would like to be able to specify everything up to ~370 days.

If would be convenient to be able to specify two times, the 'expected frequency', as now, e.g. 1 hour, and an 'allowed tolerance' e.g. 10 minutes. So an hourly task heartbeat would be 'Down' if an hour and 10 minutes had elapsed since the last heartbeat.

Otherwise, if there is only one time setting as now, the time should be treated as a the time when the heartbeat response is late. E.g. a weekly backup is late when 8 days have elapsed, not 7 days and 1 minute.

Given a heartbeat is basically a passive check, it would be a nice extension to be able to make a negative heartbeat, ie. to actually declare a heartbeat failure.

e.g. my suggestion, something like, normal heatbeat:

https://heartbeat.uptimerobot.com/Current-Monitor-Name-But-Ignored/mMonitorGUID/UP

and option affirmatively negative heatbeat:

https://heartbeat.uptimerobot.com/Current-Monitor-Name-But-Ignored/mMonitorGUID/DOWN

This would give a lot of flexibility to the heatbeat system. It would enable/encoruage using longer heatbeat intervals, because we have the option to come in early with a 'DOWN'. So could check every 10 seconds as the source end, but only heatbeat to uptimerobot every 5 minutes. With the option to notify DOWN immediately for known failure.

Graham Philiarmonica Sep 19, 2019 at 5:43 pm

This. I'd appreciate the ability to add tolerances.

Moshe Oct 15, 2020 at 5:43 pm

Agreed with all the above. HealthchecksIO allows for /start and /fail suffixes to denote when it starts and when it explicitly fails.

Fran Rodríguez Sep 11, 2019 at 5:52 pm

Hi,

And are you planned something similar to this, but with emails?

Cheers.

João André Mezzari Sep 11, 2019 at 7:02 pm

+1 for Aaron suggestion

Mara Sep 11, 2019 at 7:21 pm

Thank you, this is very useful!

Afsin Toparlak Sep 11, 2019 at 8:30 pm

Great!
Nice!
I will use it!

Rui Meleiro Sep 11, 2019 at 10:48 pm

That's a great feature, it will allow us to reduce the risk surface (open ports and ICMP) for monitoring purposes.
Nevertheless, we've tested it and no alerts are being sent out, either via email or SMS.
Care to check that?
Thank you
Rui Meleiro

Rui Meleiro Sep 13, 2019 at 10:48 pm

It seems you have fixed the issue before my question even past moderation (probably due to the additional queries on the same issue, I guess)

Umut Muhaddisoglu Sep 13, 2019 at 10:48 pm

Sorry for the trouble and this bug is all fixed now.

Guy S Sep 12, 2019 at 6:09 am

Nice idea and it will probably convince me to move over to Pro once it is out of beta. How about moving it to the free plan until it comes out of beta? You might get more useful comments if users don't have to pay to test your new features.

HenrikT Sep 12, 2019 at 8:02 am

I have try to make a tast schedule in windows, but i works not for me. I can see thenext tast will run after 5 min, but this time only change even 5 min. If i run the tast manuel it works and the monitor are UP, but after 5 min the monitor is down aging.
I have make the tast schedule like written in the help site to create a Tast schedule.
What is wrong ?

Scott Sep 12, 2019 at 12:25 pm

+1 for: longer time intervals (yes up to a year), some tolerance on the check (e.g. job takes 5 mins longer one day), and also time windows.

Basically would agree with all of above ... longer time frames being probably the first most useful change.

Good though.

Jim Washington Sep 12, 2019 at 6:21 pm

It does not appear email notifications are working for the heartbeat monitoring. Can somebody confirm? Thanks, Jim

Umut Muhaddisoglu Sep 12, 2019 at 6:21 pm

Thanks very much for sharing the issue and it is all fixed.

Neil.work Sep 12, 2019 at 7:11 pm

This is great, but do you think you'll ever allow a heartbeat that takes a parameter at the end of the URL and then we can create a threshold for it? something like

https://heartbeat.uptimerobot.com/guid?value=100

Then trigger the alert if the value is high/low? Something really simple? Myabe?

Blaine Sherman Sep 12, 2019 at 7:43 pm

This is fantastic! I am a Pro user. I'm with everyone else. More control over the interval. I too want to use this for backup monitoring.

Keep up the great work!!

shawn Sep 12, 2019 at 9:38 pm

This is great, however is there a known issue with the alerts? I set a few heartbeat monitors up shortly after this post, I am not getting status alerts for the heartbeat monitors

Umut Muhaddisoglu Sep 12, 2019 at 9:38 pm

Thanks very much for sharing the issue and it is all fixed.

Stephan Sep 16, 2019 at 8:51 am

Hi there,
Great feature, thank you! We do use the API a lot and we'd like to use the API for this feature as well. Is this already done? If not, when can we expect it?
(we'd like to add as well the URLs through the API, so we don't have to leave our dashboard)

Kristian - Customer Service Agent Mar 2, 2020 at 8:51 am

Hi Stephan,

thank you! I am happy to tell you that API for this feature is available as well: https://uptimerobot.com/api Also you can add URL or IP to HTTP, Keyword, Ping or Port monitor types with using URL parameter in API.

Have a great day!

Stewart McKee Sep 16, 2019 at 12:39 pm

I've started using this to monitor services running within a kubernetes cluster, as they are not accessible from outside, i've built a monitor proxy to do the checking and then fire a heartbeat when successful. There is a sample kubernetes config for use and its available as a docker container too. Issues and requests on github.

https://github.com/stewartmckee/heartbeat_monitor

Stewart.

Stewart McKee Sep 19, 2019 at 12:39 pm

Also.. quick question, how often can we ping the heartbeat url? I get 429's if i'm too often. I've got the monitor set to 1 min in uptimerobot and am sending the request every 60 seconds, but that could lead to a false positive in certain scenarios. I've checked the faq and docs but doesn't mention it, i'd like to call every 50-55 seconds to cover any network delays. Can you let us know how often you would advise calling the heartbeat to avoid false positive?

Thanks!

Kristian - Customer Service Agent Mar 2, 2020 at 12:39 pm

Hi Stewart,

you can send a maximum of 2 requests in 30 seconds, so we recommend working with that :)

Have a great day!

Graham Philiarmonica Sep 18, 2019 at 4:46 am

Hey, when it responds "fail" for ratelimit, can I just keep sending requests? I want to send a request every 15 seconds to make sure the heartbeat goes through. Is this a good idea or will my requests get missed?

Kristian - Customer Service Agent Mar 2, 2020 at 4:46 am

Hey Graham,

you can send a maximum of 2 requests in 30 seconds. Keep this in mind and you should be good :)

Allen Sep 23, 2019 at 9:45 pm

Same here. Set up the tasks, tested them, they show as working. I even hit the URLs manually from a browser and got a good response but the alerts are not updating.

Kristian - Community Manager Jun 9, 2020 at 9:45 pm

Hi Allen, please let us know to support@uptimerobot.com if you are having any issues at the moment, we will be happy to take a look at it :)

Charlie H Oct 10, 2019 at 4:37 pm

I use this for my site; however I put it on a 1 minute interval; sent a test via my browser and did not send again for 20 minutes; I was not notified and the monitor reports that it is at 0%.

Also Rate limit exceed. error is unclear. (also there's a typo)

Also +1 for higher limits; I have a cronjob that runs every day, but as long as it goes every 28 hours or so I'm happy

Kristian - Community Manager Jun 9, 2020 at 4:37 pm

Hi Charlie,

do you still have any issues with the monitor? Please send us all the details to support@uptimerobot.com and we will be happy to take a look at it!

Paul Oct 15, 2019 at 7:58 am

Wondering whether a heartbeat 'pair' may help solve some other suggestions where jobs run at odd times (or take a while to complete).

A 'ping' to say the job has started and another to say it's complete, with incomplete 'pairs' highlighted as having problems?

Nico Oct 22, 2019 at 11:30 pm

Some webhooks (e.g. from prometheus alertmanager) are POSTed by default. Could you accept POST requests to the heartbeat url too? Thx

Patric Jansson Oct 29, 2019 at 9:07 am

Hi

When will you support Heart beats in the API?

Kristian - Customer Service Agent Mar 2, 2020 at 9:07 am

Hi Patric,

thanks for your question, we already do! Check it out https://uptimerobot.com/api

Have a great day!

Matthew Franzel Nov 13, 2019 at 11:00 pm

How would one set this up with a Synology NAS?

Bob Ehlert Feb 1, 2020 at 1:08 am

Nice use of the current app! Does the heartbeat honor the maintenance windows? I just set one up and its reporting down 30 mins into a maintenance period. Thanks

Kristian - Community Manager Jun 9, 2020 at 1:08 am

Hi Bob,

thank you for reaching out to us, it should! Please send us all the details to support@uptimerobot.com if you are having any issues and we will be happy to take a look at it :)

Michael Feb 25, 2020 at 7:58 pm

Hi - I like the information in the android app that shows access times (for relevant monitors).  This information does not seem to be available on the web version.  Can you make that information available?
Thanks!
( I recognize that this does not relate specifically to the heart beat function, but I can't find a place to make general suggestions publicly)

Kristian - Community Manager Jun 9, 2020 at 7:58 pm

Hi Michael, thank you for reaching out to us! You can also always contact our support (support@uptimerobot.com), do you mean the graph with response times or something else? We are currently working on upgrading our service so I will be happy to suggest this.

Syu Jia Jyun Mar 13, 2020 at 2:22 pm

I tried this feature but it didn't work.

My heartbeat link is : https://heartbeat.uptimerobot.com/m784503014-34a65010abefd5155599431b85560ccead15f200

But in dashboard it alwasys shows " No data " in current status. What's wrong?

Kristian - Community Manager Jun 9, 2020 at 2:22 pm

Hi there,

thank you for reaching out to us, have you tried contacting our support too? Usually, it means we are not receiving any requests, it's hard to investigate the issues since it depends on the request received, but if you are still having any issues please send us all the details to support@uptimerobot.com.

Shane Kirk Mar 24, 2020 at 6:36 pm

Kristian,

it looks like heartbeat monitors are not mentioned yet in the api docs - https://uptimerobot.com/api parameters lists:

"""
monitor>type
1 - HTTP(s)
2 - Keyword
3 - Ping
4 - Port
"""

I am able to create one using the gui. I have not yet attempted to try using the API assuming that eventually a 5th type will be added?

"""
monitor>type
1 - HTTP(s)
2 - Keyword
3 - Ping
4 - Port
5 - Heartbeat
"""

Looking forward to using this feature but want to do so using the API, we do not maintain our account directly via the ui.

Thanks,

Kristian - Community Manager Jun 9, 2020 at 6:36 pm

Hi Shane,

thank you, I have already informed our developers, stay tuned! And feel free to contact us on support@uptimerobot.com if there is anything else we can help you with.

PK Mar 31, 2020 at 1:50 pm

Would be cool if you provide an email address to send check ins via email as well.

Kristian - Community Manager Jun 9, 2020 at 1:50 pm

Interesting idea, thank you!

Daimian May 12, 2020 at 10:39 am

I love the concept of heartbeats but it seems at night-time it doesn't work too well. Alot of the times I keep getting monitor down issues.

Kristian - Community Manager Jun 9, 2020 at 10:39 am

Hi Daimian,

thank you for reaching out to us, are you still having any issues? Please contact our support (support@uptimerobot.com) and we will be happy to take a look at it.

Ryan May 31, 2020 at 7:11 pm

Could the API doc be updated with the type for heartbeats? It currently only has the below:

monitor>type
1 - HTTP(s)
2 - Keyword
3 - Ping
4 - Port

Kristian - Community Manager Jun 9, 2020 at 7:11 pm

Hi Ryan,

thank you for bringing this to our attention, we will definitely take a look at it!

Gary D. Beck Jul 18, 2020 at 7:15 pm

Need email heartbeat (deadman) monitor. Where I send an email every and I get notified if the email doesn't show up. This lets me know there is an issue with my email sending process or it's smtp service. I also like the idea of being able to set up a rule like someone else said so you can see the status of the email (backup or other success type) and flag or notify accordingly.

Adam Warner Sep 17, 2020 at 3:08 am

+1 for > 24 hour time on heartbeat monitor. Turning off mine for now on my once a day jobs; it is not useful since sometime runs a few minutes longer than the previous day. I am not a fan of false alarms.

Phil Sep 27, 2020 at 12:21 am

Atlassian Opsgenie do this too and it works very well.

Austin Oct 9, 2020 at 5:03 pm

I love this feature but it would be great if you supported HTTP posts aswell. Tools like Alert Manager for Prometheus have a webhook ability that only supports post.

Janek Nov 26, 2020 at 7:52 am

Hello,

more than 24 hours interval is definitely needed :)

Best regards,
Janek

Kristian - Community Manager Nov 26, 2020 at 7:52 am

Hi Janek,

noted! Thank you. :)

Jason Nov 28, 2020 at 2:01 am

fetch "https://heartbeat.uptimerobot.com/Your URL">/dev/null 2>&1
On Pfsense you need to use fetch to make work without an changes.

AB Jan 11, 2021 at 2:51 pm

It's January 2021, what is the current status of the feature?

- does it have API?
- does interval still 24h?
- does it still in Beta?

Kristian - Community Manager Jan 12, 2021 at 2:51 pm

Hi,

yes, you can find some details here: https://uptimerobot.com/api/ It's type is 5. Intervals are 24 hours and we don't plan to change them at the moment. It's not in BETA anymore.

Please let us know to support@uptimerobot.com if there's anything else we can help you with, thank you.

Janek Feb 22, 2021 at 5:44 pm

Not more than 24h? That's a pity. Now I get many false alarms when big once-every-day jobs take a few more moments than the previous day. Even just 25h would be much more usable.

Rob Apr 6, 2021 at 5:44 pm

Oof - I agree with everyone here, I've got a daily task and it can take 2-3 hours to complete, so I need 27 hour window otherwise I'll get false positives at the 24h limit. Please consider extending to say 36 hours for most use-cases?

Karol Wójcik Apr 3, 2021 at 10:47 am

I recommend the Uptimerobot tool. We use them for clients, works great.

Solrac Jun 30, 2021 at 7:18 pm

Everyone claims for longer check intervals for almost 2 year now, but this seems just completely ignored by developers. Too bad. :(

This makes this unusable for long running tasks, like backups.

Kristian - Community Manager Jul 2, 2021 at 7:18 pm

Hi, thank you for your feedback, we are working on new features based on the feedback from our community, we'll consider this in the future :)

Jack Apr 21, 2023 at 2:59 am

It might already be in the comments, but didn't see it.

1) Could you consider email-based heartbeats, rather than POST/GET? Some (old...!?) systems might not easily be able to send custom POST requests, but almost everything (old or basic) has an email notification system. So configure that system to send a "job/task complete" email to monitorGUID@heartbeat.uptimerobot.com, when no email arrives in the defined window, trigger DOWN. Currently the support team have to manually observer that the regular daily email didn't come in from System X.

I know that email is not the "correct" communication protocol for this, but in the real world it is still used!

2) Ability to configure day of week alerts. Eg a job / task that is scheduled to run daily at 9pm Monday to Friday only. Getting an alert on Saturday at 9.10pm because the job didn't run is not helpful. But by 9.10pm on Monday if the job hasn't run, then we need to know.

A workaround is to make 5 weekly jobs - "Monday Job X Heartbeat", "Tuesday Job X heartbeat" and so on, but...

Kristian - Community Manager Apr 26, 2023 at 2:59 am

Hi Jack, thank you for your suggestions! Please share them here https://uptimerobot.nolt.io/ so other users can vote for it too.

Recent Articles

Recent Articles

Table of Contents