Why we will be making breaking changes in our API soon

Published on July 24, 2025 by Freek Van der Herten

A few weeks ago, we sent a survey out to all our users asking what they like about Oh Dear, how they use it, and how we could improve our service. If you didn't get it, you can still fill out our survey. It only takes a couple of minutes.

Currently, we can monitor the uptime of any HTTP(s) site. In our survey, our users mentioned that they'd like to use Oh Dear to also monitor MySQL, email, Redis, or any other kind of server.

That's why we're working on adding ping and TCP monitoring. Instead of performing a simple GET request, Oh Dear will be able to send a Unix ping command to a server, and to open up a TCP port to any server you'd like, and send a command through it.

When adding a site to monitor to Oh Dear you will be able to select the type (we'll make this choice much prettier than a simple dropdown when we ship this feature).

We already have ping/TCP checks running in our staging environment. Here's how ping results look like.

Of course, we'll also record performance data, which will be shown on that page as well when scrolling down.

And here's an example of TCP results.

For TCP checks, we'll also record connection time and dislay a graph for those times.

Naming things is hard (why we are breaking our API)

Since Oh Dear started, we always had the concept of a "Site" you're monitoring. But the name "Site" is really weird when you change the checking type to ping or TCP. For example, when checking the uptime of a port of a server, you're not really checking a "Site".

That's why we made the hard choice of renaming the "Site" concept in Oh Dear to "Monitor". A monitor will have a type:

  • HTTP: for checking websites
  • Ping: for checking websites and servers via Ping
  • TCP: for checking the connectivity of a port

Here's a screenshot from our staging environment, where we run a "Monitor" for each type. Notice that in the main navigation, we don't have "Sites" anymore, but "Monitors".

Across our UI, notifications and docs, we'll change the language so we'll talk about "Monitors", instead of "Sites". We're also busy with updating our entire codebase. Internally our Site model is renamed to Monitor, together with all relationships, foreign keys, views, controllers... Together with the technical rename, we'll also pay off other technical debt that was accrued over the years.

This will also affect our API. At Oh Dear, we value backwards compatibility. In the eight years that we've been in operation, we've never made a breaking change to our API. We also considered keeping a v1 of our API, but we decided against it because the maintenance burden would be too big.

We'll help prepare you

In August/September we'll be making breaking changes to our API. The "sites" endpoints will be renamed to the "monitors" endpoint. We also rename and regroup some of the attributes.

To help you through these changes, we'll publish a page with instructions on how to update to the new API. We will also update our PHP SDK package and related packages. When we pinpoint an exact release date we'll also send you a dedicated mail so you know when our new API will be activated.

More features are coming

Ping/TCP isn't the only new feature we have planned. Our uptime check runs once per minute by default. For most people this is fine, but a lot of users have asked for the ability to specify the frequency of checking. So we'll be adding that.

We also have other exciting things on the table, but it's a bit too early to talk about those. Should you have any suggestions on how to improve Oh Dear, do let us know by filling in our survey.

We'll close off this post by highlighting some of the features that were requested through our survey:

Start using Oh Dear today!

  • Access to all features
  • Cancel anytime
  • No credit card required
  • First 30 days free

More updates

Want to get started? We offer a no-strings-attached 30 day trial. No credit card required.

Start monitoring

You're all set in
less than a minute!