Browser & OS Detection · Browser Tests
What Is My User Agent
See your raw user-agent string parsed into browser, engine, version, operating system and device.
Raw user-agent string
What it decodes to
Platform & client hints
Your user-agent string is read from your own browser and is not sent anywhere by this page. Every website you open receives it automatically with each request, whether you run this test or not.
On this page
What a user-agent string actually is
Your user agent is a single line of text your browser attaches to every request it makes. It is the browser introducing itself: this is who I am, this is my version, this is the engine and operating system underneath me. Servers read it to decide what to send back.
The idea is old and practical. A site might serve a lighter page to a phone, offer the right installer to a desktop, or work around a bug in one specific browser. To do any of that it needs a hint about what you are running, and the user-agent string is that hint, sent automatically before you interact with anything.
It travels with every request
You do not opt in to sending it. The string above is delivered to every website, image host, advert and analytics script your browser talks to, which is exactly why it is worth understanding what it gives away.
How to read your string
At a glance a user agent looks like a jumble of words and version numbers, but it follows a loose structure. The breakdown above pulls out the parts that matter, and here is what each is telling you.
- Browser and version. Tokens like Chrome/126, Firefox/128 or Edg/126 name the browser and its release. This is the part sites care about most.
- Rendering engine. AppleWebKit and Gecko identify the engine that lays out pages, Blink (reported through the WebKit token), WebKit itself in Safari, or Gecko in Firefox.
- Operating system. Windows NT 10.0, Mac OS X, Android or an iPhone token tells the site which platform you are on, and sometimes its version.
- Device hints. Words such as Mobile or a device model can appear, which is how sites guess whether to show a touch-first layout.
Why it looks so messy
Nearly every user-agent string starts with the word Mozilla/5.0, even though Mozilla makes only Firefox. That is not a mistake, it is decades of compatibility baggage. In the early web, servers checked for Mozilla before sending modern pages, so every browser started claiming to be Mozilla to avoid being locked out. The same happened with Safari and KHTML, like Gecko. The result is a string that reads like a family tree of browsers that came before.
Because of this, you cannot trust the string to be literally true. It is designed to be over-inclusive so that badly written sites do not break. If you need a reliable read on the browser you are actually using, the browser information test combines the string with live feature checks for a more honest answer.
What sites actually do with it
The string exists to be read on the server, and its practical effects show up there. The classic use is a compatibility decision: serve a mobile layout to a phone, the right installer to a desktop, or a workaround to a browser version with a known gap.
The problem is that the string is a claim, not a measurement. A server cannot verify it, and the tokens are deliberately over-inclusive, so a site that trusts it can be wrong in both directions: refusing a modern browser that reports an old token, or offering a feature to one that lacks it. The reliable alternative is feature detection, asking the browser what it can do rather than who it says it is, which is why modern libraries prefer it.
The other common use is analytics, where the string is filed away with each visit and a record of your browser, version and platform builds up silently.
User agent versus client hints
Modern Chromium browsers are moving away from packing everything into one string. Instead they send a short, generic user agent and expose the precise details, exact version, platform, whether you are on mobile, through User-Agent Client Hints. A site has to request the high-entropy values, which gives browsers a point of control the old string never had.
The panel above shows the low-entropy client hints your browser exposes without being asked, where they are available. On Firefox and Safari you will usually see Not exposed, because those browsers have not adopted the client-hints system and rely on the classic string alone.
Why this matters for tracking
Freezing the user agent shrinks one fingerprinting signal, but the details do not disappear, they move somewhere sites must ask for them. The full picture of how identifiable you are lives in the fingerprint test, not in this string alone.
What your user agent means for privacy
On its own, a user-agent string is a weak identifier. Millions of people run the same browser version on the same operating system, so the string alone puts you in a very large crowd. The concern is what it adds to everything else. Combined with your screen size, fonts, timezone and the graphics signals in a fingerprint, an ordinary user agent becomes one more column that helps a tracker tell you apart.
Spoofing it is tempting but usually backfires. If your string claims to be an iPhone while your screen, touch support and GPU say desktop Windows, the mismatch is itself unusual and easy to flag. The more effective route is a browser that reports a common, deliberately generic string and resists fingerprinting as a whole. Check the fingerprint test to see the difference in context.
How to check and change it
Every browser can show or override the string. Developer tools carry a network conditions panel, usually under the network tab, with a user-agent field you can set to anything, and Chromium's device toolbar does the same while also changing the viewport.
To verify a result, use a page that checks the claim against reality rather than one that simply repeats it. The client hints test shows the values a Chromium browser volunteers, and the browser information test combines the string with live feature checks, so a faked token shows up as a disagreement. Screen size, touch support and the GPU strings will all contradict a string that describes a different device.