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
| Device | User-Agent | Copy |
|---|---|---|
| MacEvery macOS version, Intel and Apple silicon | 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 | |
| iPhoneiOS 27 | 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 | |
| iPadDefault: desktop websites | 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 | |
| iPad (mobile site)When a site is switched to mobile | Mozilla/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
| Token | What it means |
|---|---|
| Mozilla/5.0 | Historical; every browser sends it. |
| Macintosh; Intel Mac OS X 10_15_7 | Fixed on every Mac since macOS 11 Big Sur, on Apple silicon too. |
| iPhone; CPU iPhone OS 18_7 | Fixed since iOS 26. WebKit's source has 18_7; early iOS 26 builds sent 18_6. |
| AppleWebKit/605.1.15 | Fixed; it no longer follows the WebKit build. |
| Version/27.0 | The real Safari version, and the one part that moves. On iPhone, Safari's major equals the iOS major. |
| Mobile/15E148 | Fixed iOS build number, on iPhone and on iPad in mobile mode. |
| Safari/605.1.15 or Safari/604.1 | Fixed: 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/andSafari/, and none ofChrome/,CriOS/,FxiOS/,EdgiOS/or another browser's token. Chrome's string ends inSafari/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/andSafari/, often followed by the app's own name. - An iPad in desktop mode is indistinguishable from a Mac by the string;
navigator.maxTouchPointsseparates 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.
Related free tools
What is my user agent?
Your User-Agent and Client Hints, and whether they agree with each other.
What browser am I using?
Your browser and version, and whether it is up to date.
Chrome user agent strings
The latest Chrome user agents and Sec-CH-UA headers, and a generator for any version.
Firefox user agent strings
Current Firefox strings for desktop, Android and iPhone, and why Firefox sends no Client Hints.
Edge user agent strings
Microsoft Edge on every platform, with its Sec-CH-UA brand list.
Android user agent strings
Chrome, Edge and Firefox on Android, and where the real model went.
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.