Protocols
The residential gateway speaks HTTP, HTTPS, and SOCKS5 on the same port. The protocol is detected from the client handshake — you do not configure it server-side.
HTTP / HTTPS
The most widely supported. Both http:// and https:// targets work through the same connection.
# HTTP target
curl -x http://helo_s1a2b3c4d5e-type-res-region-us:PASSWORD@gate.helodata.io:7777 \
http://example.com
# HTTPS target (TLS to target is end-to-end)
curl -x http://helo_s1a2b3c4d5e-type-res-region-us:PASSWORD@gate.helodata.io:7777 \
https://example.comFor HTTPS targets the client sends CONNECT example.com:443 to the proxy, which opens a TCP tunnel. helodata never sees the request body.
SOCKS5
SOCKS5 is required for non-HTTP traffic (raw TCP, some DB clients, custom protocols) and is preferred by some scraping stacks for slightly lower overhead.
curl --socks5-hostname helo_s1a2b3c4d5e-type-res-region-us:PASSWORD@gate.helodata.io:7777 \
https://ipv4.icanhazip.com--socks5-hostname (not --socks5) makes the proxy do the DNS lookup, which is what you want for geo-targeting to work correctly — otherwise the client resolves locally and leaks DNS.
Python SOCKS5
Note socks5h:// (with the h) — equivalent to --socks5-hostname, forces remote DNS.
Node.js SOCKS5
When to prefer which
Standard HTTP/HTTPS scraping
HTTP/HTTPS
Browser automation (Selenium, Playwright, Puppeteer)
HTTP/HTTPS
Raw TCP, MQTT, custom protocols
SOCKS5
Maximum throughput, minimum overhead
SOCKS5
Easiest debugging
HTTP/HTTPS — works with mitmproxy, browser devtools
What we do not support
SOCKS4 / SOCKS4a — use SOCKS5
HTTP/3 (QUIC) to the gateway — the target site can still serve HTTP/3 over the tunnel
Plain (non-TLS) authentication over the public internet — credentials are always Base64-encoded by clients, but for sensitive workloads connect to the gateway over TLS (same port
7777; gateway auto-detects)
Common pitfalls
DNS leak in SOCKS5 — always use
socks5h:///--socks5-hostnameso the proxy resolves the targetHTTP-only library forced to talk HTTPS — if your client requires
http://proxy URL even for HTTPS targets, that's normal; only the target URL is HTTPScurlignoringHTTPS_PROXY— make sure bothHTTP_PROXYandHTTPS_PROXYare set, lowercase variants too on some Unixes
Last updated
Was this helpful?