User Agent Parser
Paste a User-Agent string to read the browser, engine, OS and version, device type and model, CPU hints or the crawler it names, with notes on frozen values. How it works
Use the User Agent Parser
Browser
Rendering engine
Operating System
Device and CPU
What this string cannot tell you
- The minor version is 0.0.0 because Chrome and other Chromium browsers send a reduced User-Agent: only the major version is real.
- Brave and other Chromium browsers that send Chrome's string cannot be told apart from Chrome by this tool: Brave does not put its name in the User-Agent.
- Windows 10 and Windows 11 both send "Windows NT 10.0", so the string cannot say which one it is.
The User-Agent string is no longer the full picture
Chrome and other Chromium browsers freeze parts of the string (User-Agent reduction): the minor version is always 0.0.0, Windows is always "Windows NT 10.0", macOS is always "10_15_7", and Android is shown as "Android 10; K". The detailed values come from User-Agent Client Hints (navigator.userAgentData), which a pasted string cannot contain. Anyone can also send any string, so treat the result as what the string claims.
About the User Agent Parser
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 is Chrome 124 with the Blink engine on Windows 10 or 11, a desktop or laptop. The parser reads the browser, engine, operating system and version, device type and model, CPU hints and crawler names from a pasted string, and says which parts are frozen and tell you nothing.
Example User-Agent strings and what the parser reads
| User-Agent string | Browser | Engine | Operating system | Device |
|---|---|---|---|---|
| Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 | Chrome 124.0.0.0 | Blink 124.0.0.0 | Windows 10 or 11 | Desktop or laptop |
| Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Mobile Safari/537.36 | Chrome 124.0.0.0 | Blink 124.0.0.0 | Android 10 | Mobile (phone) |
| Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4 Safari/605.1.15 | Safari 17.4 | WebKit 605.1.15 | macOS 10.15.7 | Desktop or laptop |
| Mozilla/5.0 (iPhone; CPU iPhone OS 17_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4.1 Mobile/15E148 Safari/604.1 | Safari 17.4.1 | WebKit 605.1.15 | iOS 17.4.1 | Mobile (phone), iPhone |
| Mozilla/5.0 (iPad; CPU OS 16_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1 | Safari 16.6 | WebKit 605.1.15 | iPadOS 16.6 | Tablet, iPad |
| Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:125.0) Gecko/20100101 Firefox/125.0 | Firefox 125.0 | Gecko 125.0 | Windows 10 or 11 | Desktop or laptop |
| Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:125.0) Gecko/20100101 Firefox/125.0 | Firefox 125.0 | Gecko 125.0 | macOS 10.15 | Desktop or laptop |
| Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36 Edg/124.0.0.0 | Edge 124.0.0.0 | Blink 124.0.0.0 | Windows 10 or 11 | Desktop or laptop |
| Mozilla/5.0 (Linux; Android 13; SM-S918B) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/23.0 Chrome/115.0.0.0 Mobile Safari/537.36 | Samsung Internet 23.0 | Blink 115.0.0.0 | Android 13 | Mobile (phone), SM-S918B |
| Mozilla/5.0 (Linux; Android 13; Pixel 7 Build/TQ3A.230805.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/124.0.6367.82 Mobile Safari/537.36 | Android WebView 124.0.6367.82 | Blink 124.0.6367.82 | Android 13 | Mobile (phone), Pixel 7 |
| Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko | Internet Explorer 11.0 | Trident 7.0 | Windows 7 | Desktop or laptop |
| Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html) | None (the string names a bot); Crawler or bot card: Googlebot 2.1 | Not found in the string | Not found in the string | Not found in the string |
| curl/8.5.0 | None (the string names a bot); HTTP client card: curl 8.5.0 | Not found in the string | Not found in the string | Not found in the string |
Several of these strings carry frozen values, and the parser adds a note to each one it finds, including the macOS 10.15 that Firefox always sends. A bot or HTTP client gets its own card above the browser details.
Frequently asked questions
- What is my user agent?
- Press Use this browser's User-Agent: the page reads navigator.userAgent at that moment, puts the string in the box and parses it. Clear empties the box, and you can paste any other string instead.
- Why does Chrome show version 124.0.0.0?
- Chrome and other Chromium browsers send a reduced User-Agent: only the major version is real, and the minor version numbers are always 0.0.0. MDN's page on User-Agent reduction describes the same frozen values for the platform: Windows NT 10.0; Win64; x64, Macintosh; Intel Mac OS X 10_15_7 and Android 10; K. Windows 10 and Windows 11 both send Windows NT 10.0, so the parser shows Windows 10 or 11; older versions are named, and Windows NT 6.1 is Windows 7.
- Why does my Mac show macOS 10.15.7 and an Intel CPU?
- Because the string is frozen. Chrome sends Macintosh; Intel Mac OS X 10_15_7 on every Mac, which MDN lists as the reduced macOS value, and Safari's string carries the same 10_15_7. So an Apple Silicon Mac on a current macOS still reads as Intel and macOS 10.15.7. The parser shows that version with a note that the real one is not in the string, and marks the Intel token as no proof of an Intel CPU.
- How do I get the real OS version or device model?
- From User-Agent Client Hints, not the string. A server opts in to Sec-CH-UA-* request headers, and a page reads navigator.userAgentData, with getHighEntropyValues() for hints such as Sec-CH-UA-Model. A pasted string cannot contain them.
- Can it detect Brave?
- No. Brave sends the same string as Chrome and does not put its name in it, so the parser shows Chrome and says it cannot tell them apart.
- Can it tell if a visitor is a bot?
- It names crawlers such as Googlebot, Bingbot, GPTBot and ClaudeBot and HTTP clients such as curl and python-requests when the string names them: the table shows Googlebot 2.1 and curl 8.5.0. Any other token containing bot, crawler or spider is shown as a crawler too. Anyone can send any User-Agent, so a name is a claim, not proof; search engines publish their own ways to verify their crawlers.
Related Tools
View all toolsScreen Resolution
See your screen resolution in CSS pixels, device pixel ratio, estimated physical pixels, viewport size and color depth, as your browser reports them.
Browser Info
See what your browser tells websites: screen and window size in CSS pixels, pixel ratio, time zone, languages, processor count and user agent.
Keycode Checker
Press a key to see its event.key, event.code, location and modifiers, plus the deprecated keyCode and which numbers: Enter is 13, Space 32, A to Z 65 to 90.
Internet Ping Test
Time 5 HTTP requests from your browser to this site and see the median, min, max and jitter in ms. An HTTP round trip, not an ICMP ping.
Typing Speed Test
Typing speed test with 15, 30, 60 and 120 second runs. See gross and net words per minute (WPM), accuracy and uncorrected errors while you type; pasting is off.
Robots.txt Generator
Build a robots.txt from a preset such as Block AI crawlers or WordPress, or block and allow folders for named bots, with Sitemap lines and every path checked.