User Agent Parser

Paste any User-Agent string to get the browser, version, engine, OS and device it claims, with the frozen parts marked.

Try one
Botbot
BrowserClaudeBot 1.0The token that actually identifies the product is usually the last meaningful one, because several browsers claim to be Chrome. Chromium freezes the minor digits at zero, so treat only the major version as real.
EngineWebKit 537.36The software that draws the page: Blink for Chromium, Gecko for Firefox, WebKit for Safari. The AppleWebKit and KHTML tokens appear in nearly every string and are historical.
Operating systemNot statedThe system the browser runs on. macOS is frozen at 10_15_7, and Windows NT 10.0 covers both Windows 10 and Windows 11. Only the Sec-CH-UA-Platform-Version client hint separates those two.
Device classbotA crawler that names itself. Malicious traffic copies a browser string instead.
AutomationNamed crawlerWell-behaved crawlers and libraries name themselves, so we can name them here. A string with no bot token is not evidence of a human, because anything hiding copies a browser string.
Legacy tokensMozilla/5.0 present, meaninglessMozilla/5.0 is inherited from a 1990s compatibility workaround and carries no information. It appears in Chrome, Safari, Firefox, Edge and most crawlers.

Why the strings look like that

A user agent string is an archaeological record of browser competition. Every token was added so that some server would stop sending a degraded page, and none was ever removed, because removing one broke sites that sniffed for it. The result is that Chrome on Windows claims to be Mozilla, claims to be AppleWebKit, claims to be KHTML, claims to be Gecko-like, and then finally says Chrome.

Parsing rules follow from that history rather than from any specification. There is no grammar to validate against.

Client hints, in brief

Chromium browsers send a small set of hints by default: Sec-CH-UA with brand and major version, Sec-CH-UA-Mobile, and Sec-CH-UA-Platform. Anything more detailed, such as the full version list, the platform version, the model, or the architecture, requires the server to ask with an Accept-CH response header, and the browser may decline. That opt-in is the design: detail is available to sites that state a need, rather than broadcast to everyone.

The Sec-CH-UA brand list also contains a deliberately fake brand with a random version, which exists to break naive parsers that assume a fixed list. A parser that trips over it was going to break on the next new browser anyway.

Everything runs locally

The parser is client-side. Strings pasted here usually come from server logs, and those are not ours to receive.

About this tool

Paste a user agent string from a log file, a header, or your own browser, and the parser returns the browser and version, the layout engine, the operating system and version, and the device type where it is stated. It also marks the parts that the vendor froze or that were never accurate, which is most of the string.

How to read the result

Browser and version
The token that actually identifies the browser, which is usually the last meaningful one, and Chrome, Edge, Opera, and Brave all carry the Chrome token, so order decides the answer and Edg/ after Chrome/ means Edge. Chromium freezes the minor version digits at zero, so only the major version is real.
Engine
The software that draws the page, which is Blink for Chromium, Gecko for Firefox, and WebKit for Safari. The AppleWebKit and KHTML tokens appear in nearly every string, Chromium included, and are historical rather than descriptive.
Operating system and version
The system the browser runs on. macOS is frozen at 10_15_7 for privacy, Windows NT 10.0 covers both Windows 10 and Windows 11 with no way to tell them apart from the UA alone, and Android reports a real version and often the device model.
Device
The device model, stated only on mobile. Android strings usually include the marketing model, while every iPhone reports the same string and an iPad in desktop mode reports as a Mac.
Bot and library detection
Crawlers, monitoring agents, and HTTP libraries are named where the string is honest about it, which most well-behaved ones are. Malicious traffic copies a browser string, so the absence of a bot token is not evidence of a human.
Frozen and legacy tokens
Mozilla/5.0 at the start of essentially every modern string is inherited from a 1990s compatibility workaround and carries no information. The parser marks these tokens so you do not read meaning into them.

Questions people ask

Why does every user agent start with Mozilla/5.0?
A compatibility chain from the 1990s. Servers sniffed for Mozilla to decide whether to send frames, so every competing browser claimed to be Mozilla, and the token never went away. Today it is present in Chrome, Safari, Firefox, Edge, and most crawlers, and it identifies nothing.
Can I tell Windows 10 from Windows 11 in a user agent?
Not from the UA string, which reports Windows NT 10.0 for both. The Sec-CH-UA-Platform-Version client hint distinguishes them: a major version of 13 or higher indicates Windows 11. That hint has to be requested with Accept-CH and is not in the plain UA.
Why does my iPad report as a Mac?
Safari on iPadOS requests desktop sites by default, and part of that is sending a macOS user agent. Distinguishing an iPad from a Mac then requires checking for touch support, since Macs report no touch points. That check is what most detection libraries use.
Is user agent detection reliable?
For analytics in aggregate, roughly. For feature decisions, no. The string is user-editable, frozen in several places, and deliberately misleading in others. Feature detection, testing for the capability you need, is correct where UA sniffing is a guess.
What replaces the user agent string?
User-Agent Client Hints in Chromium browsers, a set of Sec-CH-UA headers that provide the same information in structured form and require the server to request the sensitive parts explicitly. Firefox and Safari have not adopted them, so the UA string is not going away.

Related

Last reviewed 2026-09-05.