Free Online User Agent Parser, Browser, Engine and Device
Paste a User-Agent string and read what it claims: browser and version, engine and version, operating system and version, device type, and whether it is a known bot. The rules are ordered so that the pretending in these strings is handled, since Edge claims to be Chrome and Chrome claims to be Safari.
Enjoying WizTools123? Help keep our server infrastructure 100% free and open for everyone.
Why These Strings Lie
Thirty years of one browser pretending to be another.
In the 1990s some sites served frames only to Netscape, whose UA string began
Mozilla. Internet Explorer wanted the frames, so it called itself
Mozilla/4.0 (compatible; MSIE 4.0). That worked, so everybody copied it.
When WebKit arrived it claimed to be like Gecko, when Chrome arrived it claimed to be
Safari, and when Edge moved to Chromium it added Edg/ at the end of a string
that already claimed to be both Chrome and Safari.
The result is that nearly every modern string names three or four browsers, and only the last token is true. That is why the order of the matching rules is the whole job. A parser that checks for Chrome before checking for Edge reports every Edge visitor as Chrome, and one that checks Safari first reports almost everybody as Safari.
Two more things worth knowing. Chrome has frozen much of its string: the minor version
digits are reported as 0.0.0 and the platform detail no longer changes, so
the string cannot tell you the exact build. And Safari on macOS has reported
Mac OS X 10_15_7 since 2020 whatever the real version is. If your code needs
to know something real, use client hints or feature detection.
How to Parse a User Agent String
A few steps, and nothing is uploaded.
What to Know About User Agent Strings
Including why you should not build anything important on one.
Key Features & Capabilities
What this tool does, and what it deliberately does not.
About the User Agent Parser
A User-Agent string is a single line in which a browser describes itself, and it is the least trustworthy line in HTTP. It exists because early sites decided what to serve based on it, and browsers responded by claiming to be whatever got them the good version of the page. Nobody has ever been able to undo that, so the strings have grown longer and less honest with every generation.
This page parses one anyway, because logs are full of them. The rules are written out rather than pulled from a library, and they run in a deliberate order: crawlers and tools first, then the browsers that name other browsers in their strings, then Chrome, then Safari, which has to be last because almost everything claims to be Safari. The row that says which rule matched is there so you can check the reasoning.
Alongside it the page shows what navigator.userAgentData reports in your own browser, including the high-entropy values where they are available. Those come from an API rather than a string, cannot be scraped out of a log, and are what you should be using in new code. Everything happens locally; the string never leaves the tab.
Frequently Asked Questions
Impersonation, frozen versions, client hints and bots.
Chrome/ and Safari/ as well as Edg/, and a parser that tests for Chrome first finds it first. The only fix is ordering: check for the specific tokens such as Edg, OPR, SamsungBrowser and YaBrowser before you check for Chrome. This page does that, and tells you which token it used.Sec-CH-UA request headers and a matching navigator.userAgentData API that report the same facts in a structured way. The low-entropy parts, brand, mobile flag and platform, are sent by default; anything more detailed has to be asked for. For new code they are better than parsing a string, although they are not available in every browser and are not in your old logs.navigator.maxTouchPoints alongside the string is the practical test. From the string alone, an iPad in that mode genuinely is indistinguishable from a Mac.