User Agent Parse API

Sick of trying to decode user agents? Let us do the hard work for you.

Our API Parse response contains over 35 different fields describing various aspects of their web browser in varying levels of detail.

We've made it really easy for you to reliably get the information you need - whether it's a clear top-line description of their system, or a very particular version number - if we can detect it, it's in the parse response!

Here's some of the highlights:

A Readable description of their system

Get human readable descriptions of their web browser and their operating system or operating platform.

This is top-line information, perfect for describing a user's browsing set-up in a friendly way - it's the same format as the homepage of whatismybrowser.com.

"simple_software_string": "Chrome 58 on Android (Nougat)", "simple_sub_description_string": null, "simple_operating_platform_string": "Google Pixel",
"simple_software_string": "Internet Explorer 10 on Windows 7", "simple_sub_description_string": "Internet Explorer 7 Compatibility View", "simple_operating_platform_string": "Compaq Presario A7F",

Detailed web browser information

We provide web browser information in various levels of detail - all ready for you to go. If you just want to display the browser name, you can. If you want the browser name and version number; it's there too.

"software": "Chrome 60", "software_name": "Chrome", "software_name_code": "chrome", "software_version": "60", "software_version_full": [ "60", "0", "3112", "90" ],

Operating System information

For a lot of operating systems, we provide not just the Simple and Detailed version number, but also the branded name of it.

"operating_system": "Mac OS X (Mavericks)", "operating_system_name": "Mac OS X", "operating_system_version": "Mavericks", "operating_system_version_full": [ "10", "9", "5" ], "operating_system_name_code": "mac-os-x",

Detect their device hardware

We detect tons of different hardware types, making it very easy for you to determine what kind of device they're using to access your website.

And it's hierarchical - so for example you can just look for "mobile" type devices, or you can drill down into what kind of sub-type of mobile device it is (phone/tablet/wearable) and so on..

"hardware_type": "large-screen", "hardware_sub_type": "game-console", "hardware_sub_sub_type": null,
"hardware_type": "mobile", "hardware_sub_type": "phone", "hardware_sub_sub_type": null,
"hardware_type": "mobile", "hardware_sub_type": "wearable", "hardware_sub_sub_type": "glasses",

Keep the bots at bay

Is that visitor really human or is it a crawler? Is it here to crawl your site or analyse it for problems? Is your user in their actual web browser or are they browsing using some kind of embedded browser in a mail client or game?

We detect many, many different software types, from browsers, billboards, in-app browsers, crawlers, analyers and so on, so that you know exactly what kind of agent is making the request to your site.

"software_type": "bot", "software_sub_type": "crawler",
"software_type": "browser", "software_sub_type": "in-app-browser",

Are they up to date?

Not only does the User Agent Parse result tell you which browser they're using, but it will also check if it's up to date!

"version_check": { "is_checkable": true, "is_up_to_date": false, "latest_version": [ "64", "0", "3282", "119" ], "update_url": "https://www.whatismybrowser.com/guides/how-to-update-your-browser/chrome", "download_url": "https://www.google.com/chrome/" }

But wait, there's more...

We could go on and on about the other things that the user agent parser will detect; including platform model numbers, malicious user agents, HTML rendering engines, browser toolbars and capabilities, but it's probably just best to see it for yourself.

User Agent Parse Fields

Here are the fields that our user agent parsing API returns for each parse (or batch parse). You'll get different amounts of detail in the user agent parse responses, depending on which API plan that you're using.

Field name Example Value/s Description Basic Standard Pro Enterprise
simple_software_string Chrome 64 on Mac OS X (Mavericks) A nice description of the Software and Operating System or Operating Platform
simple_sub_description_string Internet Explorer 7 Compatibility View A nice sub-description of the software and/or platform being used. It won’t always have a value, but when it does, it always compliments or further explains the simple_software_string.
simple_operating_platform_string Samsung Galaxy Tab S2 9.7" (SM-T817R4) A nice description of whatever can be detected as the hardware platform.
software Chrome 64 The software name and a human readable / summarised version of the software
software_name Chrome The name of the software sending the request
software_name_code chrome A “slugged” version of the software_name. Useful for referring to in your code/database.
software_version 64 A "human readable"/simplified version of the version of the software being used.
software_version_full ["64", "0", "3282", "140"] The full version of the software making the request.
operating_system Mac OS X (Mavericks) A nice, readable description of the Operating System and major version (if possible)
operating_system_name Mac OS X The name of the Operating System
operating_system_name_code mac-os-x A "slugged" version of the operating_system_name. Useful for referring to in your code/database.
operating_system_version Mavericks, Jelly Bean etc A “readable” version description of the Operating System - eg for OSX it might say "Mavericks" (instead of “10.9.5”) for Windows it might say 10 (instead of "NT 10.0")
operating_system_version_full ["10", "9", "5"] The detailed version number for the Operating System (For Windows it might be ["NT 6.1"])
operating_system_flavour Debian, Ubuntu etc Sometimes it’s even possible to determine a flavour / distribution / variant of an operating system. This allows (for example) all the different types of Linux to just be "Linux" and not "Debian Linux" to group them all together in your database or code, yet still make a distinction between the "flavours" of Linux when possible / desired.
operating_system_flavour_code debian, ubuntu etc A slugged version of operating_system_flavour
software_type browser, bot etc. Refer to the Integration Guide for more detail
software_sub_type web-browser, crawler, download-helper etc. Refer to the Integration Guide for more detail
hardware_type mobile, computer, large-screen etc. Refer to the Integration Guide for more detail
hardware_sub_type phone, tablet, wearable etc. Refer to the Integration Guide for more detail
hardware_sub_sub_type watch, glasses, vr etc. Refer to the Integration Guide for more detail
operating_platform Samsung Galaxy Tab S2 9.7" (SM-T817R4) A nice, readable description of the Operating Platform, combining vendor, code and code names as appropriate
operating_platform_code SM-T817R4 The product number/code number or other technical description of the operating platform.
operating_platform_code_name Galaxy Tab S2 9.7" The product name/codename for the device or platform.
operating_platform_vendor_name Samsung The name of the vendor/manufacturer of the platform.
operating_system_frameworks
[{ "code": "microsoft-dotnet", "name": "Microsoft .Net", "versions": [ { "simple": "4.0", "full": [ "4", "0E" ] }, { "simple": "3.5", "full": [ "3", "5", "30729" ] } ] }]
This field was designed to hold a detailed breakdown of all the Microsoft DotNet frameworks contained in a user-agent (because some user agents contain more than five or six of them!)
extra_info_dict
{ "Dalvik library version": "1.6.0", "System Build": "SU6-7.3" }
A key/value paring of "extra info" about this device.
extra_info
{ "10": [ "Internet Explorer 7 Compatibility View" ], "20": [ "Possibly running on Windows Server 2008", "Tablet PC" ] }
A group of lists (of varying importance) of extra info about this device.
capabilities
[ "Touch capability", "Silk Accelerated", "MIDP v2.1" ]
Various capabilities which have been detected.
detected_addons
[ "Yahoo Toolbar v7.3.0", "Windows Live Messenger v15.4", "ImageShack Toolbar v4.3" ]
Addons/Extensions which can be detected via the user agent. This section can only show addons which announce themselves in the user agent.
layout_engine_name WebKit The name of the HTML Layout Engine
layout_engine_version [ "537", "36"] The version number list of the HTML Layout Engine
is_abusive true Whether or not this user agent contains a fragment which could be considered abusive/malicious.
is_weird true Is there something "weird" about this user agent? Contradictory? Bad fragments? Fake format? Find out more.
is_restricted true Does this user agent contain fragments which seem "private", "offensive" or otherwise shouldn't be publically shown to your users/staff? Find out more.
is_spam true Does this user agent seem spammy? Some bots try to flood websites with fake user agents attempting to get backlinks Find out more.
user_agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 The user agent which was sent to the API and parsed is also returned in the response, allowing you to confirm / debug exactly what we received.

User Agent Sanitization

We also provide user agent sanitizing to remove GUIDs, random fragments, encoding problems etc.

Field name Example Value/s Description Basic Standard Pro Enterprise
user_agent_sanitized Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36 If the user agent contains GUIDs, randomised anonymiser fragments, encoding problems etc, we'll remove them and return a "cleaned up" version for you to store in your database. Find out more

Browser Version Checking

The Parse API will check all the major browsers if they're up to date.

These are the fields the version check returns:

Field name Example Value/s Description Basic Standard Pro Enterprise
is_checkable true Is this browser one of the ones we can check if it's up to date?
is_up_to_date true Is this browser up to date?
latest_version
[ "81", "0", "4044", "117" ]
Although you can fetch it via the version numbers api, we include what the latest version of this browser is, so that it's easy to give your visitors a prompt to update to the latest version.
download_url https://www.google.com/chrome/ The URL where your user can download the latest version of their browser. Helpful for giving your users good CTAs
update_url https://www.whatismybrowser.com/guides/how-to-update-your-browser/chrome The URL of our guide to updating their web browser. Helpful for giving your users good CTAs

User Agent Meta-data

If you request it, we'll also include meta-data from our database for the user agent you sent

Field name Example Value/s Description Basic Standard Pro Enterprise
times_seen 2810 How many times our database has "seen" the user agent (from the homepage of whatismybrowser.com, other API requests and submitted web server logs)
first_seen_at 2018-02-03 05:00:46 When did our systems first "see" this user agent?
last_seen_at 2020-04-27 00:00:00 When was the last time our systems "saw" this user agent

Meta Data

Our user agent parser has always provided the most detailed parse information about user agents; but now; we also include helpful meta-data about user agents as well! This will tell you how popular a particular user agent is; when we first added it to our database and the how recently we've seen it. This can help with risk analysis and determining the popularity of a given user agent. Our integration guide has more information.

Want the details?

The best place to start is with our Integration Guide and the interactive API Specification

Get started

The API is free to use and easy to set up, so why not get started right now.