What is my user agent?

This is the User-Agent header your browser sent with this page, exactly as our server received it, broken down into its parts.

Your user agent

Parsed from the header

Browser
Engine
Operating system
Device
CPU
Client type

What JavaScript reports

navigator.userAgent

Does it add up?

  • Checking…

What a user agent string is

Every request your browser makes carries a User-Agent header: one line of text that tells the server which software is asking. Sites use it to serve the right version of a page, to decide whether a feature is safe to use, to block old browsers with known security holes, and to count which browsers their visitors use. Search engines and AI crawlers announce themselves through it too, which is why "user agent" also comes up when you write a robots.txt file.

Above you can see yours exactly as it arrived, then the same string split into browser, rendering engine, operating system and device type. We also classify the client: a regular web browser, a search-engine crawler such as Googlebot, an AI crawler such as GPTBot or ClaudeBot, an AI assistant fetching a page for a user, a link-preview bot, a command-line tool or an HTTP library.

How to use it

  1. Open the page in the browser, device or automation session you want to check. The line at the top is the User-Agent header as our server received it with this request.
  2. Press Copy user agent to copy the exact string, with nothing trimmed or retyped.
  3. Read Parsed from the header for the browser, engine, operating system, device, CPU and client type extracted from that string.
  4. Compare it with What JavaScript reports. When navigator.userAgent matches the header, the row says so; when it differs, the JavaScript value is printed in full. The Client Hints rows fill in only in Chromium browsers on HTTPS.
  5. Read Does it add up? It checks the header against JavaScript, the operating system against the Client Hints platform, and whether the automation flag is set.

When you test an override in developer tools, reload after changing it so the header is sent again, then see which rows moved and which still describe your real browser.

Use cases

  • Filing a bug report. Paste the copied string so the developer sees the exact browser, version and platform instead of a vague latest Chrome on Windows.
  • Testing a User-Agent switcher. Turn the extension on and reload. If Does it add up? flags a header versus JavaScript or Client Hints mismatch, sites can see through the disguise as well.
  • Checking an automated browser. Point a Selenium or Playwright session at the page to see the string it really sends and whether it announces itself through navigator.webdriver.
  • Explaining a desktop layout on an iPad. Safari on iPadOS requests desktop sites by default and sends a Mac User-Agent, so the parsed operating system reads macOS. Turning off Request Desktop Website in Safari's settings brings back the tablet string.
  • Writing a server rule. Before matching browsers in a redirect, a firewall rule or an analytics filter, collect real strings from the browsers you care about and test the pattern against them.

How to read a user agent string

A typical desktop Chrome string looks like this:

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36
  • Mozilla/5.0 — a compatibility token every modern browser sends. It means nothing about Firefox.
  • (Windows NT 10.0; Win64; x64) — the platform: operating system and CPU architecture. Windows 11 still reports 10.0.
  • AppleWebKit/537.36 (KHTML, like Gecko) — more compatibility history; Chrome's Blink engine forked from WebKit, which forked from KHTML.
  • Chrome/141.0.0.0 — the real browser and its major version. The zeros are deliberate: Chrome hides the minor version.
  • Safari/537.36 — yet another compatibility token.

Firefox uses Gecko/20100101 Firefox/141.0, Safari ends with Version/18.0 Safari/605.1.15, and Edge appends Edg/141.0.0.0 to the Chrome string. Mobile browsers add Mobile, and iPhone browsers all identify as Safari underneath, because iOS requires them to use Apple's engine.

Client Hints: the user agent's replacement

Chromium browsers (Chrome, Edge, Opera, Brave, Samsung Internet) have frozen most of the classic string and moved the details to User-Agent Client Hints. By default they send three small headers — Sec-CH-UA with brands and major versions, Sec-CH-UA-Mobile and Sec-CH-UA-Platform — and a site can ask for more, such as the full version, the CPU architecture or the phone model. Pages can read the same data through navigator.userAgentData. Firefox and Safari do not implement Client Hints. Client Hints are only available on HTTPS pages.

Changing your user agent

Developer tools in every browser can override the User-Agent for testing, and extensions can do it permanently. That is handy for checking how a site behaves on another device, but it is a poor privacy tool. Changing the header does not change navigator.userAgentData, the TLS handshake, the list of fonts or the way your browser renders a canvas, so the disguise contradicts everything else. The Does it add up? box above runs the same comparisons a bot-detection script would: header versus JavaScript, and User-Agent versus Client Hints.

Check the user agent of a script or tool

Command-line tools and libraries send their own user agents — curl/8.x, python-requests/2.x, Go-http-client/1.1 — and many sites block those by default. To see exactly what your tool sends, point it at our endpoint from the same machine:

curl "iseeu.cc/ua?format=text"
curl iseeu.cc/ua            # parsed, as JSON
python -c "import requests; print(requests.get('https://iseeu.cc/ua').json())"

AI agents can call the parse_ua tool on our MCP server to parse any user agent string, including crawler strings they find in logs.

Frequently asked questions

What is a user agent?

A user agent is the program that makes a web request on your behalf, usually your browser. Its User-Agent header is a line of text that names the browser, its version, the rendering engine and the operating system.

Why does every browser's user agent start with Mozilla/5.0?

Historical compatibility. In the 1990s sites sent better pages to Netscape, whose code name was Mozilla, so other browsers copied the prefix to receive them. Every major browser still keeps it.

Can I change my user agent?

Yes. Browser developer tools and extensions can override it. But Client Hints, JavaScript properties and the TLS handshake still describe your real browser, so a changed User-Agent is easy to detect.

What are User-Agent Client Hints?

A newer mechanism in Chromium browsers that sends a short brand and platform by default and lets sites request details such as the exact version, architecture or device model.

Why does my user agent show an old operating system version?

Browsers freeze parts of the string to reduce fingerprinting. Chrome reports Windows NT 10.0 even on Windows 11 and a fixed macOS version, and fills minor version numbers with zeros.

How do I check the user agent of curl or a script?

Run curl iseeu.cc/ua?format=text from the same machine or tool. It prints the User-Agent header exactly as our server received it.

User-agent parsing is based on patterns and can misidentify new or unusual browsers. Bot classification reflects what a client claims to be; anyone can send any User-Agent.