User Agent Client Hints

User Agent Client Hints

This page demonstrates how User Agent Client Hints (UA-CH) work.


By default, Chromium will send two headers (sec-ch-ua and sec-ch-ua-mobile). If additional headers are required then the server must request them by sending an appropriately populated 'Accept-CH' header to the client.

This tells the browser that we would like it to send the additional UA-CH HTTP headers in future requests.

Below, you can modify the headers that are being requested using 'Accept-CH' and see the effect this has in the UA-CH headers that are visible to the server.

Please note: as UA-CH is currently only available in Chromium browsers, this test page will not work if you are using Firefox or Internet Explorer for example.

UA-CH headers visible to the server

UA-CH headers requested by the server:

What about third-parties?

By default, UA-CH headers will not be sent to third-parties, even if they are requested using the Accept-CH header.

For example, this page makes a call to a 'third-party' server at, which will respond with the UA-CH headers that it is able to see.

Initially, this will be nothing. Once the 'set permissions-policy' check boxes have been selected, the page at will set the permissions-policy response header with values that allow the browser to send UA-CH headers to Therefore, the next request for will include the Client Hints, which will then appear in the list of values visible to the third-party below.

UA-CH headers visible to third party

UA-CH headers that will be included in set permissions-policy:

Can I use the UA-CH JavaScript API?

There is a client-side JavaScript API for obtaining UA-CH values.

Unfortunately, the values returned by this API are formatted differently to the values that appear in the UA-CH HTTP headers. You can read more about this and how to convert the values to match the header format in our documentation.

Note that some of the values shown here are string representations of JSON objects (converted using JSON.stringify) rather than the true values.

UA-CH JavaScript values

Further reading

We've shown you how User Agent Client Hints work and what values can be returned. Do you want to learn more about the history of Client Hints? Perhaps you have some unanswered questions on the HTTP headers? Don't worry, we've got you covered. Click on the links below to learn more:

  1. Our User Agent Client Hints developer documentation
  2. User Agent Client Hints: your questions answered
  3. Explore the history with Learn Client Hints
  4. More blogs on the topic of Client Hints