Boost revenues with better device and location data
Identify AI and then put it in its place
Be sure that your users are who they say they are
Get more from your existing analytics tools with real-time data
Smooth experiences for AR, streaming, and gaming
Enhance the TAC with device-specific information
Wow customers with adaptive online experiences
Faster, deeper, more accurate data means better decisions
Enhance streaming performance with intelligent data insights
THE fastest and most accurate available
Behind the door of every IP address, a world of insight and opportunity awaits you.
Powered by OpenStreetMap
Multi-sourced TAC device data for networks
Add your own data services to Pipeline API
All the latest developer documents and examples
Generate Robots.txt for specific usage
Got HTTP headers? Paste them here and test 51Degrees
Got IP address? Paste it here and test 51Degrees
Got a TAC? Paste it here and test the 51Degrees TAC Solution
On-premise device data downloads and open source code
In the cloud or in your network
Quick-reference guide to all the device detection properties
Device data based on User-Agent Client Hints and User-Agents
Version 3 and 3.2 developer documentation
All the latest data updates, news, and opinions
Frequently asked questions
Device detection competitor comparison
IP Intelligence competitor comparison
See how we've helped others like you
Explore the device data for active and total profile metrics
Everything you need to know about User-Agent Client Hints
Improve your website with mobile emulators and real device labs
This page demonstrates how User-Agent Client Hints (UA-CH) work.
By default, Chromium will send two headers (sec-ch-ua and sec-ch-ua-mobile). If additional headers are required then the server must request them by sending an appropriately populated 'Accept-CH' header to the client.
This tells the browser that we would like it to send the additional UA-CH HTTP headers in future requests.
Below, you can modify the headers that are being requested using 'Accept-CH' and see the effect this has in the UA-CH headers that are visible to the server.
Please note: as UA-CH is currently only available in Chromium browsers, this test page will not work if you are using Firefox or Internet Explorer for example.
By default, UA-CH headers will not be sent to third-parties, even if they are requested using the Accept-CH header.
For example, this page makes a call to a 'third-party' server at 51degrees.tv, which will respond with the UA-CH headers that it is able to see.
Initially, this will be nothing. Once the 'set delegate-ch' check boxes have been selected, the page at 51degrees.com will set the delegate-ch directive with values that allow the browser to send UA-CH headers to 51degrees.tv. Therefore, the next request for 51degrees.tv will include the Client Hints, which will then appear in the list of values visible to the third-party below.
There is a client-side JavaScript API for obtaining UA-CH values.
Unfortunately, the values returned by this API are formatted differently to the values that appear in the UA-CH HTTP headers. You can read more about this and how to convert the values to match the header format in our documentation.
Note that some of the values shown here are string representations of JSON objects (converted using JSON.stringify) rather than the true values.
We've shown you how User-Agent Client Hints work and what values can be returned. If you want to learn more about the history of Client Hints, click on the links below:
Input your User-Agent Client Hints into our HTTP header parser to see what we detect the device as. You can also input the User-Agent for a more accurate device detection.
User-Agent Client Hints developer documentation
Explore the history with Learn Client Hints
More blogs on the topic of Client Hints