About User Agent Parser
A user agent string is the line of text a browser or program sends with every request. It appears in server logs and analytics exports and in bug reports, and it reads like a pile of historical accidents: Chrome claims to be Mozilla, Safari and Gecko all at once. Paste one here and it comes back as plain fields.
The more useful part is the notes. Browsers have deliberately frozen parts of the string for privacy, so it can state an Android version that is not the real one or a macOS version from years ago. Rather than giving a confident wrong answer, the page says when a value is not reliable and what can give you the real one.
How it works
The string is checked against known crawlers first, then command line tools and code libraries such as curl and python-requests. Anything else is treated as a browser. Order matters for that step, because nearly every browser also says Chrome and Safari, so specific names such as Samsung Internet, Edge and Opera are tested before the general ones. The engine is worked out separately: browsers on iOS are reported as WebKit in most cases, even when they carry a Chrome label such as CriOS.
The device comes from known tokens. Phones and tablets on Android are told apart by the word Mobile, and the model is read from the string where it still appears, with a vendor guessed from common prefixes such as SM- for Samsung. Press Use my browser in a Chromium browser and the page also asks for client hints, which can report the true platform version and model that the string no longer carries.
How to use User Agent Parser
- Paste into User agent string, press Use my browser, or press one of the example buttons.
- Read the summary, then the full table of browser, engine, system and device.
- Check the notes, which point out anything that is frozen or could be faked.
- For your own browser, look at Client hints from your browser when it appears.
A real run on the Samsung example
Mozilla/5.0 (Linux; Android 14; SM-S918B Build/UP1A.231005.007) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/23.0 Chrome/115.0.0.0 Mobile Safari/537.36Browser: Samsung Internet 23.0
Engine: Blink 115.0.0.0
Operating system: Android 14
Device type: Phone
Device: Samsung SM-S918B
Crawler: NoThe string names Mozilla, AppleWebKit, Gecko, Chrome and Safari, and it is none of them. Chrome on the same phone would send Android 10; K instead, which hides both the true version and the model.
When it helps
- Reading the browser and device out of a bug report
- Working out what an odd line in a server log really is
- Spotting whether traffic is a crawler, a script or a person's browser
- Testing what a mobile or bot user agent claims while building a site
- Checking what your own browser is sending right now
Tips for a better result
- Treat crawler names as a claim only. Anyone can send
Googlebotin a header, so large search engines tell you to confirm with a reverse DNS lookup on the IP address. - Do not build features on the string alone. Testing whether a feature exists in the browser is more reliable than guessing from a version number.
- Use client hints when you need the real Windows version.
Windows NT 10.0covers both Windows 10 and 11, and onlySec-CH-UA-Platform-Versiontells them apart. - Look at a set of log lines before drawing conclusions. A rare string may be one person's unusual setup, while a repeated one may be a bot.
Good to know
- It only reads what the string says, and the string can be set to anything.
- New or rare browsers and bots show as unknown until they are added. Crawlers not on the list are flagged as unidentified if they call themselves a bot, crawler or spider.
- Vendor names come from a short list of model prefixes, so many Android devices show a model with no brand.
- Safari on an iPad usually sends the same string as a Mac, so the two cannot be told apart from text alone.
- It handles one string at a time, and does not process a whole log file.
Questions people ask
Why does every browser say Mozilla?
In the 1990s, sites sent better pages to Netscape, which called itself Mozilla, so other browsers copied the word to get the same treatment. The habit stuck, and the word now says nothing about the browser.
Can a user agent tell me if someone uses Windows 11?
No. Windows 10 and 11 both send Windows NT 10.0. Chromium browsers can report the real version through client hints, and the Use my browser button shows them where available.
Is this Googlebot request real?
The string cannot prove it, as anyone can copy it. To verify, do a reverse DNS lookup on the IP address, check that the host belongs to Google, then look the name up forward to confirm it matches.
Why does my phone show Android 10?
Chrome now sends a fixed Android 10; K for privacy, whatever your real version is. The page notes this when it sees that value.
What to use next
- HTTP Header Parser: to read the rest of the request or response
- URL Parser: to split up the URLs in the same log lines
- Regex Tester: to build a pattern for filtering these strings in your logs
Last reviewed . Read our editorial policy.