World’s largest virtual agentic engineering & quality conference
Get the latest Chrome user agent strings for different platforms. Check the newest Chrome versions for Windows, macOS, Android, and more.
Last updated on : 2026-07-17
Keeping track of your Chrome user agent string ensures you’re getting the right experience, whether you’re testing web compatibility, protecting your privacy, or troubleshooting site issues. If you’re wondering what your current UA string is, how to view it, or even spoof it, you’re in the right place.
As of April 25, 2025, for the stable release of Chrome 134.0.6998.31 on Windows 10, the typical UA string is:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36
This string identifies your browser version, rendering engine, and operating system in every HTTP request.
Chrome sends a slightly different user agent string on each operating system. Modern Chrome uses the reduced user agent format: the browser reports only its major version and freezes the minor, build, and patch numbers to 0.0.0 (for example Chrome/134.0.0.0). It also freezes most operating system details, so a string identifies the platform family rather than the exact OS build. This reduction is deliberate — it limits the passive fingerprinting and cross-site tracking that a highly detailed UA string used to enable.
Here are representative Chrome user agent strings for each major platform. The major version shown here (134) increments with every Chrome release, roughly every four weeks — the live tables at the top of this page always reflect the current strings pulled from Google's release data.
| Operating System | Latest Chrome User Agent String |
|---|---|
| Windows 11 (64-bit) | Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36 |
| Windows 10 (64-bit) | Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36 |
| macOS (Sequoia / Sonoma) | Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36 |
| Linux | Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36 |
| Android | Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Mobile Safari/537.36 |
| iOS (iPhone) | Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) CriOS/134.0.0.0 Mobile/15E148 Safari/604.1 |
A few things worth knowing about how these strings behave:
Not sure what UA string your browser is sending? Here’s how to find out:
Both methods reveal exactly what Chrome reports to websites.
Want to see how a site behaves on a different device or browser version? Override Chrome’s UA in a few clicks:
This lets you simulate virtually any browser or device without additional software.
Chrome's built-in DevTools override (above) is ideal for a quick, one-off test, but it only lasts while DevTools stays open and applies to a single tab. If you switch user agents often — or want a spoofed UA to persist across sessions and apply to every request — a dedicated Chrome extension is the better fit. Two options from the Chrome Web Store are widely used:
For automated testing and web scraping, you'll usually set — and often rotate — the Chrome user agent in code. Cycling through a pool of realistic UA strings helps distribute automated requests and lets you check how a site responds to different browsers and devices. Here's how to set the Chrome user agent in the three most common automation frameworks.
Pass the string with the --user-agent switch on ChromeOptions. To rotate, loop over a list and start a fresh driver for each string:
from selenium import webdriver
user_agents = [
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36",
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36",
]
for ua in user_agents:
options = webdriver.ChromeOptions()
options.add_argument(f"--user-agent={ua}")
driver = webdriver.Chrome(options=options)
driver.get("https://www.example.com")
print(driver.execute_script("return navigator.userAgent"))
driver.quit()Puppeteer exposes page.setUserAgent(), so you can change the UA on each new page:
const puppeteer = require('puppeteer');
const userAgents = [
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36',
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36',
];
(async () => {
const browser = await puppeteer.launch();
for (const ua of userAgents) {
const page = await browser.newPage();
await page.setUserAgent(ua);
await page.goto('https://www.example.com');
await page.close();
}
await browser.close();
})();Playwright sets the user agent per browser context, which keeps each rotated identity fully isolated (cookies, storage, and cache):
const { chromium } = require('playwright');
const userAgents = [
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36',
'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Mobile Safari/537.36',
];
(async () => {
const browser = await chromium.launch();
for (const ua of userAgents) {
const context = await browser.newContext({ userAgent: ua });
const page = await context.newPage();
await page.goto('https://www.example.com');
await context.close();
}
await browser.close();
})();Rotating the user agent only changes the header Chrome reports; other automation fingerprints (such as the navigator.webdriver flag) remain, so pair UA rotation with the other stealth techniques your test or scraping framework recommends.
The web is moving toward a more privacy‑focused approach known as User‑Agent Client Hints. Rather than sending one long string on every request, Chrome shares only the details a site explicitly asks for, through request headers such as Sec-CH-UA, Sec-CH-UA-Platform, and Sec-CH-UA-Mobile. Low-entropy hints such as the browser brand, platform, and a mobile flag are sent by default, while high-entropy details like the full version and CPU architecture are only delivered when the server requests them. On the client side, the same information is available in JavaScript through the navigator.userAgentData API — for example, navigator.userAgentData.getHighEntropyValues() returns the detailed values a site would otherwise parse out of the UA string. As Chrome continues its regular release cycle every 4–6 weeks, your UA string and how you work with it may evolve. Bookmark this page to stay informed about any changes.
KaneAI - Testing Assistant
World’s first AI-Native E2E testing agent.

TestMu AI forEnterprise
Get access to solutions built on Enterprise
grade security, privacy, & compliance