Chrome on iPhone user agent string

Chrome for iOS runs on Apple's WebKit, so its string follows Safari's format with CriOS/ and the full Chrome version in place of Version/. Unlike Safari, it reports the device's real iOS version (27.0.1 in this example). Below is a sample user agent string and what each part means.

Mozilla/5.0 (iPhone; CPU iPhone OS 27_0_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/154.0.8037.55 Mobile/15E148 Safari/604.1

At a glance

BrowserChrome 154.0.8037.55
EngineWebKit 605.1.15
Operating systemiOS 27.0.1
DevicePhone

String breakdown

FragmentMeaning
Mozilla/5.0Historical compatibility token. Nearly every browser claims "Mozilla/5.0" so that old servers do not serve it broken pages.
iPhoneiPhone.
CPU iPhone OS 27_0_1 like Mac OS XiPhone system token: iOS 27.0.1. Safari freezes this value (since iOS 26), but browsers and apps that build their own user agent, such as Chrome and WeChat, report the real iOS version here.
AppleWebKit/605.1.15Frozen 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 GeckoCompatibility note: the engine descends from KHTML and behaves like Gecko. Kept for legacy browser sniffers.
CriOS/154.0.8037.55Chrome for iOS, version 154.0.8037.55. On iOS every browser must use Apple's WebKit engine.
Mobile/15E148Fixed build identifier: Safari and other iOS browsers and apps send Mobile/15E148 whatever the real iOS build.
Safari/604.1Safari/WebKit build 604.1 — a compatibility token, not the Safari version. Chromium browsers send it too.

Other forms of this user agent

Request desktop site

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/154 Version/11.1.1 Safari/605.1.15

Use it in code

curl

curl -A "Mozilla/5.0 (iPhone; CPU iPhone OS 27_0_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/154.0.8037.55 Mobile/15E148 Safari/604.1" https://example.com

Python (requests)

import requests
requests.get("https://example.com", headers={"User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 27_0_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/154.0.8037.55 Mobile/15E148 Safari/604.1"})

Playwright (Node.js)

const context = await browser.newContext({ userAgent: "Mozilla/5.0 (iPhone; CPU iPhone OS 27_0_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/154.0.8037.55 Mobile/15E148 Safari/604.1" });

Source: Chromium source: ios/web/common/user_agent.mm · checked September 2026

Related user agents

All user agent strings →

What does your own browser send? Check your user agent →