MiServe DevTools

Your lid

Pin tools here. They are saved in this browser.

User-Agent Parser

Read a user-agent string as browser, rendering engine, operating system and device type, and see what your own browser reports about itself.

Browser or client
Rendering engine
Operating system
Device type
CPU architecture, when the string states it

What this browser reports about itself

These values are read from the browser you are using now, not from the string above. They stay on this page.

Properties of the browser you are using
PropertyValue
Client Hints brands
Client Hints platform
Languages
Screen size
Device pixel ratio
Time zone
Cookies
WebAssembly
Web Crypto

Runs in your browser. Nothing you paste is uploaded.

About this tool

What a user-agent string is

Nearly every HTTP request carries a User-Agent header in which the client names itself. Browsers have spent decades adding each other's names to it so that sites written for a rival would still serve them: that is why Chrome's string starts with Mozilla/5.0, mentions AppleWebKit, KHTML, like Gecko and Safari, and why Edge and Opera send Chrome's string with Edg/ or OPR/ added at the end.

A parser therefore has to test in a fixed order, from the most specific token to the least. This tool checks for bots and HTTP libraries first, then for browsers that add their own token, and only then for Chrome and Safari, whose tokens many other browsers repeat.

Why Chromium froze most of it

The string is sent to every server with every request, and its details helped to fingerprint people. Chrome therefore reduced it, and other Chromium-based browsers followed. The version is now sent as 131.0.0.0, with only the major number real, and the platform part is a fixed value such as Windows NT 10.0; Win64; x64 or Android 10; K, whatever the real system is.

A site that needs the details has to ask for them through User-Agent Client Hints: the Sec-CH-UA request headers and navigator.userAgentData in JavaScript. The table under the result shows those values when the browser you are using provides them.

Prefer feature detection

Because the string is partly frozen, imitates other browsers and can be set to anything by the client, it is a poor way to decide what code to run. Test for the feature instead: 'share' in navigator in JavaScript, or @supports in CSS. The answer is then right for browsers you have never heard of and for versions that do not exist yet.

Reading the string is still reasonable for statistics, for telling crawlers from people in a log, and for working around a bug in one known browser version.

Questions

Why does my Chrome version end in .0.0.0?

Chrome and other Chromium-based browsers reduce the user-agent string to limit fingerprinting. Only the major version is sent; the minor, build and patch numbers are replaced by zeros. The full version is available through User-Agent Client Hints.

Can a user-agent string tell Brave from Chrome?

No. Brave sends the same string as Chrome on purpose, so a parser can only say that it is a Chromium-based browser. The same is true of any browser that adds no token of its own.

Why does my Mac report macOS 10.15.7?

Safari, Chrome and Firefox stopped updating the macOS version in the string at 10.15, so every later release of macOS reports that number too. The string also says Intel on Macs with Apple silicon.

Can a user-agent string be faked?

Yes. Any client can send any string, and many bots send the string of a normal browser. Do not base a security decision on it. To confirm a crawler such as Googlebot, check the address the request came from, as its operator documents.

Is the string I paste sent to a server?

No. It is parsed by JavaScript in your browser tab, and the tool makes no network request with it.

More in Network