Proxy Checker
Parse, normalise, validate and dedupe a proxy list in this browser — any common format in, the format your tool expects out. Free, no signup, the list stays on this page.
- Parsing runs in your browser
- Liveness testing not live yet
- No signup
One proxy per line. Mixed formats are fine — host:port, host:port:user:pass, user:pass@host:port and full URLs are all read. Lines starting with # or // are ignored.
Cleaned list
Valid, de-duplicated entries in the format you picked. Copied exactly as shown, credentials included.
Paste a list on the left and the cleaned version appears here.
Parsed proxies
Parsing, normalising and de-duplication run in your browser. Live testing is not enabled yet, so nothing is sent anywhere and the liveness column stays empty.
Paste a list above to see it parsed, normalised and de-duplicated.
Where your list goes
- Parsing, validation, de-duplication and export all happen in this tab.
- The list is never uploaded, and it is never written to local storage, session storage, a cookie or the address bar.
- Nothing from this tool is printed to the browser console.
- Close or reload the tab and the list is gone.
Liveness testing is not switched on yet. When it ships it will be a button you press, and it will necessarily send the proxies you choose to test — credentials included — to our server, because dialling a proxy is what the test is.
Now give every account its own device.
A clean browser is still one browser. Sendwin runs each profile in isolation with its own fingerprint, cookies and proxy, so the accounts you work on never look like they came from the same machine.
- Isolated profiles, each with its own fingerprint and cookies
- A proxy per profile, with the timezone bound to the proxy country
- Windows, macOS and Linux — plus cloud sessions when you need them
The free plan includes 10 minutes of cloud browsing a day.
One list, four notations and a panel that accepts one
Every tool that accepts proxies writes them down differently. One vendor hands you host:port:user:pass, the next writes user:pass@host:port, a third exports full URLs with a scheme, and the panel you are pasting into accepts exactly one of the three. A list assembled from a few sources is really several formats stacked together, usually with duplicates, a stray blank line and a couple of typos hidden in the middle. This page reads all of those shapes, normalises them into one structure, tells you which lines it could not parse and why, drops exact duplicates, and re-emits the list in whichever format you need.
What it does not do is tell you whether a proxy works, and it is worth being blunt about why. A web page cannot dial a proxy: JavaScript has no socket, fetch cannot be pointed at one, and proxy settings belong to the operating system or the browser profile rather than to the page. Liveness, latency and exit IP have to be measured by a server that connects on your behalf, and ours is not switched on yet. Until it is, this page does the part that can be done honestly and locally, and stays quiet about the part that cannot.
The formats, and the one that silently breaks imports
Four shapes cover almost everything: host:port for open proxies, host:port:user:pass, user:pass@host:port, and a full URL such as socks5://user:pass@host:port. The scheme carries real meaning — http and https proxies speak HTTP and CONNECT, socks5 carries any TCP connection, and socks5h additionally resolves DNS at the proxy instead of on your machine. The trap is field order: some vendors export user:pass:host:port, which is the same four values in the opposite order. A list like that looks perfectly well formed, imports without complaint, and then fails every connection, because the hostname is now a username.
Elite, anonymous and transparent
Those labels describe what an HTTP proxy adds to your request on the way through. A transparent proxy forwards your original address in X-Forwarded-For, Via or Forwarded, so the site sees both the proxy and you — worthless for anything that needs the two unlinked. An anonymous proxy hides your address but still announces itself as a proxy through one of those headers. An elite, or high-anonymity, proxy adds nothing at all, so the request that arrives looks like an ordinary direct one. The distinction can only be established by a server reading the headers that actually arrived, which is the test that is not live here yet.
Why some proxies can never be tested from outside
Even with a server doing the dialling, a proxy is only testable if it is reachable from that server. Anything on 127.0.0.1 is meaningful only on your own machine. RFC1918 addresses such as 192.168.1.10 or 10.0.0.5 describe your local network and resolve to somebody else's network from anywhere on the internet. The same applies to a proxy firewalled to your own IP or bound to a VPN interface. Those entries will come back as not reachable from here once testing ships, and that result says nothing about whether they work where you are — it is a statement about routing, not about the proxy.
How the list is cleaned
- 1
Paste the list
One proxy per line, mixed formats are fine. Each line is split into scheme, host, port, username and password, and anything that cannot be read that way is set aside rather than quietly dropped.
- 2
Read what came back
Valid lines are normalised into one structure, exact duplicates are collapsed, and every rejected line is listed with the reason it failed — a missing port, a port out of range, a host that is not a hostname or an IP.
- 3
Export the shape you need
Pick the format your panel, browser or script expects and copy the cleaned list out. All of it happened in this browser: the list is not uploaded, and closing the tab is all the cleanup there is.
Other free checks
A proxy only helps if the browser in front of it agrees with the country it exits from. These check that.
Proxy list FAQ
What the formats mean, why a browser cannot dial a proxy, and which entries can never be tested from outside your network.
They carry the same information in different orders. host:port is the bare form for a proxy that needs no login. host:port:user:pass and user:pass@host:port both add credentials, and some vendors reverse the first one into user:pass:host:port. A URL form such as http://user:pass@host:port or socks5h://user:pass@host:port adds the protocol explicitly, which is the only form that is unambiguous — everything else leaves the tool to assume, and most assume HTTP.
They describe how much an HTTP proxy tells the destination. Transparent forwards your real address in headers like X-Forwarded-For, so the site sees the proxy and you. Anonymous withholds your address but still identifies itself as a proxy. Elite, also called high-anonymity, adds nothing, so the arriving request is indistinguishable from a direct one. Only the third is useful when two accounts must look unrelated.
Because a page has no way to open a connection through one. JavaScript gets fetch and WebSocket, neither of which can be pointed at a proxy, and the browser's own proxy configuration lives in the operating system or the browser profile where a page cannot reach it. Requesting a proxy's address directly is not proxying — it is an ordinary HTTP request to that host, and the cross-origin rules block you from reading the answer anyway. Testing genuinely requires a server that dials the proxy for you.
No, and that is worth knowing before you paste one in. A proxy on 127.0.0.1, on a 192.168.x.x or 10.x.x.x address, or one firewalled to your own IP, is only reachable from where you are. Our server would be dialling a completely different network, so those lines will report as not reachable from here once liveness testing ships. Read that as a routing fact rather than a verdict on the proxy.
No. Parsing, validation, dedupe and export all run in the page, and the list is not sent anywhere or stored. Being straight about the roadmap: liveness testing, when it ships, will necessarily send the proxy details to our server, because dialling a proxy is what the test is. That will be an explicit action you choose, with the credentials involved spelled out at the point you choose it — never something that happens because you pasted a list.
For browser work either is fine, as long as your tool and your provider agree on which one the endpoint speaks. HTTP proxies handle HTTP directly and tunnel HTTPS through CONNECT. SOCKS5 is lower level and carries any TCP connection, which matters for non-web traffic. The variant worth knowing is socks5h: it resolves hostnames at the proxy rather than on your machine, so your own resolver never sees the domains you are visiting.
If the accounts have to look unrelated, yes — a shared exit address is one of the simplest links to draw between two logins, and it survives every other precaution. Sendwin assigns a proxy per profile and binds that profile's timezone to the proxy's country, so the clock and the exit agree instead of contradicting each other. Once a proxy is in place, the WebRTC leak test is the quickest way to confirm the browser is not going around it.
Still have questions? Talk to us →
What a clean result here means
To be exact about what a clean result here means: every line parsed, nothing was a duplicate, and the list will import. It does not mean the proxies are alive. Credentials expire, subscriptions lapse and endpoints get retired, and nothing on this page reaches out to check — liveness, latency and exit-IP testing need a server-side endpoint we have not switched on yet. Until then, read this as a linting pass over your list, not a health check.
A proxy per profile, assigned once.
Sendwin gives every profile its own proxy and binds that profile's timezone to the proxy's country, so you stop tracking which list entry belongs to which account. Free for 30 days on Windows, macOS and Linux.
30-day free trial · $0 today · cancel anytime — your profiles stay on your machine