User-Agent Parser
Extract practical browser, engine, operating-system, and device clues. Your work stays on this device whenever possible.
How to use User-Agent Parser
- Paste a string into "User-Agent string"; the box starts out holding your own browser's value.
- Press "Use My Browser's User-Agent" to reload your current string and parse it in one step.
- Press "Parse User Agent" and read the cards for browser and version, operating system, engine, device class, brand and architecture.
- Tick "Batch parse mode (one User-Agent per line)" to process a log excerpt; the result becomes numbered lines shaped like browser, then OS, then device.
- Press "Download Parsed JSON" to save the structured fields, including the isBot and botName values.
Worked example
Parse "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36". The cards read Browser Google Chrome 124.0.0.0, Operating System Windows 10 / 11, Engine Blink, Device Desktop, Brand Generic / PC and Architecture 64-bit (x86_64). The isBot flag is false because none of the listed crawler names appear in the string.
When to use this tool
- Working out which browser and OS a customer's support screenshot came from.
- Splitting a pasted list of log-file agents into rows to spot crawler traffic.
- Checking how a mobile string is classified before writing a device-detection rule.
Important limitations
User-agent strings are self-reported, reduced for privacy, and easy to spoof. Prefer feature detection for capability decisions.
Frequently asked questions
Why does Windows 11 appear as "10 / 11"?
Browsers freeze the Windows token at NT 10.0 for both releases, so the string itself cannot tell them apart. The parser reports the pair honestly. Client Hints can separate them, but only in a live browser, not in a pasted string.
Which crawlers are recognised?
A fixed list: Googlebot, bingbot, Baiduspider, YandexBot, DuckDuckBot, Applebot, Twitterbot, facebookexternalhit and Slackbot-LinkExpanding. Other or spoofed crawlers fall through to ordinary browser detection.
How are Edge, Opera and Chrome told apart?
Rules run in a fixed order: Edg, OPR, Samsung Browser, Vivaldi, Brave, UC Browser, Firefox, Chrome, then Safari. Chromium derivatives are named before generic Chrome. Brave usually hides itself, so it typically shows up as Chrome.
Can I trust the architecture field?
Not always. It looks for x64, Win64, WOW64, arm64 or aarch64 and otherwise prints 32-bit (x86). iPhones, Macs and most Android strings omit those words, so they get labelled 32-bit. Ignore that field for them.
Is this suitable for feature detection?
No. Chrome reduces its strings, so minor versions read 0.0.0, and anyone can spoof a header. When code must branch, test the feature itself, for example with CSS.supports(), instead of parsing the string.