truth or lie

When is a User-Agent version not a version?

51Degrees

10/6/2025 5:30 PM

Feature Device Detection

51Degrees' approach to Operating System and Browser versions

When is a Version not a Version?

User-Agents (UAs) lie. When considered in isolation of other dimensions it's hard to know if if a UA is legitimate. But at scale, with sufficient supporting data points like IP addresses and with the right skills and processes, it's possible to determine what's likely to be real and what's not. To separate the known from the unknown.

Take the following UA seemingly from an Apple iPhone running iOS 19.

Mozilla/5.0 (iPhone; CPU iPhone OS 19_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148

However version 19 of iOS doesn't exist and has never been used as a frozen code for another version. 51Degrees can determine that version 19 is not known.

But legitimate UAs for iPhones also contain a different version to the real iOS. Take the following example.

Mozilla/5.0 (iPhone; CPU iPhone OS 18_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.0 Mobile/15E148 Safari/604.1

Version 18.6 is most likely to relate to iOS 26, the most recent version of iOS at the time of writing. 51Degrees will return the most likely current iOS version. See the User-Agent tester for the current version.

No parrots

Parrot on a wooden chest with a ship in the background

Unlike legacy device detections solutions that merely parrot back the version of the operating system, browser, or app from the UA, 51Degrees takes the time to research all the different components of a web request or application and ensure the most likely data is available to our users.

Use the PlatformVersion and BrowserVersion properties to get actual version information.

What about new versions?

51Degrees is an ISO 9001 and 27001 accredited company. We care about quality underpinned by repeatable processes.

Every week our Data Team check for developer, preview, and new versions of popular web browsers and apps. These are then added to the daily data and the relevant Discontinued, Preview and Release dates updated. You use these values to quickly establish if the browser is the current version from the vendor, a pre-release or beta, or if it's no longer being maintained.

Every working day new User-Agents and User-Agent Client-Hints (UA-CH) values are checked for signs of any new versions emerging. These are then prioritized for research if seen in statistically significant volumes.

Sometimes a new version will sneak past and might return the value Unknown for a few days. In this situation Unknown means just that, the version isn't yet validated by 51Degrees.

Why this matters?

There are a lot of bots out there pretending to be real devices. Bot farms often bump up the version of the OS, Browser, or App to values that don't match the vendors published versions. By verifying the authenticity of the version value 51Degrees stays ahead of the robots.