DevKits

User Agent Parser

Parse User-Agent strings to identify browser, engine, operating system, and device. Instantly see what your own browser sends.

Last updated:

Paste any User-Agent string above (or see your own) to identify the browser, engine, OS, and device. Parsing happens entirely in your browser.

What is User Agent Parser?

A User-Agent string is the identifier a browser or client sends in the User-Agent HTTP header, describing its browser, rendering engine, operating system, and sometimes device. These strings are notoriously convoluted for historical reasons. A parser breaks one down into structured fields so you can quickly tell, for example, that a request came from Chrome 120 on Windows 11 — useful for analytics, support, and debugging.

How to parse a User-Agent string

  1. 1Paste a User-Agent string, or use the one your current browser sends (shown automatically).
  2. 2The parser extracts browser name and version, engine, OS, and device type.
  3. 3Compare fields to confirm what client generated a given request.
  4. 4Copy the structured result for a bug report or analytics note.

Use Cases

Debug browser-specific bugs

Identify the exact browser and version from a log entry to reproduce a rendering or compatibility issue.

Enrich analytics

Turn raw UA strings from access logs into readable browser/OS breakdowns.

Verify what your app sends

Check the UA your browser or HTTP client transmits when troubleshooting server-side detection.

Code Examples

Example UA string

Mozilla/5.0 (Windows NT 10.0; Win64; x64)
AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/120.0 Safari/537.36

Key Concepts

Why UA strings are messy
Browsers historically impersonated each other (hence 'Mozilla/5.0' in nearly every UA) to pass server sniffing, leaving a tangled legacy format.
Feature detection vs UA sniffing
Detecting a capability (e.g. if (window.fetch)) is far more reliable than parsing the UA to decide behavior. Reserve UA parsing for analytics and support.
Client Hints
The modern replacement: browsers send structured Sec-CH-UA headers instead of one opaque string, and Chromium is gradually reducing UA detail.

Tips & Best Practices

  • User-Agent strings are freely spoofable — never use them as a security or access-control signal.
  • Prefer feature detection over UA sniffing for behavior; use UA only for analytics and debugging.
  • Chromium is freezing/reducing UA detail; migrate detection to User-Agent Client Hints where possible.
  • Bots and crawlers set custom UAs — filter known crawler patterns when computing real-user analytics.

Frequently Asked Questions

How reliable is User-Agent detection?

User-Agent strings are freeform and can be spoofed. Chromium is also gradually reducing UA precision. Treat this as a best-effort hint, not a security control.

Should I use User-Agent sniffing in my app?

Prefer feature detection (e.g. 'if (window.WebGL2RenderingContext)') over UA sniffing. UA is fine for analytics and support debugging, but not for behavior-critical branching.

Related Tools