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-UA
represents a user agent's branding and version.Sec-CH-UA-Full-Version
represents the user agent’s full version (deprecated in favor ofSec-CH-UA-Full-Version-List
).Sec-CH-UA-Full-Version-List
represents the full version for each brand in its brands list.Sec-CH-UA-Platform
represents the platform on which a given user agent is executing.Sec-CH-UA-Platform-Version
represents the platform version on which a given user agent is executing.Sec-CH-UA-Arch
represents the architecture of the platform on which a given user agent is executing.Sec-CH-UA-Bitness
represents the bitness of the architecture of the platform on which a given user agent is executing.Sec-CH-UA-WoW64
is used to detect whether or not a user agent binary is running in 32-bit mode on 64-bit Windows.Sec-CH-UA-Model
represents the device on which a given user agent is executing.Sec-CH-UA-Mobile
is used to detect whether or not a user agent prefers a «mobile» user experience.Sec-CH-UA-Form-Factors
represents 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-Width
gives 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-Height
represents 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-Memory
is 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. TheRTT
hint, unlike transport layer RTT, includes server processing time. The value ofRTT
is 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 forECT
are4g
,3g
,2g
, andslow-2g
.Sec-CH-Prefers-Color-Scheme
represents the user's preferred color scheme.Sec-CH-Prefers-Reduced-Motion
is used to detect if the user has requested the system minimize the amount of animation or motion it uses.Sec-CH-Prefers-Reduced-Transparency
is used to detect if the user has requested the system minimize the amount of transparent or translucent layer effects it uses.Sec-CH-Prefers-Contrast
is used to detect if the user has requested that the web content is presented with a higher (or lower) contrast.Sec-CH-Forced-Colors
is 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.