Rainproxy ships with realistic fingerprint rotation built in. Fresh UA, headers and TLS profiles on every session. Pair it with 75M+ residential IPs and you're indistinguishable from a real user.
Want to know what your own machine reports instead? Run the OS detection check to see your operating system, version, device type and CPU architecture.
Every UA string is a tiny manifest of browser, engine, OS and device. We parse it client-side so nothing leaves your machine.
Drop any UA from your logs, analytics or a real request. Even one you've never seen before.
A layered matcher pulls browser, version, engine, OS and device type. Fully in your browser.
Known crawlers, headless browsers and HTTP clients are flagged so you can separate humans from bots.
Reliable device classification. Handy when your analytics is lying or your CDN is splitting traffic.
Catches Puppeteer, Playwright, Selenium, curl, axios and the usual scraping fingerprints.
No network call. The UA string never leaves the page. Paste production data without worry.
This free Rainproxy tool decodes User-Agent strings. Paste one from a log file, a request header or your own browser and it breaks the string down into browser and version, operating system, rendering engine, device type and bot status. Parsing happens in your browser, so nothing is uploaded.
A User-Agent is a free-text header a client sends with every request. Modern strings are full of legacy tokens kept for compatibility, which is why nearly every browser still claims to be Mozilla/5.0. The meaningful parts are the platform block in parentheses and the final product tokens, and that is what the parser extracts.
Well-behaved crawlers identify themselves clearly, with strings such as Googlebot or bingbot, and the parser flags them. Automation tools are harder: headless Chrome, older Selenium builds and default HTTP clients like python-requests or curl leave recognisable traces. If you are scraping and your UA reads python-requests/2.31, you are announcing yourself on every request.
Anti-bot systems compare the User-Agent against the rest of the request. A Chrome-on-Windows string paired with the header order of a Python client, or with a TLS fingerprint that does not match, is a clear signal. Use a current, realistic User-Agent, keep it consistent with the rest of your headers, and pair it with residential or mobile IPs so the network side matches too.