Developer

User-Agent Parser

Break down a User-Agent string into browser, OS and device.

Analysis updates in real time as you type a User-Agent string.

What is this tool?

The User-Agent parser analyzes the UA string a browser sends to a server, using regular expressions to extract browser name and version, rendering engine, operating system and version, device type, and whether it looks like a bot (crawler). Your current browser's UA is filled in automatically when the page loads.

What each field means
  • Browser: Chrome, Edge, Firefox, Safari, Samsung Internet, Opera, etc., with the version number.
  • Engine: the rendering engine — Blink (Chrome/Edge/Opera family), Gecko (Firefox), WebKit (Safari), etc.
  • OS: Windows, macOS, iOS, Android, Linux, etc., with version when detectable.
  • Device type: desktop, mobile, or tablet, estimated from keywords in the UA string.
  • Bot: determined by whether crawler-related keywords such as bot, crawl, or spider appear.
Privacy & processing

All parsing happens with regular expressions in your browser only. Your User-Agent string is never uploaded or stored.

The history behind "Mozilla/5.0" — why every UA starts that way

Nearly every browser's UA still starts with Mozilla/5.0 — a relic of the 1990s browser wars. Sites back then branched content by checking whether a browser identified as "Mozilla" (Netscape), so Microsoft's Internet Explorer inserted a compatibility token like Mozilla/4.0 (compatible; MSIE ...) into its own UA to receive the same content. Safari, Chrome, and others that followed kept mimicking each other's UA tokens too, tacking on unrelated engine labels like AppleWebKit, like Gecko, and Safari/537.36 — leaving today's UA strings full of legacy tokens that have nothing to do with the actual rendering engine.

Why UA parsing breaks easily, and the shift to Client Hints

That historical baggage is exactly why regex-based UA parsing is fragile. Chrome's UA, for instance, always includes a Safari/537.36 token alongside Chrome/, so checking for "contains Safari" alone would misidentify Chrome as Safari. This tool relies on checking more specific tokens first — Edge → Opera → Samsung Internet → Firefox → Chrome → Safari — because Edge's UA also contains a Chrome token and would be misclassified if not filtered out first. This fragility is why Google is nudging the ecosystem toward User-Agent Client Hints (navigator.userAgentData, the Sec-CH-UA headers) instead of UA strings. Client Hints expose brand and platform data as structured values rather than regex guesses, but as of 2026 Firefox and Safari still don't support it, so this tool shows both side by side.

What does the User-Agent parser do?
Enter a User-Agent string and it uses regular expressions to extract the browser name and version, rendering engine (Blink/Gecko/WebKit), operating system and version, device type (desktop/mobile/tablet), and whether it looks like a bot/crawler, shown in a table.
How do I check my own browser's User-Agent?
When the page loads, the current browser's navigator.userAgent value is filled into the input automatically. To analyze a different UA string, clear the field and paste it in — it re-analyzes in real time.
How is bot/crawler detection decided?
The UA string is checked with a regular expression for common crawler keywords such as bot, crawl, and spider. Search engine crawlers and preview bots typically include such keywords in their UA.
What is userAgentData and why is it shown too?
Some modern Chromium-based browsers expose brand and platform info in a structured form via the navigator.userAgentData API. Where supported, it is shown alongside the UA string analysis for reference.
Is my User-Agent string sent to a server?
No. All parsing is done with regular expressions in your browser only; the string you enter is never sent to a server or stored.
Why does almost every UA start with "Mozilla/5.0"?
During the 1990s browser wars, sites branched content based on whether a browser identified as "Mozilla" (Netscape). Later browsers like IE, Safari, and Chrome kept inserting compatibility tokens into their UA to receive the same content, a habit that persists today.
What's a common reason UA parsing gets it wrong?
Chrome's UA also includes a Safari/537.36 token, so checking browser order incorrectly with regex can misclassify one browser as another. This tool avoids that by checking more specific tokens first, in the order Edge → Opera → Chrome → Safari.
How do User-Agent Client Hints differ from the UA string?
User-Agent Client Hints (navigator.userAgentData) exposes brand and platform info as structured data instead of regex guesses. As of 2026, Firefox and Safari don't support it, so it's shown only as a supplement to UA string parsing.