User-Agent Parser Online

See the user agent your browser sends, with its User-Agent Client Hints, or paste any user-agent string to read it: browser and version, rendering engine, operating system, device type and model, CPU, and whether it is a bot. For a bot it names the operator, says what the bot is for (search, AI training, AI answers, link previews, SEO, monitoring or a script) and how it treats robots.txt.

Paste lines from an access log, a CSV export or JSON logs and it counts every distinct user agent, with bots and scripts against browsers. Everything runs in your browser, so log lines and IP addresses never leave the tab. Bot names, purposes and robots.txt tokens come from each operator’s own documentation, linked on the result.

User agentOne string, or many lines from an access log
Result
Reading your browser’s user agent…
Reading your browser’s user agent…Processed locally

How to use it

  1. Open the page to see your own browser’s user agent and Client Hints, or press Use my browser to come back to them.
  2. Paste a user-agent string, pick a sample, or paste lines from an access log, CSV export or JSON log; it parses as you type.
  3. Read the browser, engine, OS, device and bot cards and the part-by-part breakdown, select a log row for details, and Copy JSON (⌘⇧C) to keep the result.

Related tools

robots.txt Generator & TesterWeb & APIIP Subnet CalculatorDevOpsHTTP Status CodesWeb & APIAPI TesterWeb & API

Next: block or allow the crawlers you found with the robots.txt Generator & Tester, or check whether a crawler’s IP is inside its published range with the IP Subnet Calculator.

What this tool does

A User-Agent header (RFC 9110, section 10.1.5) is a list of product tokens such as Chrome/151.0.0.0, with comments in parentheses such as (Windows NT 10.0; Win64; x64). The parser splits the string into those parts and explains each one, then reads the browser and its version, the engine (Blink, WebKit, Gecko, Trident, EdgeHTML or Presto), the OS and version, the device type (desktop, phone, tablet, smart TV, console, wearable, VR headset or bot), the vendor and model when the string names them, and the CPU architecture when it is stated. It knows more than 40 browsers and in-app browsers, including Edge, Opera, Samsung Internet, Yandex, UC Browser, Android WebView and the Facebook, Instagram, TikTok, WeChat and LINE apps, and about 150 bots and clients from 60 operators: Google’s crawlers and fetchers, Bing, AI crawlers from OpenAI, Anthropic, Perplexity, Apple, Meta, Amazon and others, SEO tools, link-preview bots, uptime monitors, scanners and HTTP libraries such as curl, python-requests and Guzzle. Notes point out values that browsers freeze: Chrome’s x.0.0.0 version, Windows NT 10.0 for both Windows 10 and 11, macOS 10.15.7, Android 10; K, and the iOS 18.6 or 18.7 that Safari 26 reports. On your own browser it also reads Client Hints with navigator.userAgentData, which give the real Windows release, full version, model and architecture. For a log it reads one user agent per line, the third quoted field of combined-format lines from Apache or nginx, a CSV column named userAgent or user_agent, or a user-agent key in JSON lines.

Example input and output

Chrome on Windows: what the reduced user agent hides
Input
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36
Output
Browser   Chrome 151 (version 151.0.0.0)
Engine    Blink 151
OS        Windows 10 or 11
Device    Desktop
CPU       x86-64 (64-bit)

Notes
· Reduced user agent: Chromium browsers send only the major version (x.0.0.0). The full version is in the Sec-CH-UA-Full-Version-List client hint.
· Windows NT 10.0 means Windows 10 or 11: browsers report the same value for both. The Sec-CH-UA-Platform-Version client hint tells them apart (13 or higher is Windows 11).
· Brave, Vivaldi and some other Chromium browsers send exactly this string, so they look like Chrome. Brave adds its name only to the Sec-CH-UA client hint.

Open the tool in your own Chromium browser to see the hints that fill these gaps, such as Sec-CH-UA-Platform-Version and the full version list.

Googlebot Smartphone, and how to check it is real
Input
Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.7390.122 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
Output
Bot         Googlebot Smartphone 2.1 · Search engine crawler · Google
robots.txt  User-agent: Googlebot · Obeys robots.txt
Verify      Reverse DNS of the IP ends in googlebot.com and a forward lookup of that name returns the same IP; or the IP is in Google’s common-crawlers.json.

Browser     Chrome 141 (version 141.0.7390.122)
OS          Android 6.0.1
Device      Bot

Googlebot renders with an evergreen Chrome, so the Chrome version changes while the Nexus 5X and Android 6.0.1 part stays the same. Desktop and smartphone Googlebot share the Googlebot token, so robots.txt can’t treat them differently.

Count the bots in an access log
Input
203.0.113.7 - - [31/Oct/2026:09:12:03 +0000] "GET / HTTP/1.1" 200 5120 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/151.0.0.0 Safari/537.36"
198.51.100.23 - - [31/Oct/2026:09:12:09 +0000] "GET /robots.txt HTTP/1.1" 200 312 "-" "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.4; +https://openai.com/gptbot)"
198.51.100.23 - - [31/Oct/2026:09:12:10 +0000] "GET /blog/ HTTP/1.1" 200 6120 "-" "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; GPTBot/1.4; +https://openai.com/gptbot)"
192.0.2.80 - - [31/Oct/2026:09:12:31 +0000] "GET /wp-login.php HTTP/1.1" 404 153 "-" "python-requests/2.32.3"
192.0.2.81 - - [31/Oct/2026:09:12:32 +0000] "GET /.env HTTP/1.1" 404 153 "-" "-"
Output
4 user agents in 5 requests · 60% bots and scripts

Requests  Client                  OS                Type
2         GPTBot 1.4              —                 AI training crawler
1         No user agent           —                 No user agent
1         Chrome 151              Windows 10 or 11  Desktop
1         python-requests 2.32.3  —                 HTTP library or command-line tool

Select a row to see its full breakdown. A request with no User-Agent, shown as "-" in the log, almost always comes from a script or scanner.

Common errors and fixes

“Mozilla/5.0 means the visitor uses Firefox”
Nearly every browser and many bots start with Mozilla/5.0, for compatibility with sites that once checked for Netscape. It tells you nothing. Look at the tokens after it: Firefox sends Gecko/ and Firefox/, and Chromium browsers send Chrome/.
“Safari/537.36 means Safari”
Chrome, Edge, Opera and Samsung Internet all end with Safari/537.36 and AppleWebKit/537.36, frozen values kept so Safari-only code still runs. Real Safari sends Version/x and Safari/605.1.15 or Safari/604.1, and no Chrome/ token.
“Windows NT 10.0, so it’s Windows 10”
Windows 11 also reports NT 10.0, and Microsoft says the user agent won’t change. In Chromium browsers, ask for the Sec-CH-UA-Platform-Version hint: 13.0.0 or higher is Windows 11. Firefox and Safari don’t send Client Hints, so there you can’t tell.
“No Mobile token, so it’s a desktop”
On Android, a browser without Mobile is a tablet. iPads send the same user agent as a Mac by default since iPadOS 13, so a Mac string may be a tablet; in a page, navigator.maxTouchPoints > 1 suggests an iPad.
“It says Googlebot, so it’s Google”
Anyone can send Googlebot’s string. Run a reverse DNS lookup on the IP: a real Googlebot resolves to a name ending in googlebot.com, and a forward lookup of that name returns the same IP. Or check the IP against Google’s common-crawlers.json; the IP Subnet Calculator shows whether an address is inside a CIDR range.
“Disallowing ChatGPT-User or Perplexity-User keeps my pages out of AI answers”
Those fetchers act for a person, and OpenAI and Perplexity say robots.txt may not apply to them. Training crawlers (GPTBot, ClaudeBot, CCBot) and AI search crawlers (OAI-SearchBot, Claude-SearchBot, PerplexityBot) do read robots.txt; block each by its own token. Anthropic says all three of its bots, Claude-User included, honour robots.txt.
“The version in Chrome/151.0.0.0 is exact”
Since Chrome 101 the minor, build and patch numbers are 0.0.0 in every Chromium browser. The real version is in Sec-CH-UA-Full-Version-List, or navigator.userAgentData.getHighEntropyValues(["fullVersionList"]) in a script.

Common use cases

  • Finding out what your own browser sends, for a bug report or a support ticket
  • Reading the bots in an access log: search crawlers, AI crawlers, SEO tools and scripts
  • Looking up a crawler’s operator, purpose and robots.txt token before writing rules for it
  • Debugging why a site serves the wrong layout to a phone, tablet or in-app browser
  • Checking which Client Hints your browser offers, such as the real Windows release or the full Chrome version

Privacy and security notes

  • User agents and log lines are parsed by JavaScript in this tab. Nothing is uploaded or stored, and the tool makes no network requests.
  • Your own user agent and Client Hints are read from the browser after the page loads, only to show them to you.
  • Share puts the input after the # in the link. Browsers don’t send that part to servers, but anyone with the link can read it, so remove IP addresses from log lines before you share them.

Frequently asked questions

What is my user agent?

It is the User-Agent header your browser sends with every request, and it opens in the tool when the page loads, marked Your browser. Chromium browsers (Chrome, Edge, Opera, Samsung Internet) also offer User-Agent Client Hints; the tool shows them below the breakdown, with what each adds. Firefox and Safari don’t support Client Hints.

Why does Chrome report x.0.0.0 and Android 10; K?

That is Chrome’s user-agent reduction. Since Chrome 101 the minor version is 0.0.0, and since Chrome 107 on desktop and 110 on Android the platform is frozen too: Windows NT 10.0; Win64; x64, Macintosh; Intel Mac OS X 10_15_7, X11; Linux x86_64, X11; CrOS x86_64 14541.0.0 or Linux; Android 10; K. Sites that need more ask for Client Hints with an Accept-CH response header.

Why does my Mac say Intel Mac OS X 10_15_7?

Safari and Chromium browsers freeze the macOS version at 10.15.7 and keep the word Intel on Apple silicon Macs. Firefox caps it at 10.15. In Chromium browsers, the Sec-CH-UA-Platform-Version hint has the real macOS version, and Sec-CH-UA-Arch says arm on Apple silicon.

Why does Safari on iOS 26 say iPhone OS 18_6?

Safari 26 froze the OS version in its user agent, and WebKit says it plans to hold it constant. Its value is 18_6 or 18_7 depending on the release. Use the Version/ token instead: Safari ships with iOS, so Version/26.0 means iOS 26.

How do I know a request really came from Googlebot or GPTBot?

Check the IP address, not the string. Google, Bing, Apple and Common Crawl document reverse DNS checks: the IP’s hostname must end in their domain, and looking that hostname up must return the same IP. Google, Bing, OpenAI, Anthropic, Perplexity, Apple, DuckDuckGo and others also publish their crawlers’ IP ranges as JSON. Each bot’s result shows its method.

Can I tell Brave, Vivaldi or an iPad from the user agent?

Not reliably. Brave and Vivaldi send Chrome’s exact string on desktop and Android; Brave adds its name only to Sec-CH-UA, and Vivaldi only on a few partner sites. iPads other than the iPad mini send Safari’s Mac string. If you need to know, test for the feature you depend on instead.

Guides