Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

Note: This feature is available in Web Workers.

The NavigatorUAData interface of the User-Agent Client Hints API returns information about the browser and operating system of a user.

An instance of this object is returned by calling Navigator.userAgentData or WorkerNavigator.userAgentData. Therefore, this interface has no constructor.

Note: The terms high entropy and low entropy refer to the amount of information these values reveal about the browser. The values returned as properties are deemed low entropy, and unlikely to identify a user. The values returned by NavigatorUAData.getHighEntropyValues() could potentially reveal more information. These values are therefore retrieved via a Promise, allowing time for the browser to request user permission, or make other checks.

Instance properties

Returns an array of brand information containing the browser name and version.

Returns true if the user-agent is running on a mobile device.

Returns the platform brand the user-agent is running on.

Instance methods

Returns a Promise that resolves with a dictionary object containing the high entropy values the user-agent returns.

A serializer that returns a JSON representation of the low entropy properties of the NavigatorUAData object.


Getting the brands

The following example prints the value of NavigatorUAData.brands to the console.


Returning high entropy values

In the following value a number of hints are requested using the NavigatorUAData.getHighEntropyValues() method. When the promise resolves, this information is printed to the console.

  .then((ua) => {


User-Agent Client Hints
# navigatoruadata

Browser compatibility

BCD tables only load in the browser

See also