Proxy Types

Rotating Residential Proxies: A Practical Guide

Rotating residential proxies give you a new home IP on every request or session. Learn how gateways, session IDs and geo-targeting work, typical pricing, and best practices for scraping.

By Team of Monkeys Editorial Updated 4 min read Affiliate disclosure

This guide contains affiliate links to Geonode. If you buy through them we may earn a commission, at no extra cost to you.

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

  1. You connect to a gateway such as gate.provider.com:7777.
  2. You authenticate with a username that may include targeting and session parameters.
  3. For each new connection (or each new session ID), the gateway picks an online residential peer matching your parameters.
  4. 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):

ParameterExampleEffect
Countrycountry-usUS IPs only
State/regionstate-californiaNarrower targeting
Citycity-losangelesCity-level targeting
ASNasn-7922IPs from a specific ISP
Sessionsession-abc123Sticky IP for this ID
Session timesesstime-10Sticky 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

  1. Retry with a new IP on failure. Don't retry the same blocked IP.
  2. Throttle per target, not just per IP. A site sees total traffic, even across many IPs.
  3. Keep headers and fingerprints realistic and consistent with location.
  4. Reduce bandwidth by fetching APIs or HTML only and blocking assets in browsers.
  5. Target only as narrowly as needed. City targeting reduces the available pool.
  6. 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

python
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

GoalConfiguration
Maximum IP diversityNo session ID; per-request rotation; country-level targeting
Short flows (search + paginate)Session ID per flow; 1 to 5 minute sessions
Browser scrapingSession ID per browser context; 10 to 15 minutes
Local dataCity or state targeting; sticky per batch
RafflesOne 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

text
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 seeLikely causeRetry?
407Credentials, plan or balance problemNo. Fix the configuration
403 or a block pageIP or fingerprint flagged by the targetYes, once or twice, with a new session
429Rate limitYes, after a pause; honour Retry-After
502, 503 or 504 from the gatewayExit node dropped or unavailableYes, with a new session
TimeoutSlow exit or overloaded targetOnce, with a new session
404The page doesn't existNo

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.

Affiliate disclosure: Team of Monkeys is a Geonode affiliate. Links and banners marked as sponsored, and links to Geonode in the text, use our referral link, and we may earn a commission if you buy through them, at no extra cost to you. Our explanations and comparisons are written to be useful whichever provider you choose.

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.