Overview
Paste a user-agent string and see the browser, version, operating system, device type and CPU architecture it declares, plus the rendering engine in the JSON output. Your own browser's string is pre-filled on load, and the parsed result is exportable as JSON. Detection runs locally with pattern matching.
How It Works
The input starts with your current browser's user-agent string. Replace it with any string you want to analyze, for example one from your server logs. Four cards show browser with version, operating system with version, device type, and CPU architecture, and a diagnostics panel below shows the full parsed JSON, including the rendering engine, with a copy button. Device type is one of Desktop / PC, Tablet, Mobile Phone or Search Engine Bot / Crawler. A reset button restores your own browser's string at any time.
Step-by-Step Usage Guide
- Read the pre-filled string, which is your own browser's user-agent.
- Paste any string from logs or another device to analyze it.
- Check the browser, OS, device, and architecture cards.
- Copy the parsed JSON diagnostics for use in code or a ticket.
Technical Specifications & Standards
Detection is ordered pattern matching that respects the quirks of real user-agent strings. The browser check tests for Edge (edg), Opera (opr), Samsung Internet, Vivaldi, Chrome (and CriOS on iOS), Firefox (and FxiOS), Safari and finally Internet Explorer in that order, which matters because Chrome, Edge, and Opera all embed the Chrome token for compatibility; matching Edge and Opera first avoids misreporting them as Chrome. Safari is detected through the Version token because its own token lacks a usable version. The engine check reports Blink for Chrome, Edge, Opera, Samsung Internet and Vivaldi, WebKit for Safari and other AppleWebKit strings, WebKit for every iOS browser (Apple requires it), Gecko for Firefox and Trident for Internet Explorer; it appears in the JSON diagnostics rather than on a card. Operating system detection covers Windows NT versions including the 10.0 case that covers both Windows 10 and 11, macOS, Android, iOS, iPadOS, ChromeOS and Linux, converting the underscore-separated version segments to dots. Architecture defaults to Not stated in the User-Agent and only reports 64-bit x86, 64-bit ARM, 32-bit ARM or 32-bit x86 when the string contains a known marker such as x86_64, Win64, arm64, aarch64 or armv7. Remember the deeper truth: user-agents are self-reported, and modern browsers deliberately freeze or reduce parts of the string, so treat the output as declared, not verified.
Targeted Use Cases
- Identifying which browser and version produced a line in server access logs.
- Checking how a crawler or preview bot announces itself before debugging rendering for it.
- Comparing the UA string of a problem device against a known-good one.
- Teaching why Chrome-based browsers all contain the Chrome token.
Notes & Gotchas
- Treat results as self-declared; browsers and extensions can spoof or reduce the string.
- Expect Windows 10 and 11 to be indistinguishable, since both report the same NT 10.0 token.
- Do not read the engine as proof of the real browser: every iOS browser reports WebKit, and all Chromium forks report Blink.
- Rely on feature detection in application code; UA parsing is best reserved for analytics and logging.
Frequently Asked Questions
Why does Edge show as Edge and not Chrome?
Edge and Opera include the Chrome token for compatibility, so the detector tests their distinctive edg and opr tokens before the generic Chrome pattern. That ordering is what makes the brand correct.
Why can it not separate Windows 10 from Windows 11?
Both ship user-agent strings declaring Windows NT 10.0, by design. The tool reports the shared token; distinguishing them requires client hints rather than the classic user-agent string.
Why does the engine say WebKit for Chrome on an iPhone?
Apple requires every iOS browser to use WebKit, so iPhone, iPad and iPod strings report WebKit (all iOS browsers) even for Chrome or Firefox. On other platforms Chrome reports Blink.
Why does the architecture card say it is not stated?
Mac, iPhone and most Android strings do not declare an architecture, so the card says so instead of guessing. 32-bit or 64-bit is reported only when a marker such as x86_64, Win64, arm64 or armv7 appears.