User-Agent Parser
Read the browser, operating system and device in any user-agent string, see your own, and recognise search engine and AI crawlers.
User-Agent Parser - Read Any User-Agent String
Every browser, crawler and script sends a user-agent string with each request. This tool turns that string into plain facts: the browser and its version, the rendering engine, the operating system and the kind of device. It shows your own user agent as soon as the page opens, and it recognises search engine crawlers, AI crawlers, link-preview bots and command-line tools.
It also says what a user agent can no longer tell you. Browsers now freeze or trim parts of the string for privacy, so the notes explain when the Windows version, the macOS version or the phone model cannot be read, and the Client Hints table shows what your browser reports instead.
How to use it
- Your own user agent is filled in; Use my user agent brings it back after you change the text.
- Paste any other string, for example a line from a server log, or choose one from Examples.
- Read the browser, engine, operating system and device, and the crawler or tool if there is one.
- Read the notes under the results, and the Client Hints table if your browser is based on Chromium.
Anatomy of a user-agent string
A typical Chrome string on Windows reads: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36. Only a few parts carry information:
| Part | What it says |
|---|---|
Mozilla/5.0 | Nothing today; every browser sends it for historical compatibility |
Windows NT 10.0; Win64; x64 | Operating system and processor architecture |
AppleWebKit/537.36 (KHTML, like Gecko) | Engine heritage, also kept for compatibility |
Chrome/129.0.0.0 | The browser and its major version |
Safari/537.36 | Another compatibility token; it does not mean Safari |
Because of this layering, the order of checks matters: Edge also says Chrome and Safari, and Chrome also says Safari. The parser checks the most specific names first.
What the string no longer tells you
- Windows 11: it sends
Windows NT 10.0, the same as Windows 10. - macOS: Safari, Chrome and Firefox freeze the version at
10_15_7. - Android: Chrome sends
Android 10; Kwhatever the real version and phone model. - Browser version: Chromium-based browsers send only the major version, followed by
.0.0.0. - iPad: in desktop mode it sends the same string as a Mac.
User-Agent Client Hints replace these details. A site can ask for them, and the browser answers with the platform version, the model and the full browser version; that is how the table on this page can tell Windows 11 from Windows 10. Safari and Firefox do not support Client Hints.
Crawlers and AI bots
The parser recognises the main search engine crawlers (Googlebot, Bingbot, YandexBot, Baiduspider, DuckDuckBot, Applebot), AI crawlers, link-preview bots from social networks and messaging apps, SEO crawlers and tools such as curl, Wget and Python Requests. AI crawlers fall into three groups, and the tool labels each one:
| Group | Examples | What it does |
|---|---|---|
| Training | GPTBot, ClaudeBot, CCBot, Bytespider, Meta-ExternalAgent | Collects pages to train AI models |
| AI search | OAI-SearchBot, Claude-SearchBot, PerplexityBot | Indexes pages so an AI search engine can cite them |
| User-triggered | ChatGPT-User, Claude-User, Perplexity-User | Fetches one page because a person asked an assistant about it |
Google-Extended and Applebot-Extended are different: they are only names for robots.txt rules and never appear in a request. Googlebot and Applebot do the crawling, and those rules decide whether the pages may also be used for AI training.
A user agent can be faked by anyone. Before you trust or block a crawler by name, check its IP address: a reverse DNS lookup for search engines, or the IP ranges the operator publishes. Rules in robots.txt are addressed by these names too, for example User-agent: GPTBot.
Related tools
To check a crawler's network, look up its range in the subnet calculator. For a user agent that arrives URL-encoded in a log, decode it first with the URL encoder. The task page what is my user agent shows only your own browser.