User Agent Parser — What Is My User Agent, and What Does It Mean?
See your browser's user-agent string and decode any UA into browser, version, engine, OS and device — with the caveats modern browsers force on it.
🔒 Runs in your browser — files never uploaded ⚡ No signup 💯 Free
—
JSON
Find out what your browser tells websites about itself, and decode any user-agent string into its parts: browser and version, rendering engine, operating system, device type and model, and whether it is a known crawler. Paste a UA from a log file, a support ticket or an analytics report, or parse your own with one click.
The parser is honest about what a modern UA string cannot tell you: Chrome freezes the Windows, macOS and Android versions, and Windows 11 calls itself Windows 10. Those cases are flagged rather than reported as fact.
How to use User Agent Parser
- Your own user agent is shown at the top — copy it for a bug report, or click "Parse mine".
- Paste any other UA string in the box to decode it; try the samples for typical shapes.
- Read the notes under the result: they explain any frozen or ambiguous values.
- Copy the JSON to paste into an issue or a test.
Reading a user-agent string
A UA string is a historical accident. Every browser claims to be Mozilla (Netscape's codename) for compatibility with 1990s server checks; every WebKit browser says "like Gecko" and "Safari"; every Chromium browser says "Chrome". The real identity is in whichever token comes last in the chain: Edg/ for Edge, OPR/ for Opera, SamsungBrowser/ for Samsung, and on iOS CriOS/ and FxiOS/ for Chrome and Firefox — which, despite the names, run on Apple's WebKit because iOS allows nothing else. This parser checks the specific tokens before the generic ones, which is the whole trick.
What the string no longer tells you
- Windows 11 reports "Windows NT 10.0". There is no way to distinguish 10 from 11 in the UA; only Client Hints (
Sec-CH-UA-Platform-Version) can. - macOS is frozen at "10_15_7" in Safari and Chrome, whatever the real version.
- Android in Chrome is frozen at version "10" and the device model at "K".
- Minor browser versions in Chrome are zeros ("140.0.0.0").
- iPads in "desktop website" mode claim to be a Mac.
This is deliberate — the "UA reduction" programme cuts the fingerprinting surface — and it means any tool that reports "Windows 10" for a Windows 11 machine is quietly wrong. The replacement is User-Agent Client Hints, a set of headers and a JavaScript API (navigator.userAgentData) that give brands, platform and mobile flag by default and more on request; when your browser supports it, the values are shown under your UA above.
Bots
Crawlers identify themselves by name — Googlebot, bingbot, GPTBot, ClaudeBot, AhrefsBot — and are flagged as such, since a bot's "browser" is meaningless. A UA can be faked by anyone with a request library, so a claimed Googlebot in your logs should be verified by reverse DNS before you trust it.
To see the request headers a server actually receives, including the UA and Client Hints, use the HTTP header checker.
Frequently asked questions
It says Windows 10 but I am on Windows 11.
Every browser reports Windows 11 as "Windows NT 10.0"; the UA string cannot tell them apart, which is why the result reads "10 or 11". Only Client Hints (the platform version header) distinguish them, and only when a site asks.
Why is the macOS or Android version wrong?
Chrome and Safari freeze those values to reduce fingerprinting: macOS shows 10.15.7 and Android shows 10 with model "K" no matter what you run. The parser marks them as frozen rather than reporting them as real.
How do I know if a user agent is a real Googlebot?
You cannot from the string alone — anyone can send it. Do a reverse DNS lookup on the requesting IP: genuine Google crawlers resolve to googlebot.com or google.com, and the forward lookup of that name returns the same IP.
Should I use user-agent sniffing on my site?
Almost never for features — test for the feature itself. It is still useful for analytics, logs, bug reports and serving different content (not code) to bots. If you must branch on the browser, use Client Hints where available and treat the UA as a fallback.
Is my user agent sent to this site's server?
It is sent with every request to every website — that is what the header is for. The parsing here happens in your browser, and nothing you paste is uploaded.