ToolzYard

Fast, practical, browser-based developer tools

Browser Tool • Free Online • No Signup

User-Agent Parser Online

Parse user-agent strings to identify browser family, operating system, rendering engine, device type, and raw user-agent details instantly. This tool is useful for debugging, logging analysis, QA investigation, and browser support checks.

Browser
-
OS
-
Device Type
-
Engine
-
Ready to parse user-agent strings.
Fast • Free • Browser-Based

Inspect browser, OS, engine, and device details instantly

User-agent strings appear in analytics, logs, support tickets, bug reports, and client-side diagnostics. This parser helps you quickly understand which browser, operating system, device type, and rendering engine a request may be using.

✅ Browser detection
✅ OS detection
✅ Device type guess
✅ Use current UA

Helpful for debugging and support

User-agent parsing is useful when reviewing access logs, investigating browser-specific issues, validating client environments, or checking what kind of device a request likely came from.

For more details about site usage and analytics, read our Privacy Policy.

How to use this User-Agent Parser

Paste a user-agent string into the input field or load your current browser’s user-agent automatically, then run the parser to inspect the detected browser, OS, device type, and rendering engine.

  1. Paste a user-agent string into the input box.
  2. Or click Use My Current User-Agent.
  3. Click Parse User-Agent.
  4. Review the detected values and raw parsed output.

Example output

Browser: Google Chrome
OS: Windows 10/11
Device: Desktop
Engine: WebKit/Blink

Common use cases

  • Browser compatibility checks
  • Support ticket investigation
  • Log analysis
  • QA validation
  • Client environment review

Why every browser lies in its User-Agent string

Read a modern User-Agent string and it appears to claim several browsers at once. A current Chrome sends something like Mozilla/5.0 ... AppleWebKit/537.36 (KHTML, like Gecko) Chrome/xxx Safari/537.36 — announcing Mozilla, KHTML, and Safari while actually being none of them. This is not a bug; it is thirty years of accreted compatibility lies, each one added to get past servers that sniffed the UA string and served a degraded page otherwise.

The chain of history: Netscape called itself Mozilla, and sites checked for “Mozilla” before sending rich pages, so Internet Explorer also claimed to be “Mozilla (compatible; MSIE...)”. Everyone then copied everyone: Safari claimed KHTML (its engine's ancestor) “like Gecko”; Chrome claimed both Safari and KHTML to inherit their working code paths; Edge, now on Chromium, appends its own token but keeps Chrome and Safari so sites treating it as Chrome behave. The token soup exists because removing any single lie risked some old server serving a broken page.

Don't drive features off the User-Agent

Because the string is a compatibility fiction, using it to decide what a browser can do is fragile and routinely wrong. Version numbers get spoofed, in-app webviews and privacy modes freeze or fake the UA, and a regex keyed on “Safari” will match Chrome, which also claims Safari. UA sniffing is also how sites accidentally lock out new browsers: an unrecognised string falls through to a “please upgrade” branch even though the browser is perfectly capable.

The robust alternative is feature detection: ask directly whether a capability exists — 'IntersectionObserver' in window, CSS.supports('display: grid'), typeof navigator.share === 'function' — and branch on the answer. It cannot be faked into a wrong result the way a UA string can, and it keeps working for browsers that didn't exist when you wrote the code. Reserve UA parsing for coarse analytics and support diagnostics, not runtime decisions.

Client Hints and the shrinking User-Agent

The industry is actively retiring the UA string. Chromium's User-Agent reduction deliberately freezes and trims it — capping the version detail and normalising the platform — so it leaks less and can't be relied on for fine-grained detection. In its place come User-Agent Client Hints: structured values a server can request, such as Sec-CH-UA, Sec-CH-UA-Platform, and Sec-CH-UA-Mobile, or read in JavaScript through navigator.userAgentData.

The shift matters for two reasons. High-entropy details like the full platform version are no longer volunteered by default — a server has to ask for them, which makes passive fingerprinting harder. And the data arrives already parsed into fields, so you stop reverse-engineering a string with brittle regexes. Any UA parsing you rely on today should be treated as a fallback that will return progressively less detail over time.

The User-Agent is also a tracking signal

Even without cookies, the UA string contributes to a browser fingerprint. On its own it is coarse, but combined with your language, timezone, screen size, installed fonts, and graphics quirks it helps single out one browser among millions. A rare or heavily customised UA makes you more identifiable, not less — one reason privacy-focused browsers standardise their UA so users blend together, and part of why the platform is moving to Client Hints that reveal detail only on request.

This parser runs entirely in your browser. The string it reads is your own navigator.userAgent, or whatever you paste in, and the parsing happens in local JavaScript — nothing is sent to a server. That is why it works offline, and why pasting an arbitrary UA string is safe: you are only running text through a local pattern match.

How to read a User-Agent string without being fooled

If you must parse a UA string, read the right tokens. The rendering engine is more reliable than the browser name: AppleWebKit/Blink underlies Chrome, Edge, and most Chromium browsers, Gecko is Firefox, and only Safari pairs WebKit with no Chromium token. Because Chrome, Edge, Opera, Brave, and Samsung Internet all carry Chrome/, the distinguishing token is the vendor suffix (Edg/, OPR/, SamsungBrowser/) that appears after it — miss that and you will label them all as Chrome.

Two more practical notes. The literal token Mobile (present in mobile Safari and Chrome) is a more honest mobile signal than trying to read a device model. And many of the highest-traffic user-agents are not browsers at all: Googlebot, bingbot, monitoring probes, and HTTP libraries like curl and python-requests all identify themselves here — which is why a UA parser is often more useful for classifying bots than for pinning down a human's browser.

Frequently Asked Questions

Why does Chrome's user-agent mention Safari, KHTML, and Mozilla?

Historical compatibility. Each browser copied the tokens sites already checked for, so every engine inherited the labels of its predecessors. Chrome claims Safari and KHTML “like Gecko,” and everyone still opens with “Mozilla/5.0,” purely to avoid old servers serving a degraded page.

Should I use the user-agent to detect browser features?

No. The UA string is spoofable, frozen, and full of misleading tokens, so keying features off it breaks constantly. Use feature detection instead — test for the capability directly (for example CSS.supports(...) or 'IntersectionObserver' in window), which can't be faked wrong.

What are Client Hints and navigator.userAgentData?

They are the modern replacement for the UA string: structured, opt-in values (Sec-CH-UA, platform, mobile flag) a server requests or JavaScript reads via navigator.userAgentData. They give you parsed fields instead of a string to regex, and reveal high-entropy detail only when asked.

Are the parsed results always accurate?

No. A user-agent can be changed, frozen, or faked — webviews and privacy tools routinely do — and User-Agent reduction is deliberately trimming the detail available. Treat parsed browser and OS values as a best-effort reading of a string that is designed to be imprecise.

Does this tool send my user-agent anywhere?

No. It reads navigator.userAgent (or the text you paste) and parses it in local JavaScript in your browser. Nothing is uploaded, which is why it works offline and why testing an arbitrary UA string is safe.

Can the user-agent be used to track me?

Partly. On its own it is coarse, but it feeds a browser fingerprint alongside your timezone, language, screen, and fonts. An unusual or heavily customised user-agent makes you easier to single out — blending in is what reduces trackability, which is one reason the UA is being reduced.