Free tool
Proxy formatterany 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 labelled with the shape it was recognised 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 recognise. 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.44per GB, and the balance never expires
Clean pools with city-level targeting and sticky sessions, running on the same network that just probed your list. You stop re-checking a file every morning, because the addresses are not shared out from under you.
Elsewhere on HProxy
Free proxy list
Thousands of live residential, datacenter and mobile IPs, verified around the clock. Something to test.
Datacenter and ISP
Dedicated IPs priced per address rather than per gigabyte, for work that needs a stable, fast exit.
Mobile proxies
Carrier IPs for the targets that treat everything else as a bot.
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.