DevTools Logo

User Agent Parser

User Agent Parser

Parse and analyze user agent strings to identify browser, OS, and device.

User Agent String

Enter a user agent string to parse.

Examples

Chrome on Windows

Input
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/126.0.0.0 Safari/537.36
Output
{
  "browser": "Google Chrome",
  "os": "Windows",
  "device": "Desktop",
  "engine": "Blink"
}

The Chrome and Win markers select Chrome, Blink, Windows, and the default Desktop device class.

Safari on iPhone

Input
Mozilla/5.0 (iPhone; CPU iPhone OS 17_5 like Mac OS X) AppleWebKit/605.1.15 Version/17.5 Mobile/15E148 Safari/604.1
Output
{
  "browser": "Apple Safari",
  "os": "iOS",
  "device": "Mobile",
  "engine": "WebKit"
}

The parser first recognizes iOS from like Mac, then refines the device to Mobile because the string contains Mobile.

Firefox on Linux

Input
Mozilla/5.0 (X11; Linux x86_64; rv:127.0) Gecko/20100101 Firefox/127.0
Output
{
  "browser": "Mozilla Firefox",
  "os": "Linux",
  "device": "Desktop",
  "engine": "Gecko"
}

Firefox takes the first browser branch, while Linux sets the operating system and no mobile marker changes the default device.

About this tool

The User Agent Parser applies a lightweight set of substring checks to identify a browser family, operating system, device class, and rendering engine. It recognizes Firefox, Samsung Internet, Opera, Internet Explorer, legacy Edge, Chromium Edge, Chrome, and Safari, then reports one of Windows, MacOS, Linux, Android, or iOS when the corresponding marker is present.

On first load, the tool fills the input with the current browser's navigator.userAgent value and parses it automatically. You can replace that value with any user-agent string and click Parse to inspect the four classifications together with their JSON representation. Parsing runs entirely in the browser and does not send the string anywhere.

This is intentionally a simple classifier rather than a complete user-agent database. It reports browser and engine families without version numbers, uses ordered substring matching, and returns Unknown when it does not recognize a browser or operating-system marker.

How to use

  1. Review the detected user agent

    Open the page to parse the current browser's navigator.userAgent value automatically.

  2. Enter another string

    Replace the input with the user-agent string you want to inspect.

  3. Run the parser

    Click Parse to classify the browser, operating system, device type, and rendering engine.

  4. Inspect the raw result

    Read the four summary cards or use the formatted JSON in Raw Data when you need the complete result together.

Use cases

Triage a browser-specific bug report

Paste the user-agent string attached to a support ticket to quickly identify its browser family, engine, operating system, and broad device class.

Check analytics samples

Classify a few raw user-agent values when validating whether an analytics export contains the clients you expect.

Inspect automation traffic

Test user-agent strings emitted by browser automation or HTTP clients and see which fields this lightweight classifier can recognize.

Demonstrate user-agent detection

Use the automatic current-browser result to explain how substring-based client detection works and where it can be ambiguous.

Common mistakes

Mistake:Treating the result as authoritative device detection.

Fix:Use it as a quick heuristic only. User-agent strings can be reduced, changed, or spoofed, and the parser recognizes a limited set of markers.

Mistake:Expecting browser or operating-system versions in the result.

Fix:The component reports families only. Read the original string or use a version-aware parser when exact versions matter.

Mistake:Assuming every Chromium-based browser will be named correctly.

Fix:Check the raw string and the parser's ordered branches. Unrecognized Chromium derivatives may be reported as Chrome when they contain the Chrome marker.

Mistake:Editing the input and expecting the cards to update immediately.

Fix:Click Parse after changing the string; only the initial navigator.userAgent value is parsed automatically on mount.

Frequently asked questions

References & standards