Announcements

APIv2 is Ready to Use … (APIv1 will be retired on 1 June 2017).

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

Uptime Robot’s API is consumed pretty much (with over 5,000,000+ requests/day) for “automating monitor management”, pulling the data to generate custom reports and more.

As the usage grows every day, the APIv2 is built for a faster, more secure and stable experience with added features.

SSL and POST only

The APIv2 expects all parameters to be sent as a POST request and works SSL-only where both changes together help making it more secure.

Updated parameter names and speed

The parameter names and responses are very consistent now. They are all lower-case, separated with “_” (like api_key).

And, most methods are now ~ 2x to 5x faster.

Added features

It is now possible to pull more data with getMonitors method, including:

  • getting the uptime % of a range (or multiple ranges) with custom_uptime_ranges parameter
  • getting the all time duration of statuses with  all_time_uptime_durations parameter
  • getting the logs of a given period with logs_start_date and logs_end_date parameters
  • getting maintenance windows of a monitor

And, maintenance windows can also now be managed with the API too.

Code samples

The updated documentation page now has code samples for each monitor in multiple scripting and programming languages including PHP, Python, Nodejs, Go, Ruby, C# and Java.

When will APIv1 be retired?

APIv2 is the version that will be improved from now on and APIv1 is planned to be retired by 1 June 2017. So, please make sure that you switch to the new API before then.

Suggestions and bug reports

We are already using APIv2 in production, so, it is pretty stable. Yet, there is always a change of bugs and please let us know if you experience one.

Also, look forward to any suggestions and feature requests to make it better.

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

19 Comments

David Feb 3, 2017 at 1:23 pm

I don't see any way to pause monitoring in the v2 editMonitor API, am I missing something?

Also why 4 required fields? The api_key and id of the monitor seem like they should be all that is necessary...

Umut Muhaddisoglu Feb 6, 2017 at 1:23 pm

Thanks very much for pointing them out.

Just updated the docs accordingly.

Phil Feb 6, 2017 at 12:08 pm

Is there a migration guide? or do I really need to trawl both apis to compare the differences?

Umut Muhaddisoglu Feb 7, 2017 at 12:08 pm

Once the APIv2 is out of beta, a migration guide will be shared to ease the transition.

waldo Jul 5, 2017 at 9:08 pm

I get Error 404, why?

waldo Jul 5, 2017 at 9:27 pm

I can get "Response Time" chart from my monitor or the values to generate one.

Martin Jul 11, 2017 at 12:37 am

Having a nightmare trying to update to API v2 using Curl via PHP...

Curl appears to be connecting but no data is being returned by Curl. Just a 200 status code to confirm connection and then nothing...

Using full API key, format=xml and logs=1... Tried all manner of different approaches but to no avail...

Any suggestions?

Martin Jul 11, 2017 at 12:37 am

Found my problem... The API update wasn't the issue... for me it was the simple change in the API keys...

friendlyname has been changed to friendly_name and this is NOT documented as part of the update...

Lessons learned:
1. XML doesn't output properly in an HTML error log
2. Sanity check the variables you're expecting so you don't waste 8 hours like this...

Hope the above discovery helps someone else avoid this facePalm moment...

Umut Muhaddisoglu Oct 18, 2018 at 12:37 am

Sorry for that and it is all stable and documented now.

Kernel Labs Dec 3, 2017 at 12:55 pm

Hello. Thanks for the good work.
Though, multiple things aren't alright in API v2 : documentation not up-to-date (i.e missing values in data).

And I encounter an issue with create_datetime : I live in France, a coutry which is applying a time change twice a year : +1 in spring, -1 in autumn.
It seems the create_datetime and delete_datetime value your api sends is not taking that into account : I currently create monitors 1 hour in the future ...
Could you fix it ?

Benny Neugebauer Jan 16, 2018 at 2:57 pm

Thanks for bringing us APIv2. Do you also offer a node module which developers can require to work with your API?

Umut Muhaddisoglu Oct 18, 2018 at 2:57 pm

Sorry to say that there isn't one yet.

Igor Ferreira Aug 3, 2018 at 1:48 am

Hi, I'm using the PHP cURL APIv2 raw example with a monitor API key or with the main API key, and having always the "Operation timed out after 60004 milliseconds with 0 out of 0 bytes received" error. Can somebody help me? Thanks!

Umut Muhaddisoglu Oct 18, 2018 at 11:17 pm

That is odd and please feel free to contact us from support@uptimerobot.com and we'd love to help.

Mark Remus Jan 2, 2020 at 12:52 pm

Hi,
I need some help.
I am trying to call the getMonitors method, however even with the correct api_key value it keeps telling me:

missing_parameter","parameter_name":"api_key"

I have tried contacting your support email but no response yet.
I really need to get this working as we have rolled out a new automated logging system inwhich we would like to import the data from the expected response.

Please advise.

Kind regards,

Mark

Kristian - Community Manager Jun 9, 2020 at 12:52 pm

Hi Mark,

we are sorry for the late reply, do you still have the issue? There were more changes lately, but please send us all the details again and we will be happy to take a look at it, thank you.

vgary Jul 31, 2020 at 12:52 pm

Hi Kristian,

Sorry about to reply here but I do have the same issue on every API calls. Cannot call any of the methods with my readOnly or MonitorSpecific apikeys.
I got that response for any of the api calls:
"type": "missing_parameter",
"parameter_name": "api_key",
"message": "api_key parameter is missing."

Please, let me know what is the problem.

Best Regards,

vgary

Kristian - Community Manager Aug 5, 2020 at 12:52 pm

Hi there,

and is the api key in the body? Thank you.

Kris Mar 15, 2021 at 9:16 am

I am using this lib: https://github.com/jpavlav/UptimeRobotPy for Python and Monitors disappear after few days.
It's very strange, because Alert Contacts added via API stays in place. Only Monitors added via API disappeared after a few days without any reason. I tested it on 2 accounts.
Do you have similar issues?

PS. I know that it isn't an official library, but after analyzing looks good

Recent Articles

Recent Articles

What is an SLA?

What is an SLA?

SLAs often look like paperwork until something goes wrong. A service goes down, customers ask for credits, and teams scramble…

Table of Contents