Anatomy of a User-Agent string
A desktop Chrome string reads Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36. Most tokens are historical: Mozilla/5.0 dates from the Netscape era, AppleWebKit and Safari remain because Chrome forked WebKit, and like Gecko was added so servers written for Firefox would send Chrome the full version of a page.
The parser works through the tokens in a fixed order so that browsers built on Chromium are not misreported as Chrome. Edg/ is checked first for Microsoft Edge, then OPR/ for Opera and SamsungBrowser/, and only then Chrome/ or CriOS/. Firefox and FxiOS come next, Safari is recognised by its Version/ token, and MSIE or Trident/ marks Internet Explorer.
The engine row follows the same logic: Trident, Gecko when Firefox is present, Blink for Chrome, Chromium, Edge and Opera, and WebKit otherwise. Any browser on an iPhone or iPad is reported as WebKit (all iOS browsers), because third-party browsers there have had to use Apple's engine.
Why the operating system row can be vague
Browsers froze most of the User-Agent string to limit fingerprinting. Windows 11 still reports Windows NT 10.0, Chrome on macOS reports 10_15_7 whatever the installed version, and Chrome on Android reports Android 10 with K in place of the device model. The parser shows what the string says and marks the Windows case as 10 / 11.
User-Agent Client Hints are the replacement. Chromium browsers expose navigator.userAgentData, and this page asks it for the high-entropy values platformVersion, architecture, bitness, model and fullVersionList. The result appears as the Client Hints block with Brands, Platform, Architecture, Mobile and, on phones, Model. Firefox and Safari do not implement the API, so the block is absent there.
When you paste a different string into the parse box, the Client Hints and the environment panel are hidden, because they describe your own browser rather than the one that produced the pasted string.
Reading the device type and bot rows
Device type is derived from the string, not the hardware. Tablet means an iPad, a string containing Tablet, or Android without the Mobile token; Mobile means Mobi, iPhone, iPod or Android with Mobile; Desktop is anything else with a recognised operating system; Unknown means no operating system was found, which is common for scripted clients.
If the string matches the crawler list, the device type is Bot and a Bot / client row names it. The list covers search engines (Googlebot, Bingbot, DuckDuckBot, YandexBot, Baiduspider, Applebot), AI crawlers (GPTBot, ChatGPT-User, ClaudeBot, PerplexityBot, CCBot, Bytespider), social preview fetchers, SEO crawlers and command-line clients. The check is a substring match, so anyone can send a Googlebot string.
Where the parsed result is useful
Support teams ask for the User-Agent because a bug that appears only on Samsung Internet or Safari on iPadOS is easier to find once the exact browser and version are known. Copy the string from the first box and paste it into the ticket.
Server logs are the other common source. Paste a log line's User-Agent into the parse box to see whether a burst of traffic came from a search crawler, an AI training bot or a script, then decide whether to allow or block it with the Robots.txt Generator & Tester. For a crawler that claims to be Googlebot, look the visiting address up with the IP Lookup and check its reverse DNS name before trusting the header.
What the header cannot tell you
A User-Agent is self-declared. Developer tools, extensions, privacy browsers and every HTTP library let the sender set it to anything, so it is fine for statistics and debugging and useless for access control. Serve the same content to every client and rely on authentication where it matters.
The parser recognises the browsers and bots listed above. An unfamiliar client falls through to Unknown with whatever operating system tokens it can find. Nothing on this page is sent to DNSfinder's servers: the string, the Client Hints and the environment details are read and displayed locally. To see the address your browser connects from, use What Is My IP.