Examples
A simple use case is sending requests through a residential exit IP when a target starts blocking datacenter ranges.
curl -x http://user:pass@residential-proxy.example:8000 \
-H "User-Agent: Mozilla/5.0" \
"https://target-site.example/search?q=headphones"
In Python with requests:
import requests
proxies = {
"http": "http://user:pass@residential-proxy.example:8000",
"https": "http://user:pass@residential-proxy.example:8000",
}
resp = requests.get(
"https://target-site.example/products",
proxies=proxies,
timeout=30,
headers={"User-Agent": "Mozilla/5.0"},
)
print(resp.status_code)
print(resp.text[:200])
If you are using ScrapeRouter, the point is usually not "use residential everywhere." The point is to route only the requests that actually need it, instead of paying residential rates for the easy traffic too.
Practical tips
- Do not treat residential proxies as magic: if your headers, TLS fingerprint, cookies, or request pattern look fake, you'll still get blocked.
- Use them selectively: login flows, high-friction search pages, and sites with aggressive IP reputation checks are common places where residential helps.
- Watch the cost: residential traffic is usually priced per GB, so heavy pages, retries, and loading useless assets get expensive fast.
- Expect variability: latency, success rate, and geolocation quality are less predictable than people pretend in proxy comparison pages.
- Pair proxy choice with browser strategy: simple HTTP fetching plus residential IPs works for some targets, but JS-heavy sites often need browser rendering too.
- Rotate with intent: too much rotation can look weird, too little rotation burns good IPs. It depends on the target.
- Measure by outcome: track success rate, block rate, cost per successful page, and retry volume.
- Use a router layer when the target mix is messy: send cheap traffic to datacenter or ISP proxies first, escalate to residential only when needed.
Example decision logic:
def choose_proxy_mode(target, needs_login=False, got_blocked=False):
if needs_login or got_blocked:
return "residential"
if target in {"google-maps-like", "retail-search-like"}:
return "residential"
return "datacenter"
Use cases
- Scraping retail sites that aggressively block cloud IP ranges.
- Collecting localized search or pricing data where the request needs to come from a believable consumer IP in a specific region.
- Running account-based workflows where repeated logins from datacenter IPs get challenged immediately.
- Handling anti-bot systems that score IP reputation heavily, especially on high-value pages.
- Reducing block rates on targets where datacenter proxies work at small scale but fall apart once volume increases.
A common production pattern is: - Datacenter proxies for cheap pages and broad crawling - ISP proxies for more stable identity on medium-friction targets - Residential proxies for the pages that actually fight back