User-Agent parser
Past the compatibility lies, to what it actually is.
Examples temporarily replace the input and settings. You can restore your previous work.
Paste or type above to see the result here.
Your files stay on your device
This tool runs entirely in your browser. What you paste is processed on your device and is never sent to a server, so it is safe to use with tokens, keys and unpublished text.
Example
Help-desk tickets: six User-Agent strings, one from Facebook’s app and one from Bingbot
A support agent collects the User-Agent strings customers paste into tickets about a sign-up form that “does nothing”, adds one line from the server log, and pastes all six here, one per line.
- Each line is matched against a table of patterns, the most specific first: crawlers before browsers, Samsung Internet before Chrome, Chrome before Safari.
- Each browser gets five lines — Browser, Engine, System, Device and Kind; a crawler gets one line naming it and saying it is not a browser.
| What the string says | What the parser reads |
|---|---|
| Windows NT 10.0; Win64; x64; rv:131.0 … Firefox/131.0 | Firefox 131.0, Gecko 131.0, Windows 10 or 11, desktop |
| Android 14; SAMSUNG SM-S921U … SamsungBrowser/26.0 Chrome/122.0.0.0 Mobile | Samsung Internet 26.0, Blink 122.0.0.0, Android 14, SAMSUNG SM-S921U, mobile |
| X11; CrOS x86_64 14541.0.0 … Chrome/129.0.0.0 | Chrome 129.0.0.0, Blink, Chrome OS 14541.0.0, desktop |
| iPad; CPU OS 17_6 like Mac OS X … Version/17.6 Mobile/15E148 Safari/604.1 | Safari 17.6, WebKit 605.1.15, iPadOS 17.6, iPad, mobile |
| iPhone; CPU iPhone OS 17_5 … Mobile/15E148 [FBAN/FBIOS;FBAV/476.0.0.40.97;] | Browser unknown, WebKit 605.1.15, iOS 17.5, iPhone, mobile |
| compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm | Crawler Bingbot: not a browser |
Five people and a bot. The unknown browser is the Facebook app’s built-in browser (FBAN/FBIOS in the string): the parser says unknown rather than guess, and still gets WebKit and iOS 17.5 right. Samsung Internet 26 runs on the Blink engine of Chrome 122, so the two versions differ.
How it works
- Paste one or more User-Agent strings, one per line.
- Read the browser, engine, system and device.
- A crawler is named as a crawler rather than reported as a browser.
- Your own browser’s string is a good thing to start with.
Frequently asked questions
- Why does every browser claim to be Mozilla?
- Compatibility, layer on layer, for thirty years. Every browser says Mozilla, Edge says it is Chrome, Chrome says it is Safari. The only way to read one of these is to look for the most specific thing first and stop — which is why Edge has to be tested before Chrome, and Chrome before Safari.
- Is it looking anything up?
- No. The string is matched against a table of patterns in your browser. Nothing is sent, and nothing is fetched.
- Will it know about a browser released after this was written?
- Probably not, and it will say what it can rather than guessing. It will usually still get the engine and the system right, since those change far more slowly than the names in front of them.
- Should I use this for feature detection?
- No. Test for the feature you need, not for the browser you think has it. Reading the User-Agent is for logs, support tickets and curiosity.
- Why does it say “Windows 10 or 11”?
- Both send “Windows NT 10.0”, so the string can’t tell them apart, and the parser says so rather than pick one. Likewise a Mac reports “Mac OS X 10_15_7” whatever macOS it runs, because browsers froze that number.
- Is a line that says Googlebot or Bingbot really from Google or Bing?
- Not necessarily: anyone can send that string. The parser names the crawler the string claims to be; to check it, look up the visitor’s IP address with a reverse DNS lookup, which this page doesn’t do.
- Is anything sent to a server?
- No. It runs in your browser, so what you paste stays on your computer.