User Agent Parser
Parse any user-agent string into browser, engine, OS, device and CPU, spot Googlebot, GPTBot and other bots, see your own, or run thousands in bulk.
How to use User Agent Parser
- 1Paste a user-agent string, or press Try example. Switch to My browser to read your own.
- 2Check the browser, engine, OS, device and bot lines, along with the notes about what the string cannot tell you.
- 3For many strings at once, use Bulk: one per line, then copy the table as CSV.
What makes it better
- Parse, My browser and Bulk modes on every page; the string stays when you switch
- Detects Chrome, Edge, Firefox, Safari, Opera, Samsung Internet, Vivaldi, DuckDuckGo and in-app browsers such as Instagram, Facebook, WhatsApp and Line
- Recognises about seventy crawlers, AI bots and HTTP tools, from Googlebot and Bingbot to GPTBot, ClaudeBot, curl and python-requests
- Explains Windows 10 versus 11, the frozen macOS version, Chrome's reduced user agent and why Brave looks like Chrome
- My browser can read client hints on request, including the platform version that tells Windows 11 apart
About User Agent Parser
User Agent Parser reads a user-agent string and reports the browser and version, the rendering engine, the operating system, the device type, the CPU when it is stated and whether the client is a known crawler or tool. It uses its own rule table written for this page, so it is a heuristic reading and not a guarantee. The My browser mode shows what your current browser sends, and Bulk mode turns a list of strings into a table you can copy as CSV.
Common uses
- Work out which browser and device produced an odd line in a server log or an error report.
- Check whether a request that hit your site is a search-engine crawler, an AI scraper or a script before writing a robots.txt rule.
- Classify an exported list of user agents into browser, OS and device counts for an analytics clean-up.
- See exactly what your own browser sends, for a bug report or a compatibility check.
Example
Input
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
Result
Browser: Chrome 120.0.0.0 Engine: Blink 120.0.0.0 OS: Windows 10 / 11 Device: desktop CPU: x86-64 Bot: no
Good to know
- A user-agent string is whatever the client chooses to send, so it can be spoofed, and the result here is a heuristic from pattern matching. Treat bot detection as a hint; verify real crawlers by reverse DNS or the operator's published IP ranges.
- Browsers are reducing what the string says: Chrome sends only its major version and a fixed Android model of K, Safari and Chrome freeze macOS at 10.15.7, and Windows 11 reports NT 10.0. Client hints are the modern replacement, available only in Chromium browsers.
- Bulk mode reads at most 5,000 lines and long strings are cut at 2,000 characters. The table of rules is deliberately modest, so unusual browsers and brand-new bots may show as unknown.
User Agent Parser FAQ
How do I find my own user agent?
Switch to the My browser mode. It reads navigator.userAgent after the page loads, shows the parsed fields, and can fetch extra client-hint details such as architecture and platform version when you press the button.
Why does every browser say Mozilla/5.0 and mention Safari?
It is history: early sites served better pages to Netscape (Mozilla), so every later browser copied the token and added the engines it wanted to be mistaken for. That is why a Chrome string also contains AppleWebKit, KHTML, Gecko and Safari.
Can a user-agent string be trusted to detect bots?
Only as a first filter. Anyone can send Googlebot in the header, so confirm important crawlers with a reverse DNS lookup or the vendor's IP list, and use rate limits for abusive clients no matter what they call themselves.
Why does a new Mac or Windows 11 PC report an old version?
Browsers deliberately freeze these values to reduce fingerprinting. macOS stays at 10.15.7 and Windows 11 still says Windows NT 10.0. Only client hints, where the browser supports them, give the real platform version.
Why is Brave or Opera GX not detected by name?
Brave intentionally sends a normal Chrome string, and some other Chromium-based browsers do too. A page can only guess them through other signals, so the parser reports Chrome and adds a note.
Is the user agent I paste uploaded for parsing?
No. Parsing is a set of pattern matches that run in your browser, and in My browser mode the value is read from your own browser and never transmitted.