Free tool
Proxy format converter
Paste a proxy list in any common layout and convert it to proxy URLs, another list format, curl commands, Python requests settings, environment variables or JSON.
No account needed. Conversion runs in your browser: the list is not uploaded or stored.
Your proxy list
One proxy per line. Blank lines and lines starting with # are skipped.
Accepts host:port, host:port:user:pass, user:pass@host:port, user:pass:host:port and http, https, socks5 or socks5h URLs. Put IPv6 addresses in square brackets.
Auto cannot always tell host:port:user:pass from user:pass:host:port. If a line is reported as ambiguous, choose the order here.
One proxy URL per line. Credentials are percent-encoded.
Use socks5h to have the proxy resolve hostnames. The scheme must match what the proxy port speaks.
Converted list
Paste a list to convert it.
Conversion runs in this page’s JavaScript. Your list is not uploaded, saved or added to the page address, and the tool makes no network request with it. Spell-check is off for both boxes.
Proxy list formats
The same proxy, written five ways.
Every format carries the same four values: host, port, and an optional username and password. URL formats add the scheme. The examples use documentation addresses and fake logins.
| Format | Example | Notes |
|---|---|---|
| host:port | 192.0.2.10:8080 | No login. Used for proxies that authorise by source address, or when credentials are configured separately. |
| host:port:user:pass | 192.0.2.11:8080:demo-user:example-pass | A common list layout. Credentials are raw text, so a username cannot contain a colon. |
| user:pass@host:port | demo-user:example-pass@198.51.100.7:1080 | Looks like a URL without the scheme. In a list it usually carries raw credentials; the converter splits at the last @. |
| user:pass:host:port | demo-user:example-pass:198.51.100.7:1080 | Same fields in the opposite order. Easy to confuse with host:port:user:pass, so choose the input format when a line is ambiguous. |
| scheme://user:pass@host:port | socks5h://demo-user:example%2Fpass@203.0.113.5:1080 | A proxy URL. The scheme names the protocol spoken to the proxy, and credentials are percent-encoded. |
For the parts of a proxy URL and how clients read them, see the proxy URL format guide.
Credentials in a URL
Why passwords need percent-encoding.
Inside a URL, @, :, /, ? and # separate its parts. If a password contains one of them unencoded, a client can read the wrong host, port or password. Percent-encoding writes each such character as % plus its byte value, so it stays part of the credential.
Encode the original username and password once, then assemble the URL. A literal % in a password becomes %25. Encoding an already encoded value again changes what the client sends.
List formats without a scheme hold raw credentials, so the converter decodes when it reads a URL and encodes when it writes one. Clients with separate username and password fields take the raw values.
Raw password to URL
- Raw password
- p@ss:w/rd%
- Encoded
- p%40ss%3Aw%2Frd%25
- Proxy URL
- http://demo-user:p%40ss%3Aw%2Frd%25@192.0.2.11:8080
Choosing a scheme
socks5 or socks5h: where DNS happens.
With socks5://, many clients, including curl, resolve the destination hostname on your machine and send the proxy an IP address. With socks5h://, the client sends the hostname and the proxy resolves it. Use socks5h when name resolution should happen at the proxy, for example when testing how a site responds from the proxy’s location.
http:// means plain HTTP to the proxy, which tunnels HTTPS destinations with CONNECT. https:// means the connection to the proxy itself uses TLS, which needs a proxy port and client that support it. Changing the scheme does not change what the port speaks: use the scheme your provider documents for that port.
Compare the protocols in HTTP vs SOCKS5 proxies, then check a converted line with a curl proxy test.
Privacy
What happens to the list you paste.
Converted in the page
Parsing and formatting run in your browser’s JavaScript. Nothing is sent to a server for conversion, and the converter makes no network request with your input.
Not stored
The list is not saved to the page address, browser storage or an account. Reloading the page clears both boxes.
You choose where it goes
Copy and download act only on the output you see. Treat that output like any other credential file.
Continue
Use the converted list.
Test a proxy with curl
Separate the proxy connection, destination response and curl result.
Proxy URL format
Scheme, host, port and credential encoding in one place.
Mobile proxies
Mobile 4G/5G traffic paid per GB, from one shared balance.
Residential proxies
Residential traffic on the same credential and balance.