IP & Network

User-Agent Parser

Decode browser, OS, and device from any UA string.

User-Agent string Paste any UA string, or leave empty to parse this browser's UA.
Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; [email protected])
Showing the parse of the UA your browser sent with this request. Paste a different UA above to compare.
Browser?
Mozilla
Engine?
Unknown
Operating system?
Unknown
Device type?
Bot / Crawler
Bot?
ClaudeBot
Client Hints (this browser)?

High-entropy hints sent by your browser alongside the User-Agent. UA strings pasted into the form do not carry these.

Your browser did not send any Sec-CH-UA-* hints with this request.

What does each field mean?

Field reference

Browser

Parsed brand + version (Chrome 124, Firefox 126, Safari 17.4). Modern Chromium browsers all freeze the UA-string and report a generic UA + use Client Hints for the real values. Trust Client Hints over UA when present.

Engine

Which HTML/CSS engine renders the page. Chrome / Edge / Opera / Brave → Blink. Firefox → Gecko. Safari (incl. iOS) → WebKit. iOS browsers are all WebKit by Apple platform policy.

Operating system

Windows 11, macOS 14, iOS 17, Android 14, Linux. Modern browsers report frozen / coarse versions (Windows 10 + 11 both report "10.0", iOS exposes only major version) for privacy. Use Client Hints for accuracy.

Device type

Best-effort classification. iOS Safari on iPad reports as desktop by default (since iPadOS 13) unless the site requests mobile UA. Custom Chromium-based browsers may mis-classify as desktop.

Device model

Android devices typically include their model in UA (<code>SM-G998B</code> = Galaxy S21 Ultra). iOS only exposes "iPhone" / "iPad", never the model — privacy by design. Many cheap Android browsers hide the model too.

Bot

We flag Googlebot, Bingbot, AhrefsBot, GPTBot, Claude-Web, etc. via well-known UA substrings. Sneaky scrapers spoof browser UAs — UA-based bot detection has false-negative rates, treat it as one signal of many.

Client Hints

Modern alternative to UA: <code>Sec-CH-UA</code>, <code>Sec-CH-UA-Platform</code>, <code>Sec-CH-UA-Mobile</code> etc. Sent on every request once a site opts in via Accept-CH. More accurate than UA-parsing, but only sent to HTTPS origins.

About this tool

A User-Agent string is the long, hard-to-read identifier a browser sends in every HTTP request to describe itself. Our parser breaks it into structured fields: browser name and version, layout engine, operating system and version, device type (desktop, mobile, tablet, bot), CPU architecture, and — where the UA leaks it — device model. Paste any UA you found in your logs and the result appears instantly.

Parsing runs entirely in your browser using a maintained ruleset based on the ua-parser/uap-core regex collection — the same library shipping behind Google Analytics, Cloudflare, and Mozilla telemetry. No network round-trip and no logs are kept of the strings you paste. You can drop your own current UA into the field with a single click to inspect what your browser is announcing right now.

When to use this tool

  • Reading server logs. Decode unfamiliar UA strings — separate real browsers from headless crawlers and frameworks.
  • Debugging compatibility issues. A user reports a layout bug; their UA tells you whether to test on Safari 16, Chrome 120, or some embedded WebView.
  • Bot detection sanity check. A UA claiming to be Chrome but missing several expected version strings is a red flag.
  • Analytics validation. Cross-check that your tracking platform classifies a UA the same way the spec says it should.

The future: Client Hints

Chrome and other Chromium browsers have started shrinking their User-Agent header in favour of the Sec-CH-UA-* Client Hints request headers. Existing UA strings will keep working for years, but a freshly-installed Chrome on Android already returns a UA with the OS version frozen and the device model omitted. If a parsed result looks suspiciously generic, it is likely UA Reduction — not a bug in this tool.

Frequently asked questions

Why does every browser claim to be "Mozilla/5.0"?

Historical accident. In the 1990s websites checked the UA for "Mozilla" to decide whether to serve modern HTML. Other browsers added "Mozilla/5.0" to their UA to qualify, and nobody ever removed it. Today every Chrome, Firefox, Safari, and Edge string starts with "Mozilla/5.0" — it is essentially decorative. The real identity comes later in the string ("Chrome/120.0", "Safari/17.0", etc.).

My Chrome UA does not show my OS version anymore — why?

Google is gradually freezing and reducing the User-Agent string for privacy reasons (the "User-Agent Reduction" initiative). The OS version was frozen at "10.0" for Windows and "10_15_7" for Mac, and on Android the device model is dropped entirely. To get the real values, browsers expose them via the Sec-CH-UA-* request headers, which sites must opt into.

Can I trust the UA to identify a real browser?

No — UA strings are entirely client-set and trivially spoofable. curl --user-agent and any HTTP library can claim to be any browser. For bot detection use a combination of UA, TLS fingerprint (JA3/JA4), HTTP/2 settings, and behavioural signals. UA alone is a hint, not a fact.

What is a "webview" UA?

A webview is an in-app browser embedded inside a mobile app — Facebook, Instagram, Twitter, and many others have their own. The UA looks Chrome- or Safari-like but includes the host app's name (e.g. FBAV/360.0, Instagram 250.0, LinkedInApp). Layout bugs reported by users on these UAs often need their own testing surface — the embedded browser may lag the system browser by several versions.