API Changelog

Uptrends' API will be improved and extended over time. We’ll add new endpoints and methods as needed for new functionality.

When adding new functionality, our goal is to stay backward-compatible. However, sometimes change is inevitable and a new version of the API may not be compatible with what you’ve coded and used so far. You should check the API changelog regularly to be on top of all changes and to act on changes when necessary.

If you are looking for the documentation of the API, please check out the articles in the category Uptrends' API.

Also, if you are interested in the changes to the Uptrends app, check out the general changelog.

October 2023

Breaking change: page load metrics for browser-based monitoring

Note: the following is a breaking change to the MonitorCheck API. The change will go live on Wednesday, November 8th.

The Uptrends MonitorCheck API can be used to retrieve detailed information about individual monitor checks. For browser-based monitoring, the waterfall chart can be retrieved via the GET /MonitorCheck/{monitorCheckId}/Waterfall call, which returns all the waterfall metrics, including Core Web Vitals and W3C navigation timings, if they are present in the check result.

Currently, the MonitorCheck API returns Core Web Vitals and W3C navigation timings in two separate JSON objects: PageLoadMetrics and W3CNavigationTiming. Going forward, these separate objects will be combined into a single array, PageLoadMetricsCollection as follows:

  "Attributes": {
    "PageLoadMetricsCollection": [
      {
        "CumulativeLayoutShift": 0.029,
        "FirstContentfulPaint": 2914,
        "LargestContentfulPaint": 3014,
        "TotalBlockingTime": 819,
        "TimeToInteractive": 12516,
        "TimeToFirstByte": 2068,
        "SendStart": 2059,
        "LoadEventEnd": 6721,
        "DomInteractive": 2652,
        "DomComplete": 6719
      }
    ],
    ...

Specifying variables in alert definitions via the API

When configuring alerting through a custom integration in Uptrends, operators can use the UI to specify certain required variables in the escalation level of the alert definition, instead of in the integration options. This allows users to use a single integration for various scenarios, such as sending alerts for different sets of monitors to different teams, but with the same message content.

When the option to specify variables in the escalation level is selected in the integration settings, the variables must instead be configured when the integration is set to be used in the settings of the alert definition. To do this, an extra text field appears in the integration selection list in the alert definition settings.

Until now, this option was unavailable when configuring alert definitions through the API. We’ve added a new option to the /AlertDefinition/{alertDefinitionGuid}/EscalationLevel/{escalationLevelId}/Integration request (where you configure which integrations are tied to each escalation level in the alert definition). The new property will be:

{
    ...
    "VariableValues": {
        "ApiUrl": "https://api.escalationlevel-specific-url.com/alerts"
    },
    ...
}

This property is the equivalent of this option in the application UI:

Configuring integration variable in alert definition

September 2023

Change in checkpoint’s IPv6 addresses

Previously, when using the checkpoint API to retrieve checkpoint information, the checkpoint’s IPv4 addresses were displayed as a simple list in an array, while the IPv6 addresses (if applicable) were a list of objects. For example, the Amsterdam checkpoint IP addresses were previously listed as follows:

     "Ipv4Addresses": [
        "178.217.84.4",
        "188.241.149.95",
        "66.212.22.2",
        "185.145.63.225",
        "5.182.210.227",
        "5.182.210.168"
    ],
    "IpV6Addresses": [
        {
            "IpAddress": "2a01:5cc0:1:2::4"
        },
        {
            "IpAddress": "2607:fcd0:cd40:1400::2"
        }
    ],

Uptrends has resolved this inconsistency now, and returns the IPv6 addresses in the same way:

    "IpV6Addresses": [
        "2a01:5cc0:1:2::4",
        "2607:fcd0:cd40:1400::2",
    ],

Be aware that if you’ve automated the retrieval of checkpoint IP addresses, e.g. for whitelisting purposes, this may be a breaking change.

January 2023

Version 3 of the API has reached its end of life as of January 2023, and has been disabled. You can still find its documentation in our knowledge base, but it will no longer work. If you have existing scripts or procedures in place that are still making use of version 3, these will fail, and we recommend you switch to version 4 as quickly as possible. See our upgrade guide for more information on switching from API version 3 to version 4.

Update May 2023: The documentation for version 3 of our API has been removed, and is no longer accessible.

December 2022

Monitor creation date info through the API

The /Monitor endpoint can be used to retrieve definitions of the monitors in your account (via GET /Monitor/{monitorGuid}), among other things. The response will now also include a CreatedDate, indicating when the monitor was created.

November 2022

Small changes to /Register endpoint

As you may have read in our regular changelog, this release we’ve added the option to ‘Create and revoke Uptrends API credentials via UI’. In order to align the Uptrends API v4 with the user interface, we have added 2 new options to the /Register endpoint:

  • It’s now possible to specify an optional description when registering a new API account by using the description field.
  • It’s now possible to create an API account for another operator when the calling operator has sufficient rights by using the operatorGuid field.

September 2022

Upcoming change: timestamps in the API response

Currently, timestamps that are part of the response for any API v4 call are being converted to JSON in one of two ways:

  • Millisecond count is equal to 0: 2022-09-21T13:08:47
  • Millisecond count is not equal to 0: 2022-09-21T13:08:47.682

This inconsistency can lead to problems when the data containing these timestamps is automatically parsed and handled. Because of this, we’re making a change: the millisecond count will no longer be shown for any timestamps included in the API response. Going forward, all timestamps will have the format 2022-09-21T13:08:47.

June 2022

Upcoming checkpoint IP addresses

The Uptrends API can be used to retrieve checkpoint IP addresses, for automated whitelisting. Previously, responses to such requests to our checkpoint API were typically an up-to-date list of current checkpoint IP addresses. However, Uptrends' checkpoint network is always in motion. New checkpoints are added, existing checkpoints are removed or relocated, or IP addresses are changed. That could mean that the list of IP addresses you were using to whitelist might fall behind until the next synchronization, leading to unnecessary errors.

We’re now registering upcoming checkpoint IP addresses and including them in the API response. That way your whitelist will be up to date ahead of time.

Relationships in statistics API

Responses from the Statistics API (which can be used to retrieve statistical data for your monitors or monitor groups) will now include some additional metadata about the response. The new Relationships array already exists for other API endpoints, and contains additional information about the request like a link to the Monitor or MonitorGroup API request to retrieve additional information about the monitor (group) itself.

        "Relationships": [
            {
                "Id": "4c3a9529-7934-4978-9c36-c377b232g7hb",
                "Type": "Monitor",
                "Links": {
                    "Self": "/Monitor/4c3a9529-7934-4978-9c36-c377b232g7hb"
                }
            }  
        ]

May 2022

Fix for start/end parameters in statistics API

Our API supports retrieving statistical monitor data, with the Statistics API. You can specify either a preset period for which to retrieve the data (with available values such as Last24Hours), or set a custom period using start and end URL parameters. For example, GET /Statistics/Monitor/{monitorGuid}?Start=2022-04-08&End=2022-04-09 retrieves statistical data for a single monitor, for the specified period.

There was an issue where the minute indicator in the start and end timestamps wasn’t being mapped correctly, which could have led to incomplete (or even empty) results in the API response. This issue has been resolved.

February 2022

Update to status API

The Status API retrieves status information for a specific monitor, based on the most recent monitor check. This endpoint can be used for information regarding the current monitor status. We’ve expanded the response to now also include a value for TotalTime - information about the total time metric for the most recent monitor check.

January 2022

Returning the correct monitor data

When a non-Administrator operator with the View data permission on a certain monitor retrieved that monitor definition through the API (via GET /Monitor/{monitorGuid}), the response did not include all relevant data. That was incorrect, since the same data was already available through the UI but not the API, and has been rectified. Now, when these operators retrieve a monitor, the response will include values for MonitorGuid, Name, MonitorType, MonitorMode, IsActive, and GenerateAlert.

August 2021

Announcement: deprecation of version 3 of our API

The Uptrends API currently supports two versions side-by-side. Version 3 is the older legacy version of our API, and version 4 is the currently recommended version. With a much more complete set of features, version 4 has been the focus of our development for some time. As such, we’ve decided to deprecate version 3 of our API, and it will be retired and become unavailable by December 2022.

For customers currently still making active use of version 3 of our API, it should be noted that it will still be supported up until that time. However, we do recommend switching over to making use of version 4 as soon as possible. To assist you in this, we’ve written an API v3 to v4 upgrade guide, which will cover the key differences between the two API versions and how to bridge them in your scripts and software.

July 2021

Breaking change: changes in OperatorGroup authorization response

The Uptrends API allows you to manage permissions for operators and operator groups, assigning roles such as Administrator, Financial operator, or allowing Infra access. The OperatorGroup API contains several options for retrieving, adding or deleting such permissions.

We have changed the way in which the permissions are specified for operator groups in the API, which could affect any automated creation, removal, or retrieval of information about operator group permissions you may have set up. Currently, retrieving information about permissions works by requesting:

GET /OperatorGroup/{operatorGroupGuid}/Authorization

which returns a response along the following lines (depending on which permissions have been set up for that particular operator group):

[
      {
        "AuthorizationId": "{authIdGuid1}",
        "AuthorizationType": "FinancialOperator",
        "OperatorGroupGuid": "{operatorGroupGuid}"
    },
    {
        "AuthorizationId": "{authIdGuid2}",
        "AuthorizationType": "AllowInfra",
        "OperatorGroupGuid": "{operatorGroupGuid}"
    },
    ...
]

Going forward, that same request will have its response simplified, simply listing the permissions granted and no other information. The response will no longer contain an operatorGroupGuid or AuthorizationId (the latter will disappear completely, meaning permissions will no longer have an individual GUID assigned to them). It will look like this:

{
    "FinancialOperator",
    "AllowInfra",
    ...
}

Adding a new operator group permission currently works by sending a POST request to:

/OperatorGroup/{operatorGroupGuid}/Authorization with a request body specifying an “AuthorizationType”. The currently available values for AuthorizationType for operator groups is available in the Uptrends API Swagger UI, under Models (at the bottom), and then OperatorGroupAuthorizationType.

Going forward, new permissions can be added to an operator group by sending a POST request to:

/OperatorGroup/{operatorGroupGuid}/Authorization/{authorizationType} without including a request body.

Deleting a permission from an operator group is currently done by sending a DELETE request to /OperatorGroup/{operatorGroupGuid}/Authorization/{authorizationGuid} - but as noted above, “authorizationGuid” will disappear entirely as an entity and can no longer be used. Instead, you can delete permissions by referring to them directly by name in the request URL: /OperatorGroup/{operatorGroupGuid}/Authorization/{authorizationType}

February 2021

Breaking change: sensitive values in multi-step API monitors

Our multi-step API monitor type allows you to execute multiple consecutive HTTP requests, where each new request uses one or more pieces of data retrieved from a previous request to perform its task. Often, one of the steps will involve submitting credentials to gain access to a particular resource. In the past, these credentials would be added as predefined variables to the monitor definition, and then marked as Sensitive.

To improve the security of how we handle such credentials, we’re going to be moving away from that setup. Instead, the credentials will be placed in the vault. With that change, the option to mark predefined variables as sensitive in multi-step API monitors becomes obsolete, and we will be removing it.

This will affect the way in which you can create or interact with multi-step API monitors through our API. Currently, the monitor definition for this monitor type will contain an array “PredefinedVariables”, where each of the individual variables has a true/false boolean “Sensitive”. In the near future, this boolean will be removed from the definition. If you wish to create or update an existing multi-step API monitor in your account through the Uptrends API, this field must no longer be included.

Change: renamed routing

For Uptrends APIv4 we have an inconsistent way of naming routes. In most cases singular is used, but plural on a few occasions. The route now contains only singular parts, e.g. /MonitorGroup/{monitorGroupGuid}/Member instead of /MonitorGroup/{monitorGroupGuid}/Members.

We still support the old routes for backwards compatibility.

By using the Uptrends website, you consent to the use of cookies in accordance with our Cookie Policy.