Client hints

Client hints are HTTP headers and a JavaScript API that replace parts of the user agent string with structured details about the browser and device.

What client hints are

Client hints are a newer way for a browser to describe itself. Instead of packing everything into the user agent string, the browser sends a few small headers by default and more on request. Sec-CH-UA lists the browser brands and major versions, Sec-CH-UA-Mobile says whether it is a mobile browser, and Sec-CH-UA-Platform names the operating system. A server that wants more can ask, via an Accept-CH response header, for the full version, the platform version, the CPU architecture, the device model, or the bitness, and the browser sends those on later requests. The same data is available to scripts through navigator.userAgentData.

Chromium-based browsers send client hints; Firefox and Safari currently do not, and their absence is itself a hint about which engine is in use.

Why it matters

Client hints were introduced to reduce passive fingerprinting: low-entropy values are sent by default, and the detailed ones only when a site asks. In practice they created a second source of truth that fraud systems compare against the first. If the user agent string says Chrome 130 on Windows and Sec-CH-UA-Platform says "Linux", or Sec-CH-UA lists a different version, the browser has been modified. Antidetect tools that spoof only the user agent string, or only the JavaScript side and not the headers, produce exactly this contradiction.

The high-entropy values are also precise. Sec-CH-UA-Full-Version-List and Sec-CH-UA-Platform-Version can pin down a browser build and an operating system release, which adds to the browser fingerprint when a site requests them.

How to check

The HTTP headers tool shows the Sec-CH-UA* headers your browser sent next to the User-Agent header, so you can see at a glance whether they agree. The user agent tool parses the string, and the browser fingerprint page reads navigator.userAgentData and compares it with the headers and the JavaScript platform.

How to keep them consistent

If you change the user agent, change the client hints with it, including the values the browser sends only on request. Antidetect browsers that build a profile from a real browser version handle this automatically; a manual override in a regular browser usually does not. Re-test after a browser update, because the brand list and version numbers change with each release.

A common misconception

Turning off client hints is not a neutral choice. A Chromium browser that sends none looks like a modified browser, since a stock one always sends the three default headers.

Sponsored · advertise here