User agent parser

Paste a user agent string, or use your own browser, to read the browser, engine, operating system and device.

Browser
Rendering engine
Operating system
Device type
Bot or crawler

Parsing happens entirely in your browser and nothing you paste is uploaded. User agent strings can be edited or faked, so treat the result as a best-effort reading, not proof.

How do I read a user agent string?

Paste a user agent string, or press use my browser, and this tool reads out the browser and version, the rendering engine, the operating system, the device type and whether it looks like a bot. It matches the string against an ordered table of patterns, entirely in your browser, so nothing you paste is uploaded.

What a user agent string is

Every time your browser asks a website for a page, it sends a short line of text called the user agent string. It is the browser introducing itself: this is who I am, this is my version, this is the engine I use to draw pages, and this is the operating system I am running on. Servers read it to decide what to send back, analytics tools read it to break visitors down by browser and platform, and developers read it when they are chasing a bug that only happens on one setup.

This tool takes any such string and pulls it apart into plain-English rows: the browser and version, the rendering engine, the operating system and version, whether the device looks like a phone, a tablet or a desktop, and whether the whole thing looks like a bot rather than a person. Press use my browser to drop in your own, or paste one from a log file.

Why user agent strings are messy and easy to fake

User agent strings are a museum of old decisions. Almost every browser still begins with Mozilla and claims to be like Gecko, for reasons that date back to the 1990s browser wars. Chrome carries a Safari token, Edge carries a Chrome token, and Safari carries a WebKit token. That is why the order of checks matters: a parser has to look for Edge before Chrome, and Chrome before Safari, or it reports the wrong browser. This tool does exactly that.

Because the string is just text sent by the client, it can also be changed to say anything. Browser extensions, developer tools, testing scripts and privacy tools all rewrite it freely, so a user agent is a helpful hint but never proof of anything. Never let it be the only thing standing between a visitor and something sensitive.

Frozen and reduced user agents

The trend now is to say less. Chrome and Edge have reduced the detail in their user agent strings, freezing minor version numbers and flattening platform detail, and macOS has long been pinned at 10.15.7 in Safari's string even on much newer releases. Windows is the clearest example of the limit: Windows 11 reports the same token as Windows 10, so the honest answer from the string alone is 10 or 11. Sites that genuinely need more now use client hints, a separate mechanism the browser can share on request, rather than stuffing everything into one line.

Reading the examples

The parses below were produced by this tool. Everything is worked out in your browser, so nothing you paste is uploaded or logged, which matters when the strings come from your own server logs.

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
Chrome 120.0.0.0, Blink engine, Windows 10 or 11, desktop, not a bot.
Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.0 Mobile/15E148 Safari/604.1
Safari 17.0, WebKit engine, iOS 17.0, mobile, not a bot.
Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
Flagged as a bot or crawler. The browser, engine and system are unknown, which is typical of automated agents that carry a minimal string.

Notice how the desktop Chrome string still ends in a Safari token, and how the iPhone string names both Version and Safari. Reading these correctly is the whole job, and it is why a hand-written table of patterns, in a careful order, beats a naive search for a single keyword.

How we work it out

Ordered pattern matching on the user agent string: regular expressions pick out the browser (checking Edge before Chrome, and Chrome before Safari), the rendering engine, the operating system and version, and device tokens like Mobile, Tablet and iPad, plus a list of known bot and crawler signatures.

Frequently asked questions

What is a user agent string?

It is a line of text your browser sends with every request to identify itself. It names the browser, its version, the rendering engine, the operating system and often the device. Servers use it to decide what to send back, and analytics tools use it to break down visitors by browser and platform.

Why is the parsed result sometimes wrong?

User agent strings are just text and can be edited, so any value can be faked. They are also full of legacy tokens: almost every browser still claims to be Mozilla and pretends to be like Gecko, and Chrome carries a Safari token. Parsers work around this with careful ordering, but odd or spoofed strings can still be misread.

Can I trust the user agent for blocking or analytics?

Treat it as a hint, not proof. It is fine for rough analytics and progressive enhancement, but it is trivial to spoof, so it should never be the only thing guarding access to something sensitive. For features, testing the capability directly is more reliable than reading the user agent.

Why does Windows show as 10 or 11?

Windows 11 reports the same platform token as Windows 10, Windows NT 10.0, in the user agent. There is no way to tell them apart from the string alone, so the honest answer is 10 or 11. Sites that need to know use newer client hints instead.

Is my user agent string sent anywhere?

No. The parsing happens entirely in your browser with JavaScript. Whatever you paste, and your own browser's user agent when you press the button, stay on your device and are never uploaded or logged.

Related tools