How a user agent string is read
A user agent is the User-Agent HTTP header, also available to scripts as navigator.userAgent. This page runs it through the open-source ua-parser-js library, which applies lists of regular expressions to find the browser, rendering engine, operating system, CPU and device. Seven fields are shown: browser, engine, operating system, device type, vendor, model and CPU architecture. If a field cannot be determined it shows a dash. The one exception is device type, which reads "desktop" when the parser finds no device information.
Worked example
Parsing a typical Windows Chrome string and an iPhone Safari string gives these results, taken from the library's actual output:
| Field | Windows Chrome | iPhone Safari |
|---|---|---|
| Browser | Chrome 124.0.0.0 | Mobile Safari 17.4 |
| Engine | Blink 124.0.0.0 | WebKit 605.1.15 |
| OS | Windows 10 | iOS 17.4 |
| Device type | desktop | mobile |
| Vendor / model | none | Apple / iPhone |
| CPU | amd64 | none |
Why the answers are often vague
- Every string starts with "Mozilla/5.0". That token is a historical leftover from the browser wars, and Chrome's string also says "Safari" and "like Gecko" so old sites would serve it modern pages. The parser must look past all of this.
- Windows 11 reports as Windows 10. Both use
Windows NT 10.0in the string. Distinguishing them needs User-Agent Client Hints, which this page does not read. - Chromium has reduced its strings. The minor version is shown as
0.0.0, and recent Android strings show the placeholder modelK, as in the Android Chrome sample. Treat versions and models from modern Chrome as approximate. - iPadOS 13 and later sends a Mac-style string by default in Safari, so an iPad can parse as a Mac.
- Bots such as Googlebot are not browsers, and the parser returns mostly empty fields for them. Match them separately on the raw string.
Using the tool
Leave the paste box empty to parse your own browser's string, which also appears at the top with a copy button. Paste a string from a server log, a bug report or an analytics export to parse that one instead, and clear the box to return to your own. A user agent is sent by the client, so it can be edited or faked and should be used for display and analytics, never for security checks. To look at network-level details of your own connection, see What is my IP.