Chrome on macOS user agent string
The macOS token is frozen at "Intel Mac OS X 10_15_7", even on Apple silicon Macs and current macOS releases. The real macOS version and CPU architecture come from the Sec-CH-UA-Platform-Version and Sec-CH-UA-Arch client hints. Below is a sample user agent string and what each part means.
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/154.0.0.0 Safari/537.36
At a glance
| Browser | Chrome 154.0.0.0 |
| Engine | Blink 154.0.0.0 |
| 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/537.36 | WebKit rendering engine, build 537.36. Chromium browsers keep this token for compatibility. |
KHTML, like Gecko | Compatibility note: the engine descends from KHTML and behaves like Gecko. Kept for legacy browser sniffers. |
Chrome/154.0.0.0 | Chrome (or a Chromium-based browser), version 154.0.0.0. |
Safari/537.36 | Safari/WebKit build 537.36 — a compatibility token, not the Safari version. Chromium browsers send it too. |
Use it in code
curl
curl -A "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/154.0.0.0 Safari/537.36" 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/537.36 (KHTML, like Gecko) Chrome/154.0.0.0 Safari/537.36"})Playwright (Node.js)
const context = await browser.newContext({ userAgent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/154.0.0.0 Safari/537.36" });
Source: User-Agent Reduction · checked September 2026