Connection string reference
Everything our proxies accept, in one place. Residential targeting rides inside the login; static addresses take no suffixes at all.
Residential
One endpoint serves every country and every session. What changes is the login, which carries the targeting as underscore-separated suffixes appended in the order shown below.
Country codes are two letters, ISO 3166-1 alpha-2, upper case. City names replace spaces with hyphens. Session identifiers are any number you choose, and lifetimes are one of three fixed values.
Full pattern and its parts
login[_c_{COUNTRY}][_city_{City-Name}][_s_{sessionId}][_ttl_{30s|15m|1h}]:password@proxy.sotaproxy.com:10000
login rotating, any country
login_c_US United States
login_c_US_city_New-York New York
login_c_US_s_42_ttl_15m one address, 15 minutes
login_c_US_city_New-York_s_42_ttl_1h everything at onceStatic addresses
ISP, datacenter and IPv6 proxies are individual addresses rather than a gateway. They take no suffixes: the address itself is the targeting, and it does not change for the length of your term.
Every static address we deliver uses the same two ports. Mobile modems are the exception and carry their own ports, which you take from the dashboard.
Static and mobile
login:password@198.51.100.20:50100 HTTP
login:password@198.51.100.20:50101 SOCKS5
# Mobile modems: ports differ per modem, read them from the dashboard.Verify before you build on it
Two commands answer most setup questions. The first shows which address the destination sees. The second proves a sticky session is holding rather than silently rotating because a suffix was malformed.
Check the exit and the stickiness
# which address are we leaving from
curl -x login_c_US:password@proxy.sotaproxy.com:10000 https://api.ipify.org
# three identical answers = the session holds
for i in 1 2 3; do
curl -s -x login_c_US_s_9_ttl_15m:password@proxy.sotaproxy.com:10000 https://api.ipify.org
echo
doneBuilding it in code
Rather than concatenating strings by hand at every call site, build the login once and vary the parts. This is the shape that survives a codebase growing past one script, and it makes the malformed-suffix class of bug impossible.
The password never changes with targeting. One package password serves every country, city and session you will ever request, which is why it stays outside the builder.
Python: one builder, every combination
BASE = "proxy.sotaproxy.com:10000"
USER, PWD = "login", "password"
def proxy_url(country=None, city=None, session=None, ttl="15m"):
login = USER
if country:
login += f"_c_{country.upper()}"
if city:
login += f"_city_{city.replace(' ', '-')}"
if session is not None:
login += f"_s_{session}_ttl_{ttl}"
return f"http://{login}:{PWD}@{BASE}"
proxy_url() # rotating
proxy_url(country="de") # Germany
proxy_url(country="us", city="New York", session=7, ttl="1h")