Check what a user-agent string can and cannot tell you before you rely on it
Runs in your browser. Nothing you type is sent anywhere. Updated on 25 Oct 2026.Before you branch your code on a user-agent string, see what it actually carries. Windows 11 still reports Windows NT 10.0. Safari has reported macOS 10.15.7 since Big Sur. Chromium freezes the version at 0.0.0. An iPad in desktop mode is indistinguishable from a Mac. Each problem is listed against the string you paste, with the client hint that answers it properly.
Paste the user-agent string your code branches on.
Read "What this string cannot tell you" for the frozen versions and misreported systems in it.
Read the client hints table, already open on this page, for the header that answers each question properly.
Copy the Accept-CH line under the table to ask browsers for the hints you need.
Paste a user-agent string and this parser tells you the browser and version, the rendering engine, the operating system and version, the device type, and whether the sender is a known bot. It reads the string in a fixed order, most specific token first, because every browser puts other browsers' names in its own string on purpose.
The tool is deliberately honest about what the string cannot tell you. Windows 11 still reports Windows NT 10.0. Safari has reported macOS 10.15.7 since Big Sur, whatever version is really running. Chrome on iOS is WebKit, because iOS allows nothing else. Chromium froze the version digits at 0.0.0 in 2022. An Android tablet is told from a phone only by the absence of the word "Mobile". Each of these appears as a note against the string you paste.
Anything you paste stays in the page: there is no lookup service behind this, no database call and no network request of any kind. For anything you plan to act on, use feature detection, and use the Sec-CH-UA client hints listed on the page for platform details the string cannot give you.
The rest of the article, and all 6 questions about User-Agent Parser, are on the User-Agent Parser page.
Read it from the most specific token backwards. Chrome sends Mozilla, AppleWebKit, Chrome and Safari; Edge adds Edg on the end. The last brand token is usually the real browser. Paste the string here and each part is separated for you, with the parts that are only compatibility fossils marked as such.
No. Microsoft kept the platform token at Windows NT 10.0 for Windows 11, so no user-agent string distinguishes them. The only reliable source is the Sec-CH-UA-Platform-Version client hint, which your server must request with an Accept-CH header first.
Apple froze the version reported in the user-agent string when Big Sur shipped, to stop sites blocking new releases they had not tested. Chrome on macOS does the same. So 10_15_7 means "macOS, version withheld", not Catalina.
Only for polite bots. Anyone can send any string, including Googlebot's. Real verification is a reverse DNS lookup on the requesting IP address, checked forward again, against the ranges the search engine publishes. Treat the name in the string as a hint, never as proof.
Still stuck? Ask about User-Agent Parser and anybody who knows can answer. No account needed.
Same job, other tools: Commitlint Online – Run commitlint with config-conventional on a commit message, without installing anything · Razorpay Test Cards – Razorpay test mode card numbers: Visa, Mastercard, RuPay, Amex, Diners, and error cards · Stripe Test Cards – Stripe’s test card numbers by brand and outcome, with expiry and CVC ready to copy · Link Preview Checker – Find the missing tag behind a WhatsApp or Slack link with no picture · Readability Checker – Flesch reading ease and grade level, with what to change.
In the collection Debug and Inspect.