What are rotating residential proxies?
Rotating residential proxies are residential proxies delivered through a gateway that automatically assigns a different residential IP for each request, or for each sticky session. You configure one endpoint, and the provider handles choosing from a pool of millions of home IPs.
They're the most common product sold by large proxy providers and the default choice for scraping protected websites.
How the rotation works
- You connect to a gateway such as
gate.provider.com:7777. - You authenticate with a username that may include targeting and session parameters.
- For each new connection (or each new session ID), the gateway picks an online residential peer matching your parameters.
- Your request exits from that peer's IP.
Without a session ID, each new TCP connection typically gets a new IP. Note that HTTP clients reuse connections with keep-alive, so several requests may share an IP unless you disable keep-alive or use a new session per request. Read backconnect proxies for the architecture.
Controlling rotation
Typical username parameters (names vary by provider):
| Parameter | Example | Effect |
|---|---|---|
| Country | country-us | US IPs only |
| State/region | state-california | Narrower targeting |
| City | city-losangeles | City-level targeting |
| ASN | asn-7922 | IPs from a specific ISP |
| Session | session-abc123 | Sticky IP for this ID |
| Session time | sesstime-10 | Sticky for 10 minutes |
When to rotate per request vs use sessions
- Per request: independent product pages, search results, listing pages, availability checks.
- Sticky sessions: anything involving cookies or multi-step flows, and headless browsers loading full pages.
See sticky vs rotating sessions.
Pricing
Billed per GB transferred. Typical market ranges at the time of writing: roughly $3 to $8 per GB on small plans, roughly $1 to $3 per GB at volume. Check whether traffic expires monthly. For budget options, see best cheap residential proxies.
Best practices
- Retry with a new IP on failure. Don't retry the same blocked IP.
- Throttle per target, not just per IP. A site sees total traffic, even across many IPs.
- Keep headers and fingerprints realistic and consistent with location.
- Reduce bandwidth by fetching APIs or HTML only and blocking assets in browsers.
- Target only as narrowly as needed. City targeting reduces the available pool.
- Monitor success rate per country and per hour. Residential pools fluctuate with time zones as people go to sleep.
Proxy tip: Geonode is one of the providers that sells all of the main types under one account: rotating and sticky residential, static ISP proxies with unmetered bandwidth, and rotating datacenter proxies. That makes it easy to test which type a target actually needs. More in our Geonode proxies guide.
Example: Python with retries
import random, string, requests
def session_proxy():
sid = "".join(random.choices(string.ascii_lowercase, k=8))
u = f"http://customer-USER-country-us-session-{sid}:PASS@gate.example.com:7777"
return {"http": u, "https": u}
def fetch(url, tries=4):
for _ in range(tries):
try:
r = requests.get(url, proxies=session_proxy(), timeout=30,
headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0 Safari/537.36"})
if r.status_code == 200:
return r.text
except requests.RequestException:
pass
raise RuntimeError(f"failed: {url}")Common rotating residential configurations
| Goal | Configuration |
|---|---|
| Maximum IP diversity | No session ID; per-request rotation; country-level targeting |
| Short flows (search + paginate) | Session ID per flow; 1 to 5 minute sessions |
| Browser scraping | Session ID per browser context; 10 to 15 minutes |
| Local data | City or state targeting; sticky per batch |
| Raffles | One session per entry; region targeting |
Keep-alive and rotation
HTTP clients reuse TCP connections for speed. With a rotating gateway, a reused connection may keep using the same exit, so "per-request rotation" may not happen as you expect. Options:
- Use a new session ID for each request.
- Disable connection pooling (slower).
- Create a new client or session object per request batch.
Estimating monthly traffic
monthly GB ≈ pages per month × average KB per page ÷ 1,000,000 × (1 + retry overhead)Example: 300,000 pages at 120 KB each with 20% overhead is about 43 GB. With a browser loading full pages at 2 MB each, the same job is about 720 GB. That difference decides whether residential is affordable. See proxy bandwidth pricing explained.
Monitoring a rotating residential setup
Log for each request: session ID, exit IP (if exposed by the provider or an echo endpoint during testing), target, status, block detection, bytes and latency. Weekly, review:
- Success by target and country.
- Repeated IPs (pool thinning).
- Bytes per success (creeping page weight).
- Cost per 1,000 successes.
Choosing a provider
Compare live pool depth in your countries, session stability, targeting options, traffic expiry and price at your volume. See best residential proxies, best cheap residential proxies and residential proxy providers compared.
A retry policy that doesn't pay twice
Every retry through a per-GB gateway costs money, so decide in advance which failures deserve one:
| What you see | Likely cause | Retry? |
|---|---|---|
| 407 | Credentials, plan or balance problem | No. Fix the configuration |
| 403 or a block page | IP or fingerprint flagged by the target | Yes, once or twice, with a new session |
| 429 | Rate limit | Yes, after a pause; honour Retry-After |
| 502, 503 or 504 from the gateway | Exit node dropped or unavailable | Yes, with a new session |
| Timeout | Slow exit or overloaded target | Once, with a new session |
| 404 | The page doesn't exist | No |
Cap the total. Two or three attempts per URL is usually enough, and a global retry budget (for example, no more than 15% of requests) stops a bad day from multiplying your bill. If retries climb past that, something structural has changed: the target's protection, your request rate or your targeting. Pause and investigate instead of paying for the same failure thousands of times.
Status codes are documented on MDN, for example 429 Too Many Requests. For what each proxy error means, see common proxy errors; for pacing, rate limiting and proxies; and for challenge pages that arrive with a 200 status, CAPTCHAs and proxies.
FAQ
Are rotating residential proxies good for sneakers?
For raffles and account creation, yes. For checkout races, ISP proxies are usually faster. See residential proxies for sneakers.
Why do I sometimes get the same IP twice?
Small pools in your targeted location, or connection reuse in your HTTP client.
Can I choose which IP I get?
Not individually. You choose parameters; the gateway chooses the IP.
Editorial note: Proxy providers change their pools, features and prices often, so treat any figures here as typical ranges at the time of writing and confirm current terms with the provider before you buy.