User-Agent Parser
🔒 Runs in your browser
Enter or paste a User-Agent string to parse it.
What a User-Agent string is
Every browser sends a User-Agent header with each request — a single line that
names the browser, its rendering engine, the operating system and, often, the device. It is
how sites tailor downloads (the right installer for your OS) or notice a search-engine crawler.
For historical reasons the format is a tangle of impersonation: a Chrome string still contains
Mozilla, AppleWebKit and Safari tokens it inherited from
older browsers, so the order in which you read those tokens matters.
How this parser reads it
The tool splits the string into browser, OS, engine and device with hand-written rules that
run entirely in your browser — nothing is uploaded. Because Edge, Opera and Samsung Internet
all embed a Chrome/… token, those are matched first; Chrome is matched before
Safari for the same reason. Known crawlers such as Googlebot and bingbot, plus generic
bot/crawler/spider tokens, are flagged before anything
else. The box is pre-filled with your own User-Agent, but you can paste any string to inspect
it.
A string, not a fact
A User-Agent is self-reported: any client can send whatever it likes. Treat the result as a strong hint, never proof of identity — for feature support use capability detection, and for responsive layout use CSS media queries rather than parsing this header.
Frequently asked questions
What is a User-Agent string?
It is a line your browser sends with every request, naming the browser, its engine, the operating system and often the device, so servers can adapt what they return.
Can a User-Agent be spoofed?
Yes. It is self-reported, so any client — a script, a crawler or a browser extension — can send whatever it wants. Treat the parsed result as a hint, never proof of identity.
Why does a Chrome User-Agent still mention Safari and Mozilla?
Those tokens are historical. Browsers copied each others strings for compatibility, so one UA can list Mozilla, AppleWebKit, Chrome and Safari at once; the parser reads them in the right order.
Should I detect the device on the server or the client?
Prefer neither where you can: use CSS media queries for layout and capability detection for features. Parse the User-Agent only for analytics or coarse routing, and expect it to be imperfect.
Is my User-Agent sent anywhere?
No. Parsing happens entirely in your browser with JavaScript. The string you enter — including your own, which is pre-filled — is never uploaded.