Skip to main content

User-Agent parser

Parse a User-Agent string locally to detect its browser, rendering engine, operating system, device type and known bots.

  • Clipboard

Embed this widget

Customize the result, check the live preview, then copy the code.

Preview

Embed code type

Code to copy

Responsive and automatically resized by Bethemesh.

Was this tool useful?

How does this tool work?

This parser breaks down a User-Agent string, the header every browser and crawler sends to a website, into readable information: browser, rendering engine, operating system, device type and any bot. Use it to read server logs, make sense of an analytics figure or check what your own browser sends.

Known crawlers (Googlebot, Bingbot, DuckDuckBot, YandexBot, Baiduspider, Applebot and the Facebook, X and LinkedIn crawlers) are checked first, then any User-Agent containing bot, crawler, spider or slurp is classified as a generic bot.

The browser is identified in a precise order, because almost all of them claim compatibility with others: Edge and Opera before Chrome, Chrome before Safari. The version is the one announced in the string.

The engine is deduced from the browser: Blink for Chrome, Edge, Opera and Samsung Internet, WebKit for Safari, Gecko for Firefox, Trident for Internet Explorer.

The system and device are read from the part in brackets: Windows NT 10.0, iPhone OS 17_6, Android, Mac OS X… An iPad that presents itself as a Mac is recognised thanks to the Mobile token.

How to use this tool

  1. Paste the string

    In the User-Agent string field, or click Use my User-Agent for your browser’s own string.

  2. Parse

    Click Parse, or pick a string from the examples provided.

  3. Read the cards

    Browser, Engine, Operating system, Device and Bot, each with its version or model.

  4. Use the JSON

    The JSON result contains every value for a spreadsheet or script.

Use cases

Read server logs

Understand who is behind a log line: a real visitor, a search engine crawler or a script.

Debug a display issue

Identify exactly the browser and system of a user reporting a bug.

Spot a bot

Check whether a string found in your analytics belongs to a known crawler.

Examples

Chrome on Windows

Windows NT 10.0 is shared by Windows 10 and 11, so the string alone cannot tell them apart.

Input

User-Agent string: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36

Result

Browser: Google Chrome 129.0.0.0 · Engine: Blink 537.36 · Operating system: Windows 10/11 (10.0) · Device: desktop · Bot: Not detected

Safari on iPhone

The iPhone model and iOS version are read from the brackets; the engine is WebKit, as for every browser on iOS.

Input

User-Agent string: Mozilla/5.0 (iPhone; CPU iPhone OS 17_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.6 Mobile/15E148 Safari/604.1

Result

Browser: Safari 17.6 · Engine: WebKit 605.1.15 · Operating system: iOS 17.6 · Device: mobile (iPhone) · Bot: Not detected

Googlebot Smartphone

Googlebot presents itself as Chrome on Android to crawl the mobile version, and the tool classifies it as a bot.

Input

User-Agent string: Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.6668.70 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)

Result

Browser: Google Chrome 129.0.6668.70 · Engine: Blink 537.36 · Operating system: Android 6.0.1 · Device: bot (Googlebot) · Bot: Detected (Googlebot)

Tips and best practices

  • A User-Agent string can be changed freely: any script can pretend to be Googlebot. To verify a real Googlebot, run a reverse DNS lookup on its IP address.
  • Chrome and Safari freeze part of their string (Mac OS X 10_15_7, Windows NT 10.0) to limit tracking, so the system version shown may be older than the real one.
  • To adapt a site to a device, prefer CSS media queries and feature detection over parsing the User-Agent.
  • Chromium browsers also send more precise Client Hints (Sec-CH-UA), which this tool does not read.

Sources and references

Frequently asked questions

Why “Windows 10/11” rather than the exact version?

Windows 11 still sends Windows NT 10.0 in its User-Agent. Only Client Hints (Sec-CH-UA-Platform-Version) can tell them apart, and they are not part of the string.

Why do all browsers contain Mozilla and Safari?

For historical compatibility: each new browser copied its predecessors’ tokens so websites would not block it. That is why the tool applies a precise detection order.

Is a bot necessarily malicious?

No. Googlebot, Bingbot and social network preview crawlers are useful. Generic bots detected by the words bot, crawler or spider simply deserve a closer look.

What does an “Unknown” result mean?

The string matches no known rule: a rare browser, an in-app browser, an HTTP client such as curl or a truncated string. The JSON result is still there for you to examine.

Is the string sent to a server?

No. The parsing runs in your browser.

Related tools

Tools similar or complementary to this one.

Similar tools

Analyze key SEO signals in HTML locally.

Web & SEOFeaturedUse this tool
TutorialBest practicesBeginner

Optimize images for the Web without losing quality

Resize, compress and choose between WebP, AVIF and other formats with a practical workflow that reduces file size without unnecessary visual loss.

30 August 20264 min