Client Hints
Client Hints are a set of HTTP Headers and a JavaScript API that allow web browsers to send detailed information about the client device and browser to web servers. They are designed to be a successor to User-Agent, and provide a standardized way for web servers to optimize content for the client without relying on unreliable user-agent string-based detection or browser fingerprinting techniques.
Your Web Browser | ||
| HTTP User-Agent | Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com) | |
Client Hints JavaScript API | ||
| API Support | ||
| brands | ||
| mobile | ||
| platform | ||
| platformVersion | ||
| architecture | ||
| bitness | ||
| wow64 | ||
| model | ||
| uaFullVersion | ||
| fullVersionList | ||
| formFactors | ||
Client Hints HTTP Headers | ||
Accept-CH headers at the HTTP level or an asynchronous getHighEntropyValues() promise call in JavaScript. On the other hand, Low Entropy hints are sent by default every time, regardless of whether or not the server has opted in to receiving them. Client Hints that are detected as Low Entropy because they were received without prompting are marked with an asterisk (*).Sec-CH- prefix while others may not. The latest versions of the specification require all hints to have this prefix, but some earlier implementations may still accept headers without it. To ensure future compatibility, the Client Hints Test detects both behaviors.List of known Client Hints
Sec-CH-UArepresents a user agent's branding and version.Sec-CH-UA-Full-Versionrepresents the user agent’s full version (deprecated in favor ofSec-CH-UA-Full-Version-List).Sec-CH-UA-Full-Version-Listrepresents the full version for each brand in its brands list.Sec-CH-UA-Platformrepresents the platform on which a given user agent is executing.Sec-CH-UA-Platform-Versionrepresents the platform version on which a given user agent is executing.Sec-CH-UA-Archrepresents the architecture of the platform on which a given user agent is executing.Sec-CH-UA-Bitnessrepresents the bitness of the architecture of the platform on which a given user agent is executing.Sec-CH-UA-WoW64is used to detect whether or not a user agent binary is running in 32-bit mode on 64-bit Windows.Sec-CH-UA-Modelrepresents the device on which a given user agent is executing.Sec-CH-UA-Mobileis used to detect whether or not a user agent prefers a «mobile» user experience.Sec-CH-UA-Form-Factorsrepresents the form-factors of a device, historically represented as a <deviceCompat> token in the User-Agent string.Sec-CH-Lang(orLang) represents the user's language preference.Sec-CH-Save-Data(orSave-Data) represents the user agent's preference for reduced data usage.Sec-CH-Widthgives a server the layout width of the image.Sec-CH-Viewport-Width(orViewport-Width) is the width of the user's viewport in CSS pixels.Sec-CH-Viewport-Heightrepresents the user-agent’s current viewport height.Sec-CH-DPR(orDPR) reports the ratio of physical pixels to CSS pixels of the user's screen.Sec-CH-Device-Memory(orDevice-Memory) reveals the approximate amount of memory the current device has in GiB. Because this information could be used to fingerprint users, the value ofDevice-Memoryis intentionally coarse. Valid values are0.25,0.5,1,2,4, and8.Sec-CH-RTT(orRTT) provides the approximate Round Trip Time, in milliseconds, on the application layer. TheRTThint, unlike transport layer RTT, includes server processing time. The value ofRTTis rounded to the nearest 25 milliseconds to prevent fingerprinting.Sec-CH-Downlink(orDownlink) expressed in megabits per second (Mbps), reveals the approximate downstream speed of the user's connection. The value is rounded to the nearest multiple of 25 kilobits per second. Because again, fingerprinting.Sec-CH-ECT(orECT) stands for Effective Connection Type. Its value is one of an enumerated list of connection types, each of which describes a connection within specified ranges of both RTT and Downlink values. Valid values forECTare4g,3g,2g, andslow-2g.Sec-CH-Prefers-Color-Schemerepresents the user's preferred color scheme.Sec-CH-Prefers-Reduced-Motionis used to detect if the user has requested the system minimize the amount of animation or motion it uses.Sec-CH-Prefers-Reduced-Transparencyis used to detect if the user has requested the system minimize the amount of transparent or translucent layer effects it uses.Sec-CH-Prefers-Contrastis used to detect if the user has requested that the web content is presented with a higher (or lower) contrast.Sec-CH-Forced-Colorsis used to detect if the user agent has enabled a forced colors mode where it enforces a user-chosen limited color palette on the page.