Skip to content
ZeroServer.tools

User Agent Parser

Break a User-Agent string into browser, OS, and device — all locally.

Summary
Chrome 120 on Windows 10 / 11 (Blink, x86-64)
Browser
Chrome 120.0.0.0
Operating system
Windows 10 / 11
Device
Desktop
Layout engine
Blink 120.0.0.0
Architecture
x86-64
Claims to be a bot
No

About User-Agent parsing

The User-Agent header is the string your browser sends to identify itself. Parsing it is necessarily heuristic— browsers deliberately impersonate each other for compatibility (Chrome's UA contains "Safari", Edge's contains "Chrome"), so this tool matches the most specific token first. Everything is parsed in your browser; nothing is sent to a server.

The layout engine is the field that impersonation breaks most often. Every Chromium browser still sends AppleWebKit/537.36 for compatibility, so a naive check reports Chrome as WebKit. It is not: Chrome, Edge, Opera, Brave and Samsung Internet all run Blink, and only Safari and other iOS browsers run WebKit. They differ in real ways, which is why this tool tests the Chromium tokens before the WebKit one and reports them separately.

“Claims to be a bot” means exactly that.A User-Agent is self-reported, so it can say anything — genuinely verifying a crawler requires a reverse DNS lookup on the requesting IP, which a browser cannot perform. Detection also cannot be a plain search for “bot”: that matches Cubot, a real Android phone brand, and reports somebody's handset as a crawler. This tool instead looks for a versioned agent token like Googlebot/2.1, a standalone word, or a name it already knows.

Architecture comes from tokens the string happens to carry, so it is often Unknown — modern Android and iOS UAs simply do not declare one. WOW64 is worth knowing: it means a 32-bit browser running on 64-bit Windows, not a 32-bit machine. Apple silicon Macs are a similar trap — Safari still reports Intel Mac OS X, so that result is labelled rather than guessed at.

Related tools: the URL parser, the regex tester, and the JSON formatter.

Built and maintained by Meet Shah · Last updated

What this tool is used for

  • Breaking a user-agent string into browser, OS and device.
  • Identifying which client made a request from a log line.
  • Checking whether a string belongs to a bot.
  • Comparing two user agents from the same session.
  • Understanding an unfamiliar string before writing a rule.

Frequently Asked Questions

Why does every browser claim to be Mozilla?
Historical compatibility. Servers once sniffed for Mozilla to send the richer page, so every browser added the token and never removed it — which is why the string begins with `Mozilla/5.0` regardless of the actual browser.
Can a User-Agent be trusted?
No — it is self-reported and trivially changed, so it must never gate security decisions. It is useful for analytics and for working around known rendering bugs, and nothing stronger.
Why do Chromium browsers all report AppleWebKit?
Because Blink forked from WebKit and kept the token for compatibility. That is why detecting Safari by looking for AppleWebKit also matches Chrome, Edge and Opera — the Chromium tokens have to be tested first.
What are Client Hints?
The intended replacement — structured headers the browser sends, or the server requests, instead of one opaque string. They are more accurate and reduce the passive fingerprinting surface the User-Agent creates.
Should I detect the browser at all?
Prefer feature detection — asking whether an API exists is accurate and does not break when a new browser appears. Browser detection is for known bugs that feature detection cannot see.

Common errors and gotchas

  • Treating the string as trustworthy, since it is client-supplied and freely forged.
  • Using it for feature detection rather than testing for the feature itself.
  • Assuming the parse is exhaustive, since new strings appear constantly and freeze plans change them.
  • Blocking on a user-agent pattern, which is trivially bypassed and catches real users.
  • Reading a device name as reliable, when many strings omit or misreport it.

Related Developer Utilities tools

Private & free — this tool runs entirely in your browser.

IndieKitShip your Next.js startup in days.affiliate