Residential Proxies - Real IPs, Zero Blocks
Route your traffic through genuine ISP-assigned addresses. 220+ countries. No minimum top-up.
What you get
Your connection string
One package gives you one login. Country, city and session lifetime ride along in the login itself, so you never open a ticket to add a location.
Endpoint
proxy.sotaproxy.com:10000login[_c_{COUNTRY}][_city_{City-Name}][_s_{sessionId}][_ttl_{30s|15m|1h}]:password@proxy.sotaproxy.com:10000Rotating, a new IP on every request
curl -x login:password@proxy.sotaproxy.com:10000 https://api.ipify.orgUnited States only
curl -x login_c_US:password@proxy.sotaproxy.com:10000 https://api.ipify.orgNew York, held for 15 minutes on session 100
curl -x login_c_US_city_New-York_s_100_ttl_15m:password@proxy.sotaproxy.com:10000 https://api.ipify.orgCity names take a hyphen instead of a space. Country codes are two letters, ISO 3166-1 alpha-2. Suffixes stack in the order shown above.
Rotating and sticky sessions
Leave off _s_ and every request goes out through a different address. That suits scraping where each page stands alone: search results, product listings, price checks. Add _s_{id} and the address stays put for the lifetime you set in _ttl_.
30sA login form plus the redirect after it.15mA checkout, a multi-step form, an account action that spans several page loads.1hAccount warming and anything where a mid-session IP change logs you out.The session id is yours to choose. Run 200 accounts in parallel by giving each one its own id, _s_1 through _s_200, and each keeps a separate address.
Setup in an antidetect browser
Each profile takes its own session id, which keeps its address stable while the profile is open. In Afina, AdsPower, Dolphin, Octo or Undetectable, open the proxy settings of a profile and fill in:
Change the number after _s_ for every profile. Two profiles sharing an id share an address, which is the link you are trying to avoid.
Setup in code
Python, requests
proxies = {
"http": "http://login_c_DE:password@proxy.sotaproxy.com:10000",
"https": "http://login_c_DE:password@proxy.sotaproxy.com:10000",
}
r = requests.get("https://example.com", proxies=proxies, timeout=30)Playwright
browser = playwright.chromium.launch(proxy={
"server": "http://proxy.sotaproxy.com:10000",
"username": "login_c_GB_s_5_ttl_15m",
"password": "password",
})All integrations: Python, Scrapy, Selenium, Playwright and more
Countries and cities
The pool covers 220+ countries. City targeting works in the larger markets, and these are cities our customers run traffic through right now:
Coverage in a given city moves with the devices online at that moment. If _city_ returns a 400, the pool for it is empty right now: drop to country level and retry later.
Price and how traffic is counted
Residential traffic costs $1.00 per gigabyte. No monthly minimum, no subscription, and traffic stays on the package while the package is active. Metering counts both directions: the request you send and the response you get back, headers included.
- Skip images and fonts in your scraper. On a product page they carry most of the weight and none of the data you came for.
- Ask for gzip. Set Accept-Encoding: gzip and an HTML page arrives three to four times smaller.
Errors you will actually hit
407The login string did not parse.A suffix is malformed: a space in a city name, a lower-case country code, or a TTL we do not accept. Copy the login from your dashboard and add suffixes one at a time.
400Unknown country or city.Check the spelling, then fall back to country-level targeting without _city_.
502The upstream network refused the request.Retry once. If it holds for a minute, the pool for that location is drained: switch country or write to support.
TimeoutFirst request of a sticky session hangs.Building a route through a residential line takes longer than hitting a datacenter IP. Set the client timeout to 30 seconds.
Limits
- No cap on concurrent connections and no cap on session count.
- The 30s, 15m and 1h lifetimes are ceilings, not guarantees. A residential device can drop off at any moment and your session ends with it, so handle reconnects.
- Mail ports and a handful of other restricted ports stay closed by default. Our upstream opens them after identity verification, so write to support if your task needs one.
When residential is the wrong choice
Residential traffic is metered per gigabyte, so bulk jobs get expensive. Three cases where another type fits better:
You need a fixed address for a long-lived account
ISP proxies start at $3.00 per month for one address and drop to $1.90 from 200: residential trust level, static address, billed by the IP instead of by traffic.
You pull hundreds of gigabytes from sites that ignore IP reputation
Datacenter IPv4 starts at $1.80 per month and drops to $1.15 from 75 addresses.
The target checks for carrier ranges
Common on mobile-first social apps. Mobile proxies run $5.76 per day.
API and AI agents
Everything on this page works through the REST API at https://api.sotaproxy.com/api/v1. We also run an MCP server, so Claude and other agents can check the balance, buy traffic and pull the connection string without a browser.
GET /residential/plansAvailable tariffs and price per GBPOST /residential/ordersBuy trafficGET /residential/packagesTraffic left on your packagesGET /residential/universal-accessThe login and password described aboveTypical use cases
Common questions
What are residential proxies?
Residential proxies use IP addresses assigned by ISPs to real home devices. They appear as genuine user traffic and are much harder for target sites to detect and block compared to datacenter IPs.
How many countries are available?
SotaProxy residential proxies cover 220+ countries with city-level targeting available in major markets.
What is the difference between rotating and sticky sessions?
Rotating sessions assign a new IP for each request. Sticky sessions keep the same address for the lifetime you set in the login suffix: 30 seconds, 15 minutes or 1 hour.
Does unused traffic expire?
No. Traffic stays on the package while the package is active. There is no monthly minimum and no subscription.
Can I use one package on several machines at once?
Yes. The login has no IP binding, so a scraper on a server and a browser profile on your laptop can run at the same time. Give them different session ids to keep their addresses apart.
Can the IP change inside a sticky session?
It changes when the residential device goes offline. That is the tradeoff of real home addresses, and it is why the ceiling is one hour rather than a day. Handle reconnects in your code.
What do you log?
We store what we bill: traffic volume per package. Destination hosts and payloads stay outside our logs.
Start with Residential Proxies
No monthly minimum. Get credentials in minutes.
Use code WELCOME10 - 10% off any proxies on your first order
Create Account