WeChat on iPhone user agent string

WeChat on iOS renders pages with Apple's WebKit, so the UA has no Safari/ or Chrome/ token, and unlike Safari it reports the real iOS version. MicroMessenger identifies WeChat and NetType shows the current network. Below is the exact string it sends and what each part means.

Mozilla/5.0 (iPhone; CPU iPhone OS 26_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.76(0x18004c34) NetType/WIFI Language/zh_CN

At a glance

TypeIn-app browser
OperatorTencent
BrowserWeChat 8.0.76
EngineWebKit 605.1.15
Operating systemiOS 26.6
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 26_6 like Mac OS XiPhone system token: iOS 26.6. 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.
Mobile/15E148Fixed build identifier: Safari and other iOS browsers and apps send Mobile/15E148 whatever the real iOS build.
MicroMessenger/8.0.76(0x18004c34)WeChat 8.0.76; the hex value in brackets is its internal version code (iOS builds carry no build number). Sites detect WeChat by this token.
NetType/WIFICurrent network type as reported by the app: WIFI (such as WIFI, 4G or 5G).
Language/zh_CNInterface language of the app: zh_CN.

Use it in code

curl

curl -A "Mozilla/5.0 (iPhone; CPU iPhone OS 26_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.76(0x18004c34) NetType/WIFI Language/zh_CN" https://example.com

Python (requests)

import requests
requests.get("https://example.com", headers={"User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 26_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.76(0x18004c34) NetType/WIFI Language/zh_CN"})

Playwright (Node.js)

const context = await browser.newContext({ userAgent: "Mozilla/5.0 (iPhone; CPU iPhone OS 26_6 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.76(0x18004c34) NetType/WIFI Language/zh_CN" });

Source: user-agents.net: WeChat 8.0.76 on iPhone (real-traffic sample) · checked September 2026

Related user agents

All user agent strings →

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