The ip:port:user:pass Proxy Format: Read, Convert, Enter Correctly
Updated:
ip:port:user:pass is the most common way providers deliver proxies: four parts separated by colons, namely the proxy server's IP address, the port, the username and the password. For example, 203.0.113.10:8080:client01:Abc123 means connect to 203.0.113.10 on port 8080 and log in as client01 with password Abc123. The trouble is that every tool wants it differently: some expect user:pass@ip:port, some want a full URL like http://user:pass@ip:port, and others have four separate fields. This guide explains each format, shows how to convert lists in bulk with a tool or a one-line command, and lists the mistakes that cause wrong-password errors or failed connections.
Reading each part of ip:port:user:pass
The first two parts say where to connect; the last two authenticate you. If you receive only ip:port, that proxy relies on an allowed IP instead of a password; user/pass vs IP whitelist authentication explains the difference.
| Part | Example | Meaning |
|---|---|---|
| ip | 203.0.113.10 | The proxy server your software connects to |
| port | 8080 | The port opened for your proxy on that server, a whole number |
| user | client01 | Username issued by the provider |
| pass | Abc123 | Matching password, case-sensitive |
Common proxy formats
The same proxy can be written several ways. The content is identical; only the order and separators change.
| Format | Example | Typical use |
|---|---|---|
| ip:port:user:pass | 203.0.113.10:8080:client01:Abc123 | Provider lists, many antidetect browsers |
| user:pass@ip:port | client01:[email protected]:8080 | Some tools and browser extensions |
| http://user:pass@ip:port | http://client01:[email protected]:8080 | curl, Python, Node.js, environment variables |
| user:pass:ip:port | client01:Abc123:203.0.113.10:8080 | Some account-management software |
| ip:port | 203.0.113.10:8080 | Proxies authenticated by allowed IP |
| Four fields | Host, Port, Username, Password | OS settings, Proxifier, mobile apps |
Converting formats in bulk
A few proxies you can edit by hand. For dozens or hundreds of lines, use the proxy format converter: paste the list, choose the output format and copy the result.
From a terminal, sed converts proxies.txt from ip:port:user:pass to URLs:
sed -E 's#^([^:]+):([^:]+):([^:]+):(.*)$#http://\3:\4@\1:\2#' proxies.txt > proxies-url.txt
Or to user:pass@ip:port:
sed -E 's#^([^:]+):([^:]+):([^:]+):(.*)$#\3:\4@\1:\2#' proxies.txt
This only works when the password contains no colon. For special characters, see the errors section below.
Entering proxies in code and tools
In Python requests, use the URL form for both http and https, since an HTTP proxy handles HTTPS pages through the CONNECT method:
proxies = {'http': 'http://client01:[email protected]:8080', 'https': 'http://client01:[email protected]:8080'}
With curl: curl -x http://203.0.113.10:8080 -U client01:Abc123 https://api.ipify.org prints the proxy's exit IP.
Step-by-step setups are in Python requests proxy setup, curl proxy setup and Windows proxy setup. Note the prefix stays http:// even when you visit https:// sites.
Common input mistakes
- Trailing spaces or line breaks: copying from spreadsheets or chats often adds a space after the password, which usually ends in 407 Proxy Authentication Required.
- Wrong order: pasting
ip:port:user:passinto a field expectinguser:pass:ip:portmakes the tool treat the username as the host. - Special characters in URLs: characters like
@,:,/and#must be percent-encoded inside a URL, for example@becomes%40, or the string is split in the wrong place. - Using https:// for an HTTP proxy: many libraries read
https://as a TLS connection to the proxy itself and fail the handshake. For a normal HTTP proxy, usehttp://. - Whole string in the Host field: Host takes only the IP; port and credentials go in their own fields.
- Wrong or blocked port: test with the port checker; office networks may block unusual ports, see check proxy and firewall.
- Wrong protocol selected: an HTTP proxy must be set as HTTP or HTTPS, not SOCKS. See HTTP vs SOCKS5.
Checking after you enter it
- Open the what is my IP tool in the browser or profile using the proxy; it should show the proxy's IP, not your home IP.
- For long lists, paste them into the proxy checker to see which lines work and which are malformed.
- On a 407, recheck the username and password; on a timeout, check IP, port and your own network using the proxy timeout guide.
The VinaProxy proxy format
VinaProxy delivers proxies as ip:port:user:pass, over HTTP/HTTPS with username and password authentication. Copy the list from your dashboard and convert it to whatever your software needs. Each IP goes to one customer and stays the same for the rental period, so the string keeps working until you stop renewing. Current prices are on the pricing page.
Frequently asked questions
Is ip:port:user:pass different from user:pass@ip:port?
Not in content, only in order and separators. Convert to whichever form your software expects.
Why do I get a 407 error when the details look right?
Usually a stray space, a case mismatch in the password, or special characters that were not percent-encoded in a URL.
Do I need to add http:// in front of the proxy?
In code, curl and environment variables, yes. In antidetect browsers or OS settings you usually pick HTTP from a list and enter IP and port separately.
Can an HTTP proxy open HTTPS websites?
Yes. It opens a tunnel with the CONNECT method, and HTTPS content stays encrypted between browser and website.
What is the fastest way to convert 500 proxies?
Use the proxy format converter or a sed one-liner like the ones above, then spot-check a few lines before importing them.
Proxies delivered as ip:port:user:pass
Datacenter IPv4 in 7 countries and static ISP in Vietnam and the US. HTTP/HTTPS, personal credentials, automatic activation.
View pricing