Free tool
Proxy formatter any shape in, the shape you need out
Paste a proxy list in whatever format your provider handed you and take it back in the one your tool wants. It reads six layouts and five separators, tells you what it made of every line, and does the whole thing in your browser: your credentials never leave the tab.
Your list, any format
Give it back as
Result
Nothing pasted yet
Drop a list in on the left. It is read and rewritten here in your browser, and it never leaves this tab.
How it works
Three steps, none of them on a server
Nothing to configure before you start. Paste, pick a format, copy.
01
Paste whatever you have
Mixed formats in one list are fine. Every line is read on its own, so an export that changed shape halfway through still comes out clean.
02
It tells you what it read
Each line is labeled with the shape it was recognized as, and anything it could not read is listed with the reason instead of being dropped in silence.
03
Take it in the shape you need
Ten output formats, or write your own template. Copy it, or download it as txt, csv or json.
What it reads
Six layouts, five separators, one list
A list that changes shape halfway through is still fine. Every line is read on its own, and fields can be split by a colon, a space, a tab, a comma, a semicolon or a pipe.
host:portThe bare endpoint. What a public list looks like.
host:port:user:passThe most common paid export, and what most tools want pasted back.
user:pass@host:portWhat curl, requests and most libraries expect inside a URL.
host:port@user:passThe reverse, which a handful of panels export.
user:pass:host:portCredentials first. Told apart from the line above by which field is a port.
scheme://anything abovehttp, https, socks4, socks5, and the socks4a and socks5h spellings.
Why it is not trivial
The hard part is reading the list, not writing it back
Joining four fields with colons takes a line of code. Working out which four fields you were given is the part that goes wrong, and it goes wrong silently.
Two formats look identical
45.12.30.7:8080:alice:s3cret and alice:s3cret:45.12.30.7:8080 are both four fields split by colons. A formatter that assumes one of them will silently mangle the other. This one checks which field parses as a port and which as a host, and only guesses when both readings genuinely work. When it guesses, it says so.
Passwords contain the separator
An @ or a colon inside a password breaks most parsers. We split on the last @, not the first, and a password keeps every colon after the first one, so p@ss and a:b:c survive intact.
Nothing is posted anywhere
The input to this tool is a list of proxies with the passwords still in it. There is no request in the page: the parse and the rewrite happen in your browser, and the list never leaves the tab. Turn off your network after the page loads and it still works.
It cleans while it converts
Duplicate endpoints, blank lines and comment lines are handled on the way through, and you can sort by host or drop the credentials entirely if you are about to share the list.
Questions
Proxy formatter FAQ
What people ask before they paste a list with passwords in it into a website, answered against what the page actually does.
What is a proxy formatter?
It converts a list of proxies from whatever shape you have into the shape a particular tool wants. Providers export proxies half a dozen different ways, and scrapers, browsers and libraries each expect their own, so a list that works in one place often has to be rewritten before it works in another. This does that rewrite, line by line, and tells you what it made of each one.
Which formats can it read?
host:port, host:port:user:pass, user:pass@host:port, host:port@user:pass and user:pass:host:port, with or without an http, https, socks4 or socks5 scheme in front. Fields can be separated by colons, spaces, tabs, commas, semicolons or pipes, and a single list can mix all of them.
How does it tell host:port:user:pass from user:pass:host:port?
By reading the fields rather than assuming an order. A port is a number from 1 to 65535 and a host is a dotted address with octets under 256 or a real hostname with a non-numeric TLD, so in almost every list only one of the two readings actually fits. When both fit, which happens if the credentials themselves look like an endpoint, it takes host:port:user:pass because that is by far the more common export, and it labels that line as a guess so you can check it.
Is my proxy list sent to your server?
No. There is no network call in the page. The list is parsed and rewritten by JavaScript running in your browser, and the result is built in the same tab you pasted into. You can disconnect from the internet after the page loads and it will still work, which is the only proof worth anything for a tool whose input is credentials.
Can I use it for lists from other providers?
Yes. It does not check where a proxy came from and it does not care whether you have an account. Paste a list from any provider or a public list you found somewhere.
What is the custom template for?
Some tools want a shape nobody else uses. The template takes {scheme}, {host}, {port}, {user} and {pass} and puts them wherever you write them, so you can produce something like 45.12.30.7|8080|alice|s3cret or a line of config without editing the list by hand.
Why did it skip some of my lines?
Because they did not contain a host and a port it could recognize. The skipped lines are listed with the reason, so you can see whether it was a truncated line, a header row from a spreadsheet, or a port outside 1 to 65535. Blank lines and lines starting with #, ; or // are treated as comments and are not counted as errors.
How do I check the proxies once they are formatted?
Paste the result into the free proxy checker. It tests every line on a real connection and gives you alive or dead, speed, anonymity level and the country each one actually exits from, which is the part a formatter cannot tell you.
After the reformat
A tidy list is not a working list. Check it next.
The formatter can tell you a line is shaped like a proxy. It cannot tell you whether anything answers on it. That is one paste away.
The upgrade
Residential proxies
$0.18per GB, and the balance never expires
Lite rotates the address for you. Premium adds city targeting and sticky sessions of up to 24 hours. Either way your traffic goes to one gateway address, so there is no file to re-check every morning.
Elsewhere on HProxy
Free proxy list
Public proxies, tested around the clock with this same checker. Something to test.
Datacenter and ISP
Dedicated addresses priced per IP, for work that needs the same exit every time.
Mobile proxies
Exits on mobile carrier networks.
API and docs
The same checker and the same pools, wired straight into your own code.
Pricing
Every product on one page, with the volume ladder spelled out.