Skip to content
Free tool · Follows every Safari release

Safari user agent strings

The User-Agent the current Safari (27.0) sends on Mac, iPhone and iPad, which parts are frozen and since when, and how to tell Safari from the other browsers on Apple's engine. Safari sends no Client Hints.

Current release
Safari 27.0, since September 14, 2026
iOS version in the string
18_7 (frozen)
macOS version in the string
10_15_7 (frozen)

From Apple's Safari release notes, checked every six hours. A point release adds its number, for example Version/27.0.1.

Safari 27.0 user agent

DeviceUser-AgentCopy
MacEvery macOS version, Intel and Apple siliconMozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/27.0 Safari/605.1.15
iPhoneiOS 27Mozilla/5.0 (iPhone; CPU iPhone OS 18_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/27.0 Mobile/15E148 Safari/604.1
iPadDefault: desktop websitesMozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/27.0 Safari/605.1.15
iPad (mobile site)When a site is switched to mobileMozilla/5.0 (iPad; CPU OS 18_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/27.0 Mobile/15E148 Safari/604.1

The frozen OS versions come from WebKit's source (Quirks.cpp, frozenVersion); the Version/ and Safari/ tail is added by the Safari app. Safari 27.0 on an older macOS sends the same Mac string.

What each part says, and what it no longer says

TokenWhat it means
Mozilla/5.0Historical; every browser sends it.
Macintosh; Intel Mac OS X 10_15_7Fixed on every Mac since macOS 11 Big Sur, on Apple silicon too.
iPhone; CPU iPhone OS 18_7Fixed since iOS 26. WebKit's source has 18_7; early iOS 26 builds sent 18_6.
AppleWebKit/605.1.15Fixed; it no longer follows the WebKit build.
Version/27.0The real Safari version, and the one part that moves. On iPhone, Safari's major equals the iOS major.
Mobile/15E148Fixed iOS build number, on iPhone and on iPad in mobile mode.
Safari/605.1.15 or Safari/604.1Fixed: 605.1.15 on the Mac, 604.1 on iPhone and iPad.

Apple froze these parts for the same reason Chrome and Firefox did: sites parsed them and broke when they changed, and each extra detail made visitors easier to tell apart. The difference is that Safari moved the detail nowhere. Chrome sends the real platform version through Client Hints when a site asks; Safari has no such channel, so the OS version is simply gone from what a server receives (whatwg/compat#283 tracks the iOS freeze).

Safari and Client Hints

Safari implements no User-Agent Client Hints: no Sec-CH-UA, Sec-CH-UA-Mobile or Sec-CH-UA-Platform headers, and no navigator.userAgentData in the page. WebKit's source does contain a NavigatorUAData implementation, behind an internal setting that is off by default. A request that claims Safari and carries Sec-CH-UA came from something else.

How to tell Safari apart

  • Safari itself has Version/ and Safari/, and none of Chrome/, CriOS/, FxiOS/, EdgiOS/ or another browser's token. Chrome's string ends in Safari/537.36, never 605 or 604.
  • Other iOS browsers share the engine and most of the string; their own token is the difference. See iPhone user agents.
  • Apps with a built-in browser (WKWebView) usually send the WebKit part without Version/ and Safari/, often followed by the app's own name.
  • An iPad in desktop mode is indistinguishable from a Mac by the string; navigator.maxTouchPoints separates them in a script.
  • Beyond the string: a Safari user agent from a Chromium or Gecko engine contradicts itself in many places (engine-only APIs, the TLS handshake). The browser fingerprint test checks those pairs.

FAQ

What is the latest Safari user agent?

Safari 27.0 on a Mac sends Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/27.0 Safari/605.1.15. On an iPhone: Mozilla/5.0 (iPhone; CPU iPhone OS 18_7 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/27.0 Mobile/15E148 Safari/604.1.

Why does Safari on iOS 27 say iPhone OS 18_7?

Since iOS 26, WebKit no longer writes the real iOS version into the string; it writes a fixed one, now 18_7 (iOS 18.7, the last iOS 18 version when the freeze was made). The real major version is still there in Version/: Safari 27 comes with iOS 27. Code that reads the OS version from iPhone OS sees 18 on every newer iPhone.

Why does Safari on my Mac say Intel Mac OS X 10_15_7?

Every Safari on every Mac says that, on Apple silicon too and on every macOS since Big Sur. The macOS version stopped at 10_15_7 when macOS 11 arrived, because sites that parsed the number misread an 11. The string cannot tell you the macOS version or the processor.

What is the iPad Safari user agent?

By default an iPad asks for desktop websites and sends exactly the Mac string. Only when the user switches a site to its mobile version does it send iPad; CPU OS with Mobile/15E148. Scripts can still tell an iPad from a Mac: navigator.maxTouchPoints is above 1 on an iPad and 0 on a Mac.

Does Safari send Client Hints?

No. Safari sends no Sec-CH-UA headers and has no navigator.userAgentData. WebKit's source contains an implementation behind an internal setting that is off by default, so shipping Safari does not expose it.

Is Chrome on iPhone a Safari user agent?

It looks like one, because every iOS browser uses Apple's WebKit, but it adds its own token: CriOS/ for Chrome, FxiOS/ for Firefox, EdgiOS/ for Edge. The iPhone user agent page lists them.

How do I change the user agent in Safari?

On a Mac, turn on the Develop menu (Safari Settings, Advanced, Show features for web developers), then choose Develop, User Agent. On an iPhone or iPad the only built-in switch is Request Desktop Website, which sends the Mac string.

Clearcote puts this into practice

An open-source Chromium with fingerprint control compiled into the engine. A drop-in for Playwright & Puppeteer.

Free for one browser with GitHub. No card.