← Back to Tools

What Is My User Agent?

The browser, OS, screen and viewport details a bug report needs, in one copyable block. Your user agent string is parsed below, with Client Hints filling in the real OS version where your browser offers them. Everything is read locally: nothing is uploaded.

Your user agent string

Detecting…

Browser

Detecting…

Engine

Detecting…

Operating system

Detecting…

Device

Detecting…

Every value on this page is read by JavaScript in your browser and stays on your device. This tool does not send these values anywhere or save them.

User-Agent Client Hints

Chromium-based browsers such as Chrome, Edge and Opera expose the details the UA string no longer carries through navigator.userAgentData, on desktop and Android. This is where the real OS version, CPU architecture and full browser version come from.

Detecting…

Display and environment

Read live from your browser. Resize the window and the viewport updates as you go.

Display

Screen resolution
Detecting…The whole display in CSS pixels. Physical pixels are CSS pixels × pixel ratio.
Viewport
Detecting…The visible page area, scrollbar included. CSS media queries use this width.
Device pixel ratio
Detecting…Physical pixels per CSS pixel. Page zoom changes it in Chrome, Edge and Firefox, so reset zoom first.
Available screen
Detecting…The screen minus the taskbar, Dock or menu bar.
Color depth
Detecting…
Color gamut
Detecting…The widest color space the display reports.
HDR
Detecting…Whether the display and browser report high dynamic range.

Preferences and locale

Color scheme
Detecting…Light or dark preference from the OS or browser.
Reduced motion
Detecting…
Contrast
Detecting…Increased contrast or forced colors, such as Windows contrast themes.
Languages
Detecting…In order of preference, as set in your browser or OS.
Time zone
Detecting…

Hardware and input

Touch points
Detecting…Maximum simultaneous touch points. 0 means no touch screen.
Primary pointer
Detecting…Fine is a mouse or trackpad, coarse is a finger.
CPU threads
Detecting…Logical processors the browser reports.
Device memory
Detecting…Chromium only, rounded to a coarse value for privacy.
GPU
Detecting…Read through WebGL. Some browsers return a generic name for privacy.

Privacy and connection

Cookies enabled
Detecting…
Privacy signals
Detecting…Global Privacy Control and Do Not Track, as this browser reports them.
Connection
Detecting…
Network
Detecting…Chromium only. An estimate from recent traffic, not a speed test.

Copy for bug report

Pick a format and the fields you need. The preview shows exactly what gets copied, ready to paste into the environment section of a ticket.

Format

One field per line. Works anywhere: email, chat, any tracker.

Fields to include

Preview

Detecting…

Parse a user agent

Paste any user agent string, for example from server logs, analytics or a support ticket, and see it parsed with the same rules. A full access log line or a "User-Agent:" header line works too.

Examples

Some browsers cannot be identified from the string at all. Brave, for example, sends exactly the same user agent as Chrome, so any parser reports it as Chrome. Only the live check at the top of this page can spot it.

Frequently Asked Questions

Is my user agent private or unique?+
It is not private: your browser sends it to every website it loads, in the User-Agent request header. On its own it is rarely unique, because millions of people run the same browser version on the same operating system, and Chrome's user agent reduction made strings even more alike. Combined with screen size, time zone, languages, fonts and GPU, though, it becomes one input to browser fingerprinting, which is why browsers keep trimming it.
Why does my user agent start with Mozilla/5.0?+
History. In the 1990s many sites sent their best pages only to Netscape, whose user agent began with "Mozilla". Internet Explorer started calling itself "Mozilla (compatible; MSIE)" to get the same pages, and every browser since has kept the prefix so old browser sniffing keeps working. Today Mozilla/5.0 carries no information at all.
Why does it say Windows 10 when I have Windows 11?+
Windows 11 still identifies itself as Windows NT 10.0, exactly like Windows 10, and Microsoft has said the user agent will not be updated to tell them apart. The reliable signal is User-Agent Client Hints: a platform version of 13 or higher means Windows 11. This page reads that value in Chrome, Edge and Opera. Firefox does not support Client Hints, so there it shows "Windows 10 or 11".
Why does my Mac show macOS 10.15.7?+
Safari and Chrome froze the macOS version in the user agent at 10_15_7, and Firefox at 10.15, so every Mac on macOS 11 Big Sur or later looks like Catalina. The freeze avoids breaking sites that parse the version badly and gives fingerprinting scripts less to work with. In Chrome, Edge and Opera this page reads your real version from Client Hints. In Safari and Firefox, check Apple menu > About This Mac.
How do I find my user agent on iPhone or Android?+
Open this page in the browser you want to check. The full string appears at the top with a Copy button, and the parsed browser and OS sit right below it. In Safari on iOS 26 or later the string itself says iOS 18, because Safari freezes that value, so this page reads the real version from Safari's Version/ token instead. Every browser on the phone has its own user agent, and so do in-app browsers inside Instagram, Facebook or TikTok, so open the page from the exact app where the bug happens. On iPad, Safari requests desktop sites by default and sends a Mac user agent, but this page still recognizes the iPad.
What is the difference between a user agent and an IP address?+
The user agent describes your software: browser, version, operating system and device type. Your IP address identifies your network connection and is assigned by your internet provider, mobile carrier or VPN. Websites receive both with every request, but they answer different questions. This tool only reads what your browser exposes to JavaScript, so it does not show your IP address.

Learn More

Writing bug reports or running test sessions? These guides pair well with this tool:

How to Read a User Agent String

A user agent is a short text string your browser sends with every request, in the User-Agent header, and exposes to JavaScript as navigator.userAgent. Most of it is history. Here is a typical Chrome on Windows string, split into its parts:

Mozilla/5.0(Windows NT 10.0; Win64; x64)AppleWebKit/537.36(KHTML, like Gecko)Chrome/157.0.0.0Safari/537.36
  • Legacy prefix
  • Platform (OS and CPU)
  • Rendering engine
  • Compatibility token
  • Browser
  • Mozilla/5.0: a legacy prefix every major browser sends. It says nothing about the browser.
  • (Windows NT 10.0; Win64; x64): the platform, meaning the operating system and then the CPU architecture. On a Mac this reads (Macintosh; Intel Mac OS X 10_15_7), on Android (Linux; Android 10; K).
  • AppleWebKit/537.36: the engine token. Chrome's Blink engine forked from WebKit in 2013 and still sends this frozen WebKit version.
  • (KHTML, like Gecko): compatibility filler. KHTML is the KDE engine WebKit grew out of, and "like Gecko" was added so sites that served better pages to Gecko browsers would do the same here.
  • Chrome/157.0.0.0: the actual browser and its major version. Edge appends Edg/, Opera appends OPR/ and Samsung Internet adds SamsungBrowser/, while the Chrome token stays for compatibility.
  • Safari/537.36: one more compatibility token, so sites that look for Safari keep working.

Firefox is simpler: Mozilla/5.0 (X11; Linux x86_64; rv:159.0) Gecko/20100101 Firefox/159.0, where rv: is the Gecko version and Gecko/20100101 is a fixed date token on desktop. Safari puts its own version in Version/27.2 and keeps Safari/605.1.15 as a build token. Rule of thumb: read the platform in the first parentheses, then look for the most specific browser token near the end.

User-Agent Reduction: Why Parts of the String Are Frozen

Browsers have spent the last few years trimming the user agent. A detailed string is an easy fingerprinting signal, and sniffing exact versions kept breaking sites. As a result, several values you would expect to be accurate no longer are:

  • Chrome's reduced user agent: between 2022 and 2023 Chrome rolled out User-Agent reduction. The minor version is always 0.0.0, the desktop platform section is fixed, and on Android the device model is replaced with K. Edge, Opera and other Chromium browsers use the same format.
  • macOS stuck at 10_15_7: Safari and Chrome report Intel Mac OS X 10_15_7 on every Mac running macOS 11 or later, and Firefox reports 10.15. All three also say Intel on Apple silicon Macs.
  • iOS stuck at 18: since iOS 26, Safari on iPhone and iPad reports an iOS 18 version (iPhone OS 18_6 or 18_7) whatever the real version is. The Version/ token still carries the real Safari release, which matches the iOS version, for example Version/27.2. Chrome on iOS still sends the real version.
  • Windows 11 as Windows NT 10.0: Windows 11 sends the same token as Windows 10. Microsoft's guidance is to use Client Hints, where a platform version of 13 or higher means Windows 11.
  • Android reduced to K: Chrome on Android sends Linux; Android 10; K whatever the real version and phone model are.

Why Client Hints exist

User-Agent Client Hints move the detail out of the default string. A site gets the low-detail values (brand, major version, platform and whether the device is mobile) by default and has to ask for the rest, such as platform version, architecture, device model and full version, through the Accept-CH response header or navigator.userAgentData.getHighEntropyValues() in JavaScript. Chrome, Edge, Opera and other Chromium browsers support them on desktop and Android. Safari, Firefox and every browser on iPhone and iPad do not, which is why this page can show your exact OS version in some browsers and not in others.

What to Put in the Environment Section of a Bug Report

A developer reading your ticket needs to recreate your setup. These fields cover most front-end bugs, and they are the defaults in the copy block above:

  • Browser and version: rendering and JavaScript support differ between engines and releases. "Chrome 157" narrows a bug down far more than "Chrome".
  • Operating system: fonts, form controls, scrollbars and file dialogs come from the OS.
  • Device type: touch versus mouse changes hover states, tap targets and gestures.
  • Viewport: the size of the page area. Responsive layouts switch at viewport widths, so a menu that breaks at 1023 px but not at 1024 px is a viewport bug. This is the number to report for layout problems.
  • Screen resolution: the whole display in CSS pixels. It rarely affects layout, but it matters for full-screen views, window placement and very wide monitors.
  • Device pixel ratio: how many physical pixels make up one CSS pixel. A ratio of 2 or more is why a 1x image looks blurry, or a hairline border looks different, on one machine and not another.
  • Language and time zone: translations, date and number formats, and off-by-one-day bugs around midnight UTC depend on them.

Add color scheme and reduced motion when the bug involves dark mode or animation, and the GPU when it involves canvas, video or WebGL.

Screen vs viewport vs pixel ratio, in one example

A laptop with a 2880 × 1800 panel running at 200% scaling reports a screen of 1440 × 900 CSS pixels and a device pixel ratio of 2. With the browser maximized, the viewport is smaller again, perhaps 1440 × 790, because tabs, the toolbar and the Dock or taskbar take space. Layout follows the viewport, sharpness follows the pixel ratio.

How to Test With a Different User Agent

  • Chrome and Edge: open DevTools, then the Network conditions panel (Command Menu, "Show Network conditions"). Untick "Use browser default" under User agent and pick a preset or paste your own string. Device Mode (Ctrl+Shift+M, or Cmd+Shift+M on Mac) goes further and also emulates viewport size, pixel ratio and touch.
  • Firefox: Responsive Design Mode (Ctrl+Shift+M, or Cmd+Option+M on Mac) has a user agent field. For the whole browser, add a general.useragent.override string in about:config.
  • Safari: turn on the Develop menu (Settings > Advanced > Show features for web developers), then choose Develop > User Agent.
  • Automated tests: Playwright sets it per browser context with the userAgent option, Puppeteer per page with page.setUserAgent().

Why spoofing the user agent does not change the engine

Changing the user agent only changes the text your browser sends and reports. The page is still laid out and run by your own engine: Chrome pretending to be Safari on an iPhone is still Blink, with Blink's CSS support, font rendering and bugs. That is fine for testing server-side redirects, mobile detection or analytics. It is not enough to reproduce a rendering bug, which needs the real engine: an actual device, Safari itself, the iOS Simulator that comes with Xcode, or Playwright's WebKit build.

Related Tools