← Tools
Browser

User Agent Parser

Decode any User-Agent string to browser, engine, OS, and device type. Preloaded with your current browser.

User-Agent String0 chars
Paste a UA string above to decode it

What is a User-Agent?

A User-Agent (UA) is an HTTP header sent by the browser on every request. It identifies the browser name and version, rendering engine, operating system, and device type. Servers use it to serve device-appropriate content.

Despite its name, a UA is just a string — browsers can spoof it freely, and many do for compatibility reasons (e.g. Chrome includes "Safari" in its UA for legacy site support).

UA String Structure

A typical Chrome UA looks like:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36

  • Mozilla/5.0 — legacy compatibility token (all modern browsers use it)
  • (Windows NT 10.0; Win64; x64) — OS platform
  • AppleWebKit/537.36 — rendering engine
  • Chrome/124.0.0.0 — actual browser and version

UA Sniffing vs Feature Detection

Avoid UA sniffing for feature detection in production code — it breaks when new browsers or OS versions are released. Prefer if ('feature' in navigator) or CSS@supports instead.

UA parsing is still useful for analytics, logging, bot filtering, and debugging cross-browser issues — just not for deciding which HTML/CSS to serve.

Frequently Asked Questions

Why does Chrome include "Safari" in its UA?

Historical compatibility. Early Webkit-based browsers added "Safari" to avoid being blocked by sites that only allowed Safari. Chrome inherited this and kept it to avoid breaking those same sites.

Can I detect mobile devices from the UA?

Yes, but it is fragile. Look for Mobile in the UA for phones, or the absence of it on Android for tablets. The more robust approach is CSS media queries with pointer: coarse.

What is User-Agent Client Hints?

UA Client Hints (UA-CH) is a newer API that replaces the full UA string with structured, privacy-preserving hints sent only when the server requests them — reducing passive fingerprinting surface.

Why does the parser show "Unknown" for some UAs?

Custom browsers, embedded webviews, and automation tools (like Playwright) often use non-standard UA strings. The parser covers all major browsers but cannot exhaustively handle every custom agent.