UA Parser
Parse User-Agent strings online to identify browser, OS, and device information
Parsed Results
What is User-Agent?
The User-Agent Parser breaks a User-Agent string into readable details such as browser, operating system, device type, rendering engine, and sometimes bot or client hints. These strings appear in logs, analytics, support tickets, compatibility testing, and security investigations because they can show what kind of client made a request. The data is not a reliable identity signal: User Agents can be spoofed, shortened, privacy-filtered, frozen, or supplemented by modern Client Hints. This tool supports quick inspection and comparison, but it should not be the only basis for permissions, fraud decisions, personalization, or critical device targeting. When accuracy matters, combine it with server logs, feature detection, and client-side checks.
How to Use
How to use
- Paste the User-Agent string you want to parse in the input box
- Or click "Parse My UA" to auto-detect your current browser's UA
- Parsed results will display below with browser, system, and device details
- Click "Copy UA" to copy the original UA string
Parsing Limits
- User-Agent strings can be spoofed, frozen, or reduced by modern browsers, so treat parsed results as hints.
- For feature decisions, prefer capability detection over browser-name checks whenever possible.
Use Cases
Technical Principle
The User-Agent header is defined by RFC 7231 §5.5.3 as a sequence of product tokens (product/version) and parenthesized comments, but in practice every modern browser sends a string that begins with the literal Mozilla/5.0 token. That prefix dates back to 1993, when sites detected NCSA Mosaic by checking for Mozilla; Netscape adopted Mozilla, Internet Explorer 3 added it for compatibility, and every fork since (Safari, Chrome, Edge, Opera) has kept the lie. There is no formal grammar that says where the OS sits, where the engine version goes, or which token wins when several browsers list each other for compatibility, so parsing is done with a prioritized list of regular expressions against the four classic axes: browser, engine, OS, device. Open-source libraries such as ua-parser-js, bowser, and the UAParser Lua/Python ports all maintain the same pattern files. Since 2022 Chrome has shipped UA Reduction: the browser version is frozen to MAJOR.0.0.0 and platform-specific minor tokens are dropped, so a parsed Chrome 120.0.0.0 on Windows really means Chrome 120-something on Windows 10 or 11, with the precise build hidden behind Client Hints. The modern replacement is User-Agent Client Hints (draft-ietf-httpbis-client-hints), which exposes Sec-CH-UA, Sec-CH-UA-Mobile, and Sec-CH-UA-Platform on every request and the high-entropy values (model, full version, architecture) through navigator.userAgentData.getHighEntropyValues(). A UA parser is still useful for log review and bot triage, but feature detection and Client Hints should drive any runtime branching.
- RFC 7231 §5.5.3 defines User-Agent as product tokens plus comments, with no grammar for OS or device — every parser ships its own regex list
- The Mozilla/5.0 prefix is a 1993 compatibility hack from the Mosaic era; Safari, Chrome, and Edge all keep it to avoid breaking browser-sniffing sites
- Chrome UA Reduction (rolled out 2022–2023) freezes the minor version to 0.0.0 and pins the platform string — real build numbers live in Sec-CH-UA-Full-Version-List
- User-Agent Client Hints expose Sec-CH-UA, Sec-CH-UA-Mobile, Sec-CH-UA-Platform on every request; high-entropy fields require navigator.userAgentData.getHighEntropyValues(['model','platformVersion','architecture'])
- Bot detection by keyword (bot, crawler, spider, Googlebot, Bingbot, Baiduspider, YandexBot) catches polite crawlers but not adversarial scrapers that copy a real Chrome UA — pair with rate limits and behavioural signals
- Mobile vs tablet is decided by tokens (Mobile, Tablet, iPhone, iPad) not screen size; an Android UA without the Mobile token is treated as a tablet by most parsers
- Caches and CDNs that key on Vary: User-Agent can fragment a single resource into thousands of cache entries — prefer Vary: Sec-CH-UA-Mobile or accept low hit rates
Examples
Chrome Browser
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/120.0.0.0 Safari/537.36iPhone Safari
Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 Version/17.0 Mobile/15E148 Safari/604.1Google Bot
Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)FAQ
What does User-Agent parsing extract?
Browser name and version (e.g. 'Chrome 124'), operating system and version, device type (desktop/mobile/tablet), CPU architecture, rendering engine (Blink/Gecko/WebKit), and bot/crawler classification when the UA matches a known crawler pattern.
How accurate is UA parsing?
Good for common, well-known browsers. Struggles with: brand-new versions before the parser library updates; browsers that mimic Chrome/Safari to bypass detection; bots that spoof a real UA; embedded WebViews where the UA names the host app instead of the engine.
Why has the User-Agent string become less useful?
Browser vendors (Chrome leading) are 'freezing' UA strings to limit fingerprinting and pushing UA Client Hints (Sec-CH-UA-* headers) instead. Within a few years, UA strings will report stable, low-entropy values; real device data will live in client hints. Your code should migrate accordingly.
Should I use UA detection for feature gating?
Almost never. UA can lie, and feature support varies by version, even within the same browser. Feature-detect using `if ('serviceWorker' in navigator)` style checks. UA detection is okay for analytics, support tickets, and bug-report classification - not for choosing which API to call.
Can I parse my own UA?
Yes. The page shows your browser's current UA at the top and parses it into the components. Useful when you want to know exactly what version your browser is reporting to servers.
What about bot detection?
The parser flags well-behaved bots that identify themselves (Googlebot, Bingbot, Slackbot). Malicious bots usually impersonate real browsers, so UA-only bot detection is weak. Combine with rate limits, CAPTCHA, and behavioural signals for real protection.
Is the UA uploaded anywhere?
No. Parsing runs in your browser using a JS library (typically ua-parser-js). Pasted UA strings are not sent to a server.