Skip to main content

Browser support

get-browser recognizes the families that account for >99% of public web traffic in 2026.

Recognized browsers

FamilyWhat detect() returnsUA tokens matched
Google Chrome'chrome'Chrome/ (desktop, Android), CriOS/ (iOS), Chromium/ (Brave, Vivaldi, …)
Microsoft Edge'edge'Edge/ (legacy EdgeHTML), Edg/ (Chromium-Edge desktop), EdgA/ (Android), EdgiOS/ (iOS)
Mozilla Firefox'firefox'Firefox/, FxiOS/ (Firefox iOS)
Apple Safari'safari'Safari/ with Apple vendor — excludes CriOS, FxiOS, EdgiOS, OPiOS
Opera'opera'Opera/ (Presto), OPR/ (Chromium-Opera), window.opera / window.opr
Internet Explorer'ie'MSIE (6–10), Trident/ (11)
Android WebView'android'Android + Mozilla/5.0 + AppleWebKit (without any of the above)
Anything else'unknown'Empty UA, bots, brand-new browsers

Version coverage

The detection logic keys on stable family tokens, not version numbers. As long as Chrome calls itself Chrome/, Edge calls itself Edg/, and so on, version bumps don't affect correctness. The fixture suite locks in:

  • Chrome 131, 140
  • Edge 131, 140
  • Firefox 122, 138
  • Safari 17, 18, 26
  • Opera 117

Including iOS / Android / Windows / macOS / Linux variants for each.

Mobile coverage

isMobile() matches the common mobile / tablet tokens — iPhone, iPod, iPad, Android+Mobile, BlackBerry, webOS, Symbian, Maemo, Windows CE, Opera Mini, Opera Mobi, and many others. See the isMobile() API page for the full list.

iPadOS gotcha

Since iPadOS 13 (2019), iPad's default Safari UA looks exactly like macOS Safari. There is no reliable way to tell them apart from the UA alone. We catch iPads only when the user toggles "Request Mobile Website" or when an in-app WebView preserves the iPad token. See isSafari() notes.

Detection ordering

detect() walks the families most-specific-first to disambiguate Chromium siblings:

This matters because Chromium-Edge advertises both Chrome/ and Edg/. Without ordering, detect() would have to make a tie-breaker call. Running isEdge first guarantees Edge wins.

What's not supported

  • Version numbers. Use ua-parser-js or bowser.
  • OS detection. Same recommendation.
  • Bots, crawlers. Most identify themselves with a name like Googlebot/2.1 — for those, regex the UA directly.
  • Smart TVs, game consoles, embedded WebViews. Most resolve to the underlying engine (Chrome, Safari) or 'unknown'.

See also