User-Agent String Parser
Break a user-agent string into browser, engine, OS and device.
What you paste
Parsed in your browser — never uploadedHow this reads your output
The string is matched against patterns in a deliberate order, because user-agent strings are an accumulated fiction. Every browser claims to be Mozilla, most claim to be Safari, and Chromium-based browsers all claim to be Chrome, each layer added to get past sniffing that excluded it. Edge is therefore checked before Chrome, Chrome before Safari, and so on. Automated clients are detected separately, since they usually identify themselves plainly.
What the results mean
- Rendering engine
- Blink, WebKit or Gecko. More useful than the browser name for anything to do with rendering behaviour, since every Chromium browser shares one engine.
- Frozen values
- Windows reports 10.0 regardless of the real version and macOS reports 10.15.7 permanently. Both are deliberate, to reduce fingerprinting.
- Automated client
- The string identifies itself as a crawler or a library. Well-behaved automation says so; anything hostile does not.
Common problems and fixes
- Analytics reports an impossible browser or version
- Either a client with a modified user-agent, which privacy tools do routinely, or a bot copying a real browser string. Neither is detectable from the string alone. Behaviour is a far better signal than declaration: request rate, whether assets are fetched, and whether script runs at all.
- Feature detection based on the user-agent broke a browser
- It always does eventually, which is why the whole convention exists. Test for the feature instead: check whether the function or property is present rather than deciding from a version number. Where you genuinely need platform information, Client Hints are the supported route and give the browser control over what it reveals.
Frequently asked questions
Why does every browser claim to be Mozilla?
Because in the 1990s servers checked for Mozilla before sending frames, so every competing browser started claiming to be it. Each subsequent generation added another claim for the same reason, and the strings are now a fossil record of thirty years of compatibility sniffing.
Is the user-agent being removed?
Reduced rather than removed. Chrome and others have frozen the platform and version portions, so a string carries far less detail than it used to. Client Hints replace it for the legitimate uses, and the reduction is specifically aimed at fingerprinting.
Can I tell a phone from a desktop reliably?
Not from the string alone, and it is usually the wrong question. iPadOS deliberately identifies as a Mac, desktop-mode toggles exist on most mobile browsers, and screen size is what layout should respond to anyway. Media queries and pointer detection answer the question you actually have.
Put this on your own site
Free to embed, no attribution required beyond the source link the frame carries itself. It runs entirely in your visitor's browser, sets no cookies and loads no third-party script.
<iframe src="https://runthetests.com/embed/user-agent-parser/" width="100%" height="720" style="border:1px solid #e5e5e5;border-radius:8px" title="User-Agent String Parser" loading="lazy"></iframe>
Preview it at https://runthetests.com/embed/user-agent-parser/. Embedded pages are marked noindex, so yours stays the canonical copy — not this one.