Client hints split browser details into a small default set and a larger set a site must request. Here is what each field carries, and which one matters most.
On this page
A negotiation, not a privacy switch
Client hints are not a privacy switch, and they are not one string.
For years, a browser introduced itself by volunteering everything at once: a user-agent string sent with every request. User-Agent Client Hints replaces that with a negotiation. The browser offers a small amount of information by default, and a site has to ask — explicitly, and with the server’s cooperation — before it receives anything finer.
It also moves a passive, always-on signal into a channel the browser controls, a genuine improvement for browser fingerprinting in principle. What it is not is a guarantee: a site that receives no hints simply falls back to the older signal.
Two tiers of information
Client hints come in two layers, and the distinction matters more than any field.
low-entropy— hints that arrive with every request automatically. They describe your browser family, whether you are on mobile, and your operating system family, and are coarse on purpose: many millions of people share each combination.high-entropy— the specific ones: exact platform version, device model, CPU architecture, the full version list. A site only receives these if it asks, and the browser decides whether to answer.
The word entropy here means identifying power: low-entropy values narrow the crowd slightly, high-entropy values can narrow it to very few people.
Three hints travel by default, visible in the HTTP headers of any request your browser makes.
Sec-CH-UAlists the browser brands and their major versions.Sec-CH-UA-Mobileis a boolean, true on phones and tablets.Sec-CH-UA-Platformnames the operating system family, such as Windows, macOS, Android or Linux.
Notice what is missing: no minor version, no build number, no device name, no architecture. A site can tell a Windows desktop Chrome user from an Android one and little else. Compare that with the older user agent string, which announced a build number and a processor family to anyone who logged the header.
Asking for the rest
The finer details live behind a JavaScript call. A page runs navigator.userAgentData.getHighEntropyValues() and passes the field names it wants.
platformVersion— the operating system version, which on Windows can distinguish 10 from 11, something the user agent never did.architectureandbitness— the CPU and whether it is 32- or 64-bit.fullVersionList— the complete browser version rather than the major number alone.model— the device model, meaningful mainly on Android.wow64— whether a 32-bit browser runs on a 64-bit system.
The browser returns exactly those fields and no more. A site cannot ask for a hint the browser has decided not to provide.
There is a server-side half. To receive high-entropy hints as headers, a site announces which ones it wants using an Accept-CH response header, and the browser remembers that request for that origin only. A site can only request hints for its own origin, the browser can decline, and third-party frames need an explicit policy, so a cross-site tracker cannot help itself to your device model by embedding an iframe.
The one field worth a second look
Most of these hints are coarse enough to be reassuring. The one that deserves a second look is model.
On a desktop, model is typically empty and tells a site nothing. On Android it names the exact handset — something like Pixel 7 or SM-G991B. That is a specific object in the world, and combined with the platform version and the full version list, it makes the pool of matching people small. Google has reduced what it reports over time, yet it remains the most distinctive field in the set.
A phone manufacturer’s support pages have a real argument for asking. Sites that do not need it and request it anyway are telling you about their priorities.
Not every browser implements client hints. Safari does not support them and relies on a reduced user agent instead, so its users present a different, simpler profile. Firefox supports a subset; Chrome, being the originator, is the most complete. That fragmentation has a side effect: the browser you choose changes not just what is revealed but which mechanism reveals it.
A short checklist
The way to understand this is to look at what your browser offers, in three places.
Sec-CH-UA— the client hints test shows the low-entropy values your browser volunteers and the high-entropy ones it surrenders on request.user-agent— compare with the raw header on the user agent tool, and the split between old signal and new becomes obvious.browser-information— the browser information page collects everything your browser announces in one place.