Parse and analyze user agent strings to extract browser, OS, device type, and rendering engine information
Paste any user-agent string and instantly see the browser name and version, operating system, device type, and rendering engine. Useful for debugging request headers, analyzing access logs, and understanding what clients are hitting your servers.
Initializing in your browser…
Analyze password security with 10 criteria checks, entropy calculation, crack time estimation, character breakdown, warnings, and improvement suggestions
Analyze any URL for phishing, suspicious patterns, and security risks. Detects login keywords, suspicious TLDs, encoded characters, brand impersonation, and more
Decode and analyze PEM-encoded X.509 SSL/TLS certificates. View subject, issuer, validity, extensions, and fingerprints
A bug only reproduces for one customer. Their support ticket includes a raw User-Agent string and you need to know exactly what browser and OS to test.
Raw User-Agent header
Mozilla/5.0 (iPhone; CPU iPhone OS 17_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2 Mobile/15E148 Safari/604.1
Parsed components
Browser: Safari 17.2 Engine: WebKit 605.1.15 OS: iOS 17.2 Device: Apple iPhone (mobile) Form factor: Mobile Bot: No
The User-Agent is a single dense string that crams browser, engine, OS, and device into legacy "Mozilla/5.0 … like Gecko" tokens kept only for compatibility. The parser maps those tokens to structured fields so you can reproduce the exact environment, here, mobile Safari 17.2 on iOS, which has very different CSS and JS behaviour from Chrome on Android.
Paste any user-agent string and instantly see the browser name and version, operating system, device type, and rendering engine. Useful for debugging request headers, analyzing access logs, and understanding what clients are hitting your servers.
The User Agent Parser breaks a browser UA string into browser, rendering engine, operating system, device, and CPU architecture using a hand-written set of regular expressions rather than an external library. The detection order is deliberate because modern UAs overlap: it tests for Edge (the Edg/ token) and Opera (OPR/) before Chrome, since both ship Chromium and carry a Chrome/ token that would otherwise win, and it only reports Safari when both a Safari/ and a Version/ token are present so that Chrome-on-WebKit strings aren't misidentified. Rendering engines are classified as WebKit (from AppleWebKit/), Gecko (Firefox, with the version pulled from rv:), or Trident (legacy Internet Explorer), and Internet Explorer itself is matched via either MSIE or the Trident...rv: pattern.
Operating system detection maps raw kernel tokens to friendly names: Windows NT numbers are translated through a lookup table where 10.0 becomes '10/11', 6.3 is 8.1, 6.1 is 7, and 5.1 is XP, while macOS, iOS, and iPadOS versions have their underscore separators (e.g. 17_2) rewritten to dots. Linux strings are further refined to Ubuntu, Fedora, or Debian when those keywords appear, and CrOS is reported as Chrome OS. Device type is derived from the UA rather than guessed: Mobile/iPhone/iPod/BlackBerry/Opera Mini patterns flag a mobile device, iPad and Android-without-Mobile flag a tablet, and everything else falls through to desktop, with vendor/model recognition for Apple (iPhone, iPad, Mac), Google Pixel, and Samsung SM- model codes. CPU architecture is bucketed into x64 (from x86_64/Win64/WOW64/amd64), ARM64 (arm64/aarch64), ARM, or x86.
A dedicated bot pass runs first and short-circuits the rest of the parsing: a single regex matching bot, crawl, spider, slurp, search, fetch, or archive sets the device type to 'bot', and named crawlers Googlebot, Bingbot, Yandexbot, DuckDuckBot, and Baiduspider are identified explicitly (anything else becomes a generic 'Bot/Crawler'). Everything runs locally in the browser, so the tool auto-populates the field with your own navigator.userAgent on load and offers a 'Use Current Browser' button to re-read it. There are nine built-in sample strings (Chrome Windows, Safari macOS, Firefox Linux, iPhone Safari, Android Chrome, iPad Safari, Edge Windows, Googlebot, Bingbot) for quick testing, and the full parsed result is also rendered as formatted JSON with a copy-to-clipboard button, including isMobile and isBot flags.
Paste an Edge UA ending in Edg/120.0.2210.91; despite containing a Chrome/120 token, the parser reports Microsoft Edge because it tests the Edg/ token before Chrome.
A string with 'Windows NT 10.0' is translated through the built-in lookup table and displayed as Windows 10/11 rather than the raw NT number.
The Googlebot sample matches the bot regex, sets device type to bot, and is named Googlebot with its version extracted, skipping the normal browser/OS detection path.
Parse the User-Agent header from failing requests to identify client-specific issues.
Decode user-agent strings from server logs to understand your traffic mix across browsers and devices.
Identify crawlers, scrapers, and automated agents by examining their user-agent signatures.
Decades of browser history led to each new browser appending compatibility tokens. Chrome's UA includes "Mozilla""AppleWebKit"and "Safari" for legacy reasons.
No. Prefer feature detection (e.g., checking if an API exists in the browser) over user-agent sniffing, which is fragile and easily spoofed.
This runs as client-side JavaScript. Keys, tokens, payloads, and other inputs never leave your device.