User-Agent Parser
Break a User-Agent string into browser, engine, OS, device and bot details.
Results are provided as is, for general information. Check anything important before relying on it. See the Terms of Use.
About this tool
Breaks any User-Agent string into its parts: browser and version, rendering engine, operating system and version, device vendor, model and type, CPU architecture, plus a first-party bot table that flags Googlebot, bingbot, curl, wget, link previews and friends — detection the v1 parser core leaves out. Your own UA is filled in when the page loads; paste over it to dissect any other string. Parsing runs in your browser with a bundled parser and a small first-party additions table — the string is never sent anywhere.
When to use it
Questions
Why does every User-Agent start with Mozilla/5.0?
Historical inertia. In the 1990s browser wars, servers served rich pages only to Netscape (Mozilla) — so every browser since has pretended to be Mozilla, and each new engine appended its own compat tokens: MSIE pretending to be Gecko, Chrome claiming Safari's tokens alongside its own. The string is a layer cake of frozen lies, which is exactly why parsing it mechanically beats eyeballing it.
Is my User-Agent a privacy problem?
On its own it identifies your browser and OS, not you. It becomes a problem as one ingredient of fingerprinting: combined with screen size, fonts and other headers, a UA can help single your device out of a crowd. Reducing or freezing it helps a little; browsers now ship frozen, generic UAs for exactly this reason — which is also why version info from a UA is increasingly coarse.
Why is my modern browser reported as Safari or an old Chrome?
Frozen compat tokens. Chrome and Edge still ship the Safari token and AppleWebKit engine marker for site compatibility, and Firefox's UA still claims Gecko/20100101. The parser reports the real engine from the version tokens; when a string is too vague to pin down, the field simply stays null instead of guessing.
Why does curl show up as a bot?
The bot table classifies command-line clients like curl, wget and python-requests as non-browser clients, the same way crawlers are flagged. That is what log analysis usually wants: a rule that branches on 'automated client' should catch both Googlebot and curl, and the label tells you which you are looking at.