Protocols and ports
Every product speaks HTTP and SOCKS5. Where they differ is which port answers and whether DNS resolves on your side or ours.
Ports by product
On residential, one port serves both protocols: the service reads the first bytes of the connection and works out whether it is an HTTP request or a SOCKS handshake. You choose the protocol in your client, not by picking a port.
On static addresses SOCKS5 always sits one number above HTTP. If HTTP works and SOCKS5 does not, you are almost certainly still pointed at 50100.
Ports
Residential proxy.sotaproxy.com:10000 HTTP and SOCKS5
Static your-ip:50100 HTTP
your-ip:50101 SOCKS5
Mobile per modem, from the dashboardChoosing between them
HTTP is the simpler path and what most libraries support without extra packages. Use it unless you need something it cannot carry.
SOCKS5 carries any TCP protocol and supports UDP, which matters for protocols that are not HTTP at all. It is not more anonymous and it is not encrypted: both properties come from TLS at the application layer, not from the proxy protocol.
The socks5h rule
With socks5 the hostname is resolved on your machine, so your own resolver sees every destination and geography can break when a nearby resolver returns a nearby server. With socks5h the name travels to us and resolves here.
Always use socks5h unless you have a specific reason not to. This single letter is the most common leak in scraping stacks.
Leaky and not leaky
# leaks the target list to your resolver
curl -x socks5://login:password@proxy.sotaproxy.com:10000 https://example.com
# resolves on our side
curl -x socks5h://login:password@proxy.sotaproxy.com:10000 https://example.com
# python needs the extra: pip install requests[socks]Library support at a glance
HTTP works everywhere without extra dependencies. SOCKS5 usually needs one, and the requirement is the most common reason a SOCKS setup fails on the first attempt.
What each stack needs
Python requests pip install requests[socks], then socks5h://
Node socks-proxy-agent for SOCKS, https-proxy-agent for HTTP
curl built in, use socks5h:// for remote DNS
Scrapy HTTP out of the box, SOCKS needs a custom downloader
Playwright server field takes http:// or socks5://
Antidetect pick HTTP or SOCKS5 in the profile proxy form