Network/HTTP

User-Agent Parser

Break a User-Agent string down into browser, engine, operating system, and device type.


                    

The User-Agent string a browser sends with every request looks like a chaotic mix of names and versions, largely because of browsers' historical habit of impersonating each other (nearly every modern browser's string still contains "Mozilla/5.0"). This tool breaks it down into browser, engine, OS, and device type.

How to use it

Common uses

Things to keep in mind

A User-Agent is entirely controlled by the client and easy to spoof — don't rely on it for security decisions.

Under the User-Agent Reduction effort, modern browsers increasingly freeze or simplify OS and device details for privacy — detection accuracy is gradually declining.

Article about this tool: User-Agent: why this string is such a mess

Frequently asked questions

Why do so many User-Agent strings mention "Mozilla" even in Chrome or Safari?

This is a historical artifact — browsers kept adding "Mozilla/5.0" to their User-Agent strings for compatibility with old server checks written for early Netscape Navigator, and the convention never went away.

How reliable is User-Agent parsing for detecting the actual browser and OS?

Reasonably reliable for common cases, but User-Agent strings can be spoofed, and some browsers now freeze or simplify parts of the string for privacy, so detection isn't guaranteed to be exact.

Is the User-Agent string I paste here sent anywhere?

No. Parsing happens entirely in your browser — nothing is uploaded to a server.

What are User-Agent Client Hints?

A modern alternative to the single User-Agent string — a set of separate headers (Sec-CH-UA, Sec-CH-UA-Platform, etc.) that a server must explicitly request and receives in a structured format, instead of parsing one cluttered string.

Why do some browsers hide the exact OS version or device model in the User-Agent?

It's part of the "User-Agent Reduction" effort for privacy — detailed OS version or device model info can be used to uniquely fingerprint a user, so browsers are gradually simplifying or freezing those parts of the string.

Articles: Network/HTTP