User Agent Parser

Parse any User-Agent string into browser, engine, OS, device and CPU, detect Googlebot, GPTBot and other crawlers, and see what UA reduction hides. Bulk mode too.

The interactive tool loads here when JavaScript runs.

About this tool

What is the User Agent Parser?

Paste a User-Agent header and this parser breaks it into the browser and version, rendering engine, operating system, device type, vendor and model, and CPU architecture. When you open the page it starts with your own browser's string, so it also answers "what is my user agent". A bot check runs alongside and recognises search engine crawlers such as Googlebot and Bingbot, AI crawlers such as GPTBot, ClaudeBot and PerplexityBot, link-preview fetchers from Slack, LinkedIn and Facebook, SEO crawlers, uptime monitors, headless Chrome and HTTP libraries such as curl and python-requests.

Modern user agents hide more than they show, so the results come with notes. Windows 11 still reports Windows NT 10.0, every Mac reports macOS 10.15.7, Chrome on Android replaces the phone model with a single "K", and Chromium browsers send only their major version. Where your own browser supports User-Agent Client Hints, the page reads them locally and shows the real platform version, model and full browser versions. Switch to bulk mode to paste a column from an access log and get counts by browser, operating system, device type and bot.

  • Browser, engine, OS, device and CPU via ua-parser-js
  • Detection of about 80 search, AI, social, SEO, monitoring and library clients
  • Notes on User-Agent reduction and frozen versions
  • Your browser's Client Hints, read locally
  • Bulk mode with counts and TSV export
  • Runs in the browser; nothing is sent anywhere
Read the guide: User-Agent Strings Explained: Reading Them, Reduction and Bots

How to use the User Agent Parser

  1. Leave your own User-Agent in the box, paste another one, or load a sample from the list.
  2. Read the summary line and the browser, engine, OS, device, CPU and bot cards.
  3. Check the notes for limits caused by User-Agent reduction, and the Client Hints panel for your real platform details.
  4. Copy the report for a bug ticket or analytics question.
  5. For logs, switch to "Many", paste one user agent per line and read the counts, then copy the table as TSV.

Worked examples

Reduced Chrome on Android

Input

Mozilla/5.0 (Linux; Android 10; K) ... Chrome/130.0.0.0 Mobile Safari/537.36

Output

Chrome 130 on Android 10, mobile, model "K"

The string cannot tell you the real phone or Android version. Sec-CH-UA-Model and Sec-CH-UA-Platform-Version can, if the site asks for them.

Googlebot smartphone

Input

... Nexus 5X Build/MMB29P ... (compatible; Googlebot/2.1; +http://www.google.com/bot.html)

Output

Googlebot, search bot, Google

It looks like an Android phone because Google renders pages as a mobile device. Verify with reverse DNS before trusting it.

Windows 10 or 11

Input

Mozilla/5.0 (Windows NT 10.0; Win64; x64) ... Chrome/130.0.0.0

Output

Windows 10 or 11, amd64

Both versions send NT 10.0. Only the platform version client hint separates them.

Scripted traffic

Input

python-requests/2.32.3

Output

Python Requests, library

HTTP libraries announce themselves by default. A spike of them in logs is usually scraping or an integration.

Background and insight

The User-Agent header dates from the first web browsers, and its odd shape is an accident of history. Netscape called itself Mozilla, sites started sending better pages only to "Mozilla", and every later browser added Mozilla/5.0 and the tokens of the browsers it wanted to be mistaken for. That is why Chrome's string mentions AppleWebKit, KHTML, Gecko and Safari, and why parsing depends on the order and presence of tokens rather than on any formal grammar. RFC 9110 section 10.1.5 only says the header holds product tokens and comments, and warns against putting too much detail in it.

Detail is now being removed on purpose. From Chrome 101 to 113 Google rolled out User-Agent Reduction: the minor, build and patch numbers became 0.0.0, the Android device model became K and the Android version froze at 10, and desktop platform versions froze. Safari and Firefox had already frozen macOS at 10_15_7. The detailed values moved to User-Agent Client Hints (Sec-CH-UA-* headers and navigator.userAgentData), which a site must request explicitly. Microsoft documents that Sec-CH-UA-Platform-Version of 13.0.0 or higher means Windows 11.

A bot's User-Agent is a claim, not proof. Anyone can send "Googlebot". Google, Bing and others document the check: do a reverse DNS lookup of the requesting IP, confirm the name ends in googlebot.com or search.msn.com, then do a forward lookup and make sure it returns the same IP. OpenAI, Anthropic and other AI crawlers publish their IP ranges or reverse-DNS domains for the same purpose. This tool identifies which bot a string claims to be; confirming it needs the request IP.

Common use cases

  • Debugging a customer bug

    Turn the User-Agent from a support ticket or error log into the exact browser, OS and device to reproduce on.

  • Log and traffic analysis

    Paste a column of user agents and see how much traffic is bots, which crawlers visit and which browsers matter.

  • Bot and crawler policy

    Identify AI and SEO crawlers before writing robots.txt rules or firewall exceptions.

  • Checking what your browser sends

    See your own User-Agent and Client Hints when testing device detection or analytics.

Tips and limitations

  • Prefer feature detection in the page over User-Agent sniffing for layout and capability decisions.
  • Use Client Hints, not the User-Agent, when you need the Windows version, Android model or full Chrome version.
  • iPads request the desktop site by default and send a Mac User-Agent; check navigator.maxTouchPoints if it matters.
  • Verify search engine bots by reverse and forward DNS before giving them special treatment.
  • Strings change with every browser release; parsing results for brand-new browsers may lag until ua-parser-js is updated.

Frequently asked questions

Why does my Windows 11 computer show Windows NT 10.0?

Browsers never changed the token when Windows 11 shipped, so both versions send Windows NT 10.0. Chromium browsers expose the real version through the Sec-CH-UA-Platform-Version client hint; values of 13.0.0 and above mean Windows 11.

How can I tell if a request really comes from Googlebot?

Run a reverse DNS lookup on the request IP, check that the host name ends in googlebot.com or google.com, then run a forward lookup on that name and confirm it returns the same IP. Google also publishes its crawler IP ranges as JSON files.

Why do all user agents start with Mozilla/5.0?

In the 1990s sites served richer pages only to Netscape, which identified as Mozilla. Other browsers copied the token to get those pages, and it stuck. Today it carries no information.

Why does Chrome on Android show "K" instead of my phone model?

Since User-Agent reduction, Chrome sends the fixed model K and Android 10 for privacy. Sites that need the real model can request the Sec-CH-UA-Model client hint.

Can a user agent be faked?

Yes. It is an ordinary header that any client can set to anything, and browsers let users change it in developer tools. Treat it as a hint for analytics and debugging, never as authentication.

Does this tool send my user agent anywhere?

No. Parsing uses the ua-parser-js library inside the page, and Client Hints are read from your own browser locally. Nothing you paste leaves your device.

Is there an in-depth guide to the User Agent Parser?

Yes. “User-Agent Strings Explained: Reading Them, Reduction and Bots” covers the background, how it works, common pitfalls and worked examples. Read the full guide.

People also search for

  • what is my user agent string
  • why does windows 11 show windows nt 10.0
  • how to tell if a request is from googlebot
  • user agent string for gptbot and claudebot
  • android user agent shows k instead of model
  • why do all user agents start with mozilla 5.0
  • parse user agents from an access log
  • detect headless chrome user agent