Home / Blog

Proxy formats explained: host:port:user:pass vs user:pass@host:port

Updated November 7, 2026 · 2 min read

The same proxy can be written four different ways. Which format your tool expects, how to convert between them, and the special-character trap in passwords.

Every proxy is the same four pieces of information: a host, a port, a username and a password. Tools just disagree about how to write them. If a proxy "does not work" right after you buy it, the format is the first thing to check.

The four common formats

host:port:user:pass          gate.example.com:7777:alice:s3cret
user:pass@host:port          alice:s3cret@gate.example.com:7777
http://user:pass@host:port   http://alice:s3cret@gate.example.com:7777
host:port                    gate.example.com:7777   (IP whitelist, no login)

Which tools want which

  • Anti-detect browsers and many bots import lists in host:port:user:pass, one per line.
  • curl, Python requests, Node and most code want a URL: http://user:pass@host:port, or socks5h://... for SOCKS5.
  • Browser extensions and OS proxy settings usually have separate fields for host, port, username and password.
  • Chrome's --proxy-server flag takes only host:port. It cannot carry a username and password, so use IP whitelisting or an extension there.

The scheme matters

http:// in front of the proxy describes how you talk to the proxy, not the website. An HTTP proxy happily carries HTTPS traffic through a CONNECT tunnel, so http://user:pass@host:port is correct even when every site you visit is https. Writing https:// instead usually breaks the connection, because most proxy gateways do not speak TLS on the proxy port itself.

The special-character trap

In the URL format, characters like @, :, /, # and % have a meaning. If they appear in the password, encode them: @ becomes %40, : becomes %3A, # becomes %23. Otherwise the tool reads the wrong host and you get a confusing DNS or 407 error. Passwords made only of letters and digits avoid the problem entirely.

Usernames with options

Residential providers often put targeting into the username, for example alice-country-de-session-ab12cd34. It is still just the username: keep the whole string together, including every dash or underscore, and do not URL-encode those.

Converting a list quickly

In any spreadsheet, split the column by : and join the parts in the new order. Or in a terminal:

awk -F: '{print "http://"$3":"$4"@"$1":"$2}' proxies.txt

The Proxare dashboard generates your lines as host:port:user:pass, user:pass@host:port, user:pass:host:port or a full http:// / socks5:// URL, so you can copy them in whatever shape your tool expects.

More guides

Also in: Français · العربية · Tiếng Việt · 中文 · Українська