Why do some User-Agents return 'Unknown' software versions?
At 51Degrees, our priority is accurate device detection. We meticulously research the information provided in User-Agent strings to determine if they reference legitimate software versions. During this process, we frequently encounter User-Agents with fabricated or inaccurate version numbers.
Consider the following example:
Mozilla/5.0 (Macintosh; Intel Mac OS X 11_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36
For Big Sur, the last version was 11.7.10.
In this instance, the operating system has reached its end of life and is no longer maintained.
At 51Degrees, we maintain a commitment to transparent and reliable device detection. Therefore, we do not report inauthentic or fabricated software versions. Instead, we return “PlatformVersion = Unknown” for unverifiable data. Our research team emphasizes the highest quality and only returns what can be substantiated.
'Android 10; K': the Reduced User-Agent explained
With the introduction of Client Hints as part of Google’s User-Agent reduction initiative, the structure of User-Agent strings has changed. When Client Hints are supported by the browser, the User-Agent header is reduced, with additional device details relayed through the Client Hints headers.
For example, the User-Agent string might display:
Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Mobile Safari/537.3
At first glance, it appears the device is running Android 10, and the device model is identified as "K". However, this is actually a reduced User-Agent string. By examining the accompanying Client Hint headers, we can obtain more accurate information, such as:
Sec-CH-UA: "Chrome"; v="128" Sec-CH-UA-Mobile: ?1 Sec-CH-UA-Platform: "Android" Sec-CH-UA-Platform-Version: "14" Sec-CH-UA-Model: "Pixel 9"
As shown, these headers provide clearer and more specific device details.
Accurately Detecting Devices with Reduced User-Agents
Since 'Android 10; K' does not represent the actual Android version or device name, 51Degrees will return “PlatformName = Android” and “PlatformVersion = Unknown” in such cases.
By leveraging Client Hints, 51Degrees continues to provide trustworthy and detailed device detection, maintaining our commitment to accuracy and transparency.
We offer a range of resources, including concise documentation and various tools, to simplify the process:
- 51Degrees API Documentation – User-Agent Client Hints
- 51Degrees User-Agent tester
- 51Degrees UAParser
Need more help?
You can raise issues through our GitHub page, selecting the repository corresponding to the language used to access the API, or by reaching out to us at firstlinesupport@51degrees.com.
Looking for more personalized assistance? Our priority support package offers direct access to our expertise. We will guide you through configuring your specific setup to ensure optimal accuracy and the fastest detection capabilities provided by the powerful 51Degrees API.