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

"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",
"software": "Chrome 60", "software_name": "Chrome", "software_name_code": "chrome", "software_version": "60", "software_version_full": [ "60", "0", "3112", "90" ],

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.

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",
"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",

More hardware than a Home Depot

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..

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",
"version_check": { "is_checkable": true, "is_up_to_date": false, "latest_version": [ "64", "0", "3282", "119" ], "update_url": "", "download_url": "" }

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!

If it's not, then it's very easy to what the latest version is and encourage them to update their browser.

Find out more about this feature: Check if your users are up to date

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 Detail

You'll get different amounts of detail in the user agent parse responses, depending on which API plan that you're using.

Here's the break-down of which fields you'll get access to depending on your plan.

Field name Example Value 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_version Mavericks 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_name_code mac-os-x A "slugged" version of the operating_system_name. Useful for referring to in your code/database.
operating_system_flavour Debian 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 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 Galaxy Tab S2 9.7" A nice, readable description of the Operating Platform
operating_platform_code SM-T817R4 The product number/code number or other technical description of the operating platform.
operating_platform_vendor_name Samsung The name of the vendor/manufacturer of the platform.
[{ "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!)
{ "Dalvik library version": "1.6.0", "System Build": "SU6-7.3" }
The product number/code number or other technical description of the operating platform.
{ "10": [ "Internet Explorer 7 Compatibility View" ], "20": [ "Possibly running on Windows Server 2008", "Tablet PC" ] }
The product number/code number or other technical description of the operating platform.
[ "Touch capability", "Silk Accelerated", "MIDP v2.1" ]
Various capabilities which have been detected.
[ "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.
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.

Want the details?

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

Get started

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