Safari on iPad user agent string
Safari on iPad requests desktop websites by default and sends exactly the same string as Safari on a Mac, so the UA alone cannot tell them apart. iPad mini, narrow windows and "Request Mobile Website" switch to the iPad string below, whose OS version is also frozen at 18_7. Below is a sample user agent string and what each part means.
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
At a glance
| Browser | Safari 27.0 |
| Engine | WebKit 605.1.15 |
| Operating system | Mac OS 10.15.7 |
| Device | Desktop |
String breakdown
| Fragment | Meaning |
|---|---|
Mozilla/5.0 | Historical compatibility token. Nearly every browser claims "Mozilla/5.0" so that old servers do not serve it broken pages. |
Macintosh | Mac computer. |
Intel Mac OS X 10_15_7 | macOS 10.15.7. Newer systems freeze this at 10.15.7, and Apple Silicon Macs still report "Intel". |
AppleWebKit/605.1.15 | Frozen WebKit token: Safari has reported 605.1.15 for years, and browsers that copy Safari's format send the same value, whatever the real engine version. |
KHTML, like Gecko | Compatibility note: the engine descends from KHTML and behaves like Gecko. Kept for legacy browser sniffers. |
Version/27.0 | The browser's real version: 27.0 (mainly used by Safari). |
Safari/605.1.15 | Safari/WebKit build 605.1.15 — a compatibility token, not the Safari version. Chromium browsers send it too. |
Other forms of this user agent
Mobile mode (iPad mini, narrow windows, or Request Mobile Website)
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
Use it in code
curl
curl -A "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" https://example.comPython (requests)
import requests
requests.get("https://example.com", headers={"User-Agent": "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"})Playwright (Node.js)
const context = await browser.newContext({ userAgent: "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" });
Source: WebKit source: WebPageProxyIOS.mm · checked September 2026