User-Agent checker: what your browser says about itself
Your browser introduces itself to every website with a line of text called the User-Agent. Below, we've decoded yours into browser, operating system, device and engine. To decode a different one, paste it into the box.
Your User-Agent, decoded
Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; [email protected])
- Browser
- Unknown
- Engine
- WebKit
- OS
- Unknown
- Device
- Desktop
- Is bot
- No
The User-Agent, in plain words
The User-Agent is a short line of text that a browser, app or script sends with every request. It usually names the browser and its version, the operating system, the engine that draws the page and sometimes the type of device.
Here's the sort of line Chrome sends from a Windows 11 computer. Don't worry if it looks like gibberish; decoding it is exactly what this tool is for:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0 Safari/537.36
Why it matters when you use a proxy
Many websites sit behind bot-protection services such as Cloudflare, Akamai, PerimeterX or DataDome. These look at lots of details about each visit, and the User-Agent is one of the first. If it names a program rather than a browser (the default from Python's requests library, say, or "curl/7.x"), or claims to be a very old version of Chrome, the visit may be stopped before the page even loads.
A residential or mobile proxy can't fix that on its own. If your script still sends python-requests/2.31.0, the IP looks like a household while the User-Agent says "script", and sites tend to believe the User-Agent.
Changing the User-Agent (for scripts)
In an everyday browser, leave the User-Agent alone. If you write scripts, each common tool lets you set one:
- cURL:
curl -A "Mozilla/5.0 ..." https://example.com - Python requests:
requests.get(url, headers={"User-Agent": "Mozilla/5.0 ..."}) - Puppeteer:
await page.setUserAgent("Mozilla/5.0 ...") - Playwright:
browser.new_context(user_agent="Mozilla/5.0 ...") - Scrapy: put
USER_AGENTin settings.py
Keep it steady. If a script uses several proxies, give each proxy its own User-Agent and stick with it, rather than changing it on every request. Free, regularly updated lists of real User-Agents are easy to find, covering Chrome on Windows, Safari on iOS and Chrome on Android.
The IP and the User-Agent should tell the same story
A proxy decides which IP a site sees; the User-Agent decides which browser and device it sees. Sites look at the two together. Safari on an iPhone arriving from a Comcast home connection looks like someone on their sofa using home Wi-Fi: completely normal. The same iPhone User-Agent arriving from an AWS data centre doesn't add up, and visits like that are much more likely to be stopped or asked to prove they're human.
Using our residential or mobile proxies for market research, ad checks or testing? Match the User-Agent to the device you want to test as, such as a phone User-Agent with a mobile proxy. Stay within each site's terms of service and the law that applies to you.