X Xerobit

User Agent String Examples — What UA Strings Look Like in 2025

User agent strings identify browsers, operating systems, and devices. Here's what UA strings look like for Chrome, Firefox, Safari, mobile browsers, bots, and crawlers — with...

Mian Ali Khalid · · 4 min read
Use the tool
User Agent Parser
Parse any User-Agent string into browser, OS, device, and engine. Or detect your own. Built on the maintained ua-parser-js dataset.
Open User Agent Parser →

A user agent string is a text identifier that browsers and bots send in HTTP request headers. It tells servers what software is making the request. Here’s what real UA strings look like and how to read them.

Use the User Agent Parser to parse and decode any user agent string.

Desktop browser examples

Chrome on Windows

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

Reading this:

  • Windows NT 10.0 — Windows 10 or 11
  • Win64; x64 — 64-bit architecture
  • Chrome/124.0.0.0 — Chrome version 124
  • AppleWebKit/537.36 — Blink engine (WebKit-compatible)
  • Safari/537.36 — legacy compatibility token

Firefox on macOS

Mozilla/5.0 (Macintosh; Intel Mac OS X 14.4; rv:124.0) Gecko/20100101 Firefox/124.0
  • Macintosh; Intel Mac OS X 14.4 — macOS Sonoma
  • rv:124.0 Gecko/20100101 — Gecko engine
  • Firefox/124.0 — Firefox version 124

Safari on macOS

Mozilla/5.0 (Macintosh; Intel Mac OS X 14_4_1) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4.1 Safari/605.1.15
  • AppleWebKit/605.1.15 — WebKit engine version
  • Version/17.4.1 — Safari version
  • Safari/605.1.15 — Safari token

Edge (Chromium)

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

Looks like Chrome UA + Edg/124.0.0.0 token at the end.

Mobile browser examples

Chrome on Android

Mozilla/5.0 (Linux; Android 14; Pixel 8) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.6367.82 Mobile Safari/537.36
  • Linux; Android 14 — Android version
  • Pixel 8 — device model
  • Mobile — indicates mobile browser

Safari on iPhone

Mozilla/5.0 (iPhone; CPU iPhone OS 17_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4.1 Mobile/15E148 Safari/604.1
  • iPhone; CPU iPhone OS 17_4_1 — iOS version
  • Mobile/15E148 — iOS build
  • Safari/604.1 — Safari

Samsung Internet

Mozilla/5.0 (Linux; Android 14; SM-S928B) AppleWebKit/537.36 (KHTML, like Gecko) SamsungBrowser/24.0 Chrome/117.0.0.0 Mobile Safari/537.36
  • SM-S928B — Samsung device model (Galaxy S24 Ultra)
  • SamsungBrowser/24.0 — Samsung Internet version

Crawler and bot examples

Googlebot

Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)

Googlebot (rendering)

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

Googlebot uses a Chrome-like UA for rendering JavaScript.

Bingbot

Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)

Twitter/X card preview bot

Twitterbot/1.0
facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)

Common monitoring/testing tools

curl/8.6.0
python-requests/2.31.0
Go-http-client/2.0
Wget/1.21.4
PostmanRuntime/7.37.0

The “Mozilla/5.0” mystery

Every modern browser starts with Mozilla/5.0. This is historical: browsers claimed to be “Mozilla compatible” for server compatibility, and it stuck. It no longer means Netscape or Firefox.

Reading OS from the UA string

PatternOS
Windows NT 10.0Windows 10/11
Windows NT 6.3Windows 8.1
Macintosh; Intel Mac OS XmacOS
Linux; AndroidAndroid
iPhone; CPU iPhone OSiOS (iPhone)
iPad; CPU OSiPadOS
Linux; UbuntuUbuntu (rare in UA)
CrOSChromeOS

Parsing UA strings in JavaScript

// Modern approach: User-Agent Client Hints (when available)
if (navigator.userAgentData) {
  const { brands, mobile, platform } = navigator.userAgentData;
  console.log({ brands, mobile, platform });
  
  // Get detailed hints:
  const data = await navigator.userAgentData.getHighEntropyValues([
    'architecture', 'model', 'platform', 'platformVersion', 'fullVersionList'
  ]);
  console.log(data);
}

// Fallback: parse the UA string
const ua = navigator.userAgent;
const isChrome = /Chrome/.test(ua) && !/Chromium|Edge/.test(ua);
const isSafari = /Safari/.test(ua) && !/Chrome/.test(ua);
const isFirefox = /Firefox/.test(ua);
const isMobile = /Mobile|Android|iPhone|iPad/.test(ua);

// Better: use a library
import UAParser from 'ua-parser-js';
const parser = new UAParser(ua);
const result = parser.getResult();
// { browser: { name: 'Chrome', version: '124' }, os: { name: 'Windows', version: '10' }, ... }

Related posts

Related tool

User Agent Parser

Parse any User-Agent string into browser, OS, device, and engine. Or detect your own. Built on the maintained ua-parser-js dataset.

Written by Mian Ali Khalid. Part of the Dev Productivity pillar.