Advertisement
Guide
About the User-Agent Parser
A user-agent string is the line a browser sends to identify itself. Reading one is harder than it looks, because the format is a pile of historical compatibility claims — almost every browser begins with Mozilla/5.0, Chrome claims to be Safari, and Edge claims to be Chrome.
Paste any UA string to see what it actually says — and what it cannot tell you.
Why every browser claims to be Mozilla
In the 1990s, sites checked for "Mozilla" before serving frames. Browsers that supported frames began claiming to be Mozilla to avoid being served a degraded page, and once one did it the rest had to follow. Thirty years later the claim is still there in essentially every browser, which is why Mozilla/5.0 tells you nothing at all.
Why matching order decides everything
Chrome's UA contains the word "Safari". Edge's contains both "Chrome" and "Safari". Opera's contains all three. The only way to identify them correctly is to test for the most specific token first — Edge before Chrome, Chrome before Safari. A parser that checks in the wrong order reports almost everything as Chrome, which is a very common bug.
What a UA string cannot tell you
Several things are deliberately hidden. macOS has reported 10_15_7 since Big Sur regardless of the real version. Windows 10 and Windows 11 both send Windows NT 10.0 and cannot be distinguished. On iOS every browser must use WebKit, so the engine never reflects the browser. Chrome has also been reducing UA detail for years, so precise version numbers are increasingly unreliable.
Do not use this for feature detection
Parsing the UA to decide what a browser supports is the wrong approach, and has been for a long time — strings are spoofed routinely, and the mapping from browser to capability changes with every release. Use feature detection (if ('share' in navigator)) instead. UA parsing is for analytics, logging and crawler handling, where you want to know who called rather than what they can do.
How to use it
- 1Paste a user-agent string, or press “Use my browser”.
- 2Read the browser, engine, OS and device breakdown.
- 3Check the notes for anything the string cannot actually tell you.
- 4Try the samples to see how different clients present themselves.
Frequently asked questions
Why does Chrome say it is Safari?
Chrome includes "AppleWebKit" and "Safari" for compatibility with old sniffing code. A correct parser checks the most specific token first, which is why this tool reports Chrome rather than Safari.
Can I tell Windows 10 from Windows 11?
No. Both report "Windows NT 10.0". The distinction is not in the user-agent string at all — you would need the User-Agent Client Hints API. Click “Use my browser” in a Chromium browser and this tool reads them for you.
Why does macOS always show 10.15.7?
When macOS 11 Big Sur arrived, a version starting with 11 broke sites that parsed the string, so browsers froze it at 10.15.7 — and it has stayed there since. The real version cannot be recovered from the UA string.
Does this detect bots?
Yes. Over 75 crawlers are recognised — search engines, AI crawlers such as GPTBot and ClaudeBot, link previewers, SEO tools and uptime monitors — with who runs each, how to verify it, and the robots.txt rule to block it.
Can I analyse a whole access log?
Yes. Switch to Bulk and paste or open an nginx or Apache log. The tool pulls the user-agent from each line and breaks the traffic down by browser, operating system, device and bot — all in your browser.
Is the string sent anywhere?
No. Parsing happens entirely in your browser.
