Dev · Live
User Agent Parser & Client Info,
browser, OS, device & capabilities.
Instantly detect your browser, operating system, rendering engine, and device type from the User Agent string. Switch to Manual mode to paste and debug any UA string. Includes a live client diagnostics panel with screen size, DPI, timezone, touch support, and more.
User Agent
Client dashboard
navigator.userAgent
Detecting…
Live diagnostics
Client capabilities
Loading client metrics…
Dev reference
What is a User Agent string, and why does every browser send one?
What is a User Agent?
A User Agent (UA) string is a text string sent by a browser or client application in the User-Agent HTTP request header when it fetches any resource from a web server. It identifies the browser, its version, the operating system, and sometimes additional metadata about the rendering engine and device. Server-side code and analytics platforms read this string to adapt their responses — serving mobile-optimised pages, correct file formats, or targeted content based on the detected client.
Anatomy of a modern User Agent string
A typical Chrome UA on Windows looks like:
Breaking it down:
- Mozilla/5.0: A historical compatibility token carried by virtually every modern browser. In the early web, servers would serve enhanced content only to Netscape (Mozilla). All other browsers eventually adopted this prefix so they would not receive degraded pages. It no longer uniquely identifies any browser.
- (Windows NT 10.0; Win64; x64): The platform token in parentheses. Contains the OS family and version (
Windows NT 10.0covers both Windows 10 and 11), architecture (Win64; x64), and sometimes additional flags likeWOW64(32-bit process running on 64-bit Windows). - AppleWebKit/537.36 (KHTML, like Gecko): The rendering engine token. Chrome uses the Blink engine (a fork of WebKit), and this segment exists for compatibility: early WebKit-only features would work in Chrome because servers saw the WebKit token. The
KHTML, like Geckocomment is similarly historical. - Chrome/124.0.0.0: The actual browser identifier with its full four-part version number.
- Safari/537.36: Another compatibility token. Chrome identifies as Safari so it receives Safari-specific content that was once gated on that identifier.
Why UA strings are so complex and misleading
UA strings carry decades of baggage. Every new browser has had to claim to be older browsers to avoid being excluded by server-side feature gates. Firefox claims to be Mozilla. Chrome claims to be Safari. Edge (before switching to Chromium) claimed to be Chrome. The result is that parsing a UA string to reliably identify a browser requires reading it carefully from the most specific tokens to the most general, not simply checking whether "Chrome" appears anywhere.
For example, Opera's UA contains the string Chrome (because Opera is Chromium-based) as well as its own identifier OPR/. A naive check for "Chrome" would misidentify Opera as Chrome. Similarly, Samsung Internet is Chromium-based and contains both Chromeand SamsungBrowser; only checking for the more specific token first produces the correct result.
Rendering engines
A rendering engine (also called a browser engine or layout engine) is the component responsible for parsing HTML, applying CSS, and painting the page. Four major engines have shaped the modern web:
- Blink: Used by Chrome, Edge (since 2020), Opera, Samsung Internet, and most other Chromium-based browsers. A 2013 fork of WebKit by Google and Opera. Now the engine behind the majority of web traffic.
- WebKit: Used by Safari (macOS and iOS) and all browsers on iOS (App Store rules require iOS browsers to use WebKit). Created by Apple in 2002, forked from KHTML.
- Gecko: Used by Firefox and Firefox-based browsers. Developed by Mozilla; one of the oldest continuously developed open-source layout engines.
- Trident / EdgeHTML: Microsoft's legacy engines, used in Internet Explorer (Trident) and the original Edge before the Chromium switch (EdgeHTML). Both are no longer in active development.
UA reduction and User-Agent Client Hints
Google has been progressively reducing the information exposed in the Chrome UA string since 2022, a project called UA reduction. The full OS version, device model, and CPU platform are being replaced with generic values. In their place, Chrome now supportsUser-Agent Client Hints (UA-CH), a structured API where the server explicitly requests only the client information it needs, reducing passive fingerprinting surface.
The new API exposes structured data (browser name, full version, platform, architecture, model) via HTTP headers and a JavaScript API (navigator.userAgentData). This parser reads the traditional UA string, which remains available for compatibility, but developers should prefer navigator.userAgentData in modern applications where available.
Device Pixel Ratio and Retina displays
The Device Pixel Ratio (DPR) reported in the diagnostics panel is the ratio of physical screen pixels to CSS logical pixels. A standard 1080p monitor has a DPR of 1 — one CSS pixel equals one physical pixel. Apple Retina displays (HiDPI) typically have a DPR of 2 or 3, meaning CSS pixels are rendered at 2× or 3× the physical pixel density. A DPR of 2 means a CSS image sized at 200×200 logical pixels needs a 400×400 physical source image to appear sharp. Using the wrong image resolution on Retina displays causes blurry rendering.