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.
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.
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.
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.
Budget tip: If you want a cheap proxy to try this with, Webshare has a free plan with 10 datacenter proxies and 1 GB of bandwidth a month, no card required. Paid lists let you pick proxy count, bandwidth and location. See Webshare rotating residential proxies.
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.
Residential tip: Rayobyte is worth testing when you need precise targeting: its residential proxies can be pinned to a country, state, city, ZIP code or ASN, with sticky sessions from 1 to 120 minutes. More in Rayobyte Premium Residential proxies.
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.
Rotating residential is the default choice for scraping, but not for every job. Our best proxies in 2026 guide compares it with ISP, datacenter and mobile options.
For a Webshare-specific walkthrough, see Webshare Rotating Residential Proxies, which explains the right product, settings and costs for this job.
For a third option, read Rayobyte Premium Residential Proxies; our Rayobyte vs Geonode vs Webshare IP Rotation comparison shows where Rayobyte, Geonode and Webshare each come out ahead.
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.
Sources and further reading
Independent references that back up the points above, from standards bodies, governments, universities and non-profits. They open in a new tab.
- Carrier-grade NAT (Wikipedia): How mobile carriers share one public IP between many users.
- RFC 6265: HTTP State Management Mechanism (Cookies) (IETF / RFC Editor): The cookie standard, which ties a session together regardless of IP.
- RFC 9110: HTTP Semantics (IETF / RFC Editor): The HTTP standard that defines how proxies, tunnels and the CONNECT method behave.
- RFC 6585: Additional HTTP Status Codes (429 Too Many Requests) (IETF / RFC Editor): Defines status 429, the code sites send when you make too many requests.
- urllib.request documentation (Python Software Foundation): Python's standard library documentation, including ProxyHandler.
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.