DEVELOPER TOOLS

User-Agent Parser

Parse a User-Agent string to identify the browser, rendering engine, OS, and device type — entirely in your browser, nothing uploaded.

How to parse a User-Agent string

A User-Agent is an HTTP header every browser sends with its requests, identifying itself (in principle) by name, version, rendering engine, and operating system. Developers commonly need to read one when debugging a browser-specific issue, reviewing server access logs, checking analytics data, or investigating suspicious traffic.

  1. Paste the User-Agent string from a request header, log, or analytics tool into the field above.
  2. Read the detected browser, engine, OS, device type, and bot/crawler status.
  3. Check the attached notes for reduced, frozen, ambiguous, or spoofable values before treating any result as certain.

For example, the User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36 parses to Chrome 128, the Blink engine, Windows 10 / 11 (NT 10.0 reported), and desktop — each with its own note explaining exactly what that result can and can't confirm.

Can a User-Agent string be trusted?

Not fully, and this matters for how you read the results above. A User-Agent string is just text the browser chooses to send — there's no enforcement mechanism verifying it's accurate, and anyone can set it to literally anything (browser extensions, developer tools, and command-line tools like curl all let you override it trivially). Beyond outright spoofing, decades of compatibility history mean most real browsers include tokens that "impersonate" other browsers on purpose: Chrome's own UA string contains the word "Safari," and Edge, Opera, Samsung Internet, and the iOS builds of Chrome and Firefox all contain "Chrome" and/or "Safari" tokens too, specifically so older sites that only checked for those tokens would keep working. This tool checks for the most specific tokens first (e.g. Edge's own Edg/ token) precisely so it doesn't misidentify these browsers as whichever older browser they happen to also mention.

Why can't a User-Agent distinguish Windows 10 from Windows 11?

This isn't a bug in this tool — it's a real, well-documented limitation of the User-Agent string itself. Microsoft's own developer documentation states directly that the operating system version token in the User-Agent header "hasn't been updated for Windows 11, and still reports Windows NT 10.0." Distinguishing Windows 10 from Windows 11 requires a separate mechanism called User-Agent Client Hints (specifically the Sec-CH-UA-Platform-Version header), which isn't part of the User-Agent string at all and isn't sent by every browser. When this tool detects Windows NT 10.0, it reports "Windows 10 / 11 (NT 10.0 reported)" because the UA string alone cannot distinguish the two — rather than confidently guessing which one it actually is.

Frequently asked questions

Is my User-Agent string sent anywhere when I use this tool?

A User-Agent string you paste into this tool is processed locally and is not submitted by the tool. "Use my browser's UA" only reads navigator.userAgent locally. Note that browsers normally send their own User-Agent header as part of ordinary HTTP requests when loading websites, including this one — that's a separate, standard part of how HTTP works, not something this tool does.

Why does the "rendering engine" sometimes have a note attached?

Every current Chromium-family browser (Chrome, Edge, Opera, and others) still reports AppleWebKit/537.36 in its User-Agent string for legacy compatibility, even though the actual engine has been Blink (which forked from WebKit in 2013) for over a decade. Separately, browsers on iOS — including Chrome and Firefox for iOS — have traditionally been required to actually render with WebKit under the hood regardless of which browser-identity tokens their User-Agent string reports, but this is no longer an absolute guarantee: Apple permits authorized alternative browser engines in the EU on iOS 17.4+/iPadOS 18+, and in Japan on iOS 26.2+. This tool flags both cases explicitly rather than reporting a possibly-misleading engine name without context.

How reliable is the bot/crawler detection?

It identifies a User-Agent string that claims to be a known bot (like Googlebot or Bingbot) by matching common, well-known bot tokens — it is not a cryptographic or IP-based verification, and a malicious actor can trivially set their own User-Agent to claim to be any bot at all. Genuinely verifying a crawler's identity (for example, confirming a request claiming to be Googlebot actually originates from Google's own published IP ranges) requires a completely different mechanism than parsing the User-Agent string.

Sources

Last reviewed: . All parsing happens locally in your browser — nothing is uploaded.

Relevant, Not Routine

New tools and anything else worth knowing — sent occasionally, only when there's something real to say.