User-Agent parser — browser, OS, engine, device and bot from a UA string

Paste a User-Agent string from a log or request header and the parser names the browser, rendering engine, operating system, device type and, where the string reveals it, the device maker and model, and flags crawlers and command-line clients.

Live demo · real result from this tool
BrowserChrome 130.0.0.0
OS
Windows 10 or 11
Device
Desktop

Table

PropertyValue
BrowserChrome 130.0.0.0
EngineBlink 130.0.0.0
Operating systemWindows 10 or 11
Device typeDesktop
Device vendor—
Device model—
Bot or toolNo

Windows 10 and 11 both report "Windows NT 10.0"; the User-Agent cannot tell them apart (use the Sec-CH-UA-Platform-Version client hint).

Chrome reports only its major version (minor, build and patch are zeros) as part of User-Agent reduction.

Processed on your device — nothing is uploaded.

How to use the User-Agent parser

  1. Paste a full User-Agent string into the User-Agent string box. Take it from an access log, a User-Agent: request header or navigator.userAgent.
  2. Read the summary line: Browser, OS and Device.
  3. Check the table for the Engine, Device vendor, Device model and Bot or tool.
  4. Read any notes underneath. They explain values the string cannot reveal, such as the real macOS version.

What it does and when to use it

User-Agent strings are long because every browser copies tokens from older ones. Chrome says “Safari”, Edge says “Chrome”, and nearly all start with “Mozilla/5.0”. This parser applies the matching rules in the right order so derived browsers (Edge, Opera, Samsung Internet, Brave, in-app browsers) are not reported as plain Chrome or Safari.

Use it to read a strange entry in server logs, to check why a bug report shows a “mobile” layout, or to see whether traffic comes from a crawler or a script. For the headers that surround it, see the HTTP Headers Ref.

How it works

The parser runs a set of regular expressions in your browser, in this order: known bots and HTTP tools first, then the rendering engine (Blink, WebKit, Gecko, EdgeHTML, Trident, Presto), the browser, the operating system and finally the device type. Device types are Desktop, Mobile, Tablet, TV, Console and Bot. Android models are read from the text before Build/, and a few common prefixes map to a vendor (SM- to Samsung, Pixel to Google). There is no device database and no server lookup.

Worked examples

A Samsung phone.

Mozilla/5.0 (Linux; Android 14; SM-S918B) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.6668.81 Mobile Safari/537.36

Result: Chrome 129.0.6668.81, Blink, Android 14, Mobile, Device vendor | Samsung, Device model | SM-S918B.

A reduced Android string. Mozilla/5.0 (Linux; Android 10; K) … Chrome/130.0.0.0 Mobile Safari/537.36 gives Android 10 and Mobile, but no vendor or model. A note explains that Chrome reduces the model to “K”. In reduced strings the Android version is frozen at 10 as well, so the phone may run a newer one.

A script. curl/8.7.1 is reported as curl 8.7.1, device type Bot, Bot or tool | Yes.

Limits and tips

  • The User-Agent is self-reported. Treat the result as a hint, not proof.
  • New browsers and unusual devices may show as Unknown or as the browser they copy.
  • For feature support, test features in code rather than parsing the User-Agent.
  • To rebuild a request with a custom User-Agent, use the cURL Builder; to inspect the URL that was requested, use the URL Parser.

Frequently asked questions

How do I see my own User-Agent?
Open your browser's developer console and run navigator.userAgent, then paste the result here. The box starts with a sample Chrome on Windows string, not your own.
Why does it say "Windows 10 or 11"?
Both versions send "Windows NT 10.0". The User-Agent cannot separate them. Servers that need to know can request the Sec-CH-UA-Platform-Version client hint.
Can I trust the result to block bots?
Not on its own. Any client can send any User-Agent, and many scrapers copy a normal Chrome string. Bot names such as Googlebot should be confirmed with a reverse DNS lookup of the requesting IP before you rely on them.
Why is the Chrome version 130.0.0.0?
Since Chrome's User-Agent reduction, the string carries only the major version and zeros for the rest. The full version is available through the Sec-CH-UA-Full-Version-List client hint.
Which bots and tools does it know?
About 25 named ones, including Googlebot, Bingbot, Applebot, GPTBot, ClaudeBot, AhrefsBot, the Facebook and Slack link previewers, curl, Wget, Python Requests, Postman, axios, Go net/http, OkHttp and Headless Chrome. Other strings containing bot, crawler or spider are marked as an unidentified bot.

Written by the ToolsRift team · Last updated

Pages are drafted with AI assistance and checked by automated tests. How we write and check pages.

Was this tool useful?

Report a problem

Start typing to search every tool.

↑ ↓ to moveEnter to openEsc to close