Business · Web Scraping at Scale

Web Scraping Proxies that don't get blocked.

Without proxies your scraper dies on page 200 — rate limits, IP bans, and captchas stop the job. Run large crawls across e-commerce, listings, and search results: rotate residential IPs per request, keep rates human, and retry cleanly on block.

Residential proxiesfrom $2.25/GBno expiration
4.6 / 5
on Trustpilot · 12 reviews
Registered in the Netherlands · GDPR compliant
CardsPayPalApple PayCryptoBank
Why you need proxies

Without proxies, web scraping at scale stalls fast.

Without proxies your scraper dies on page 200 — rate limits, IP bans, and captchas stop the job.

Distribute load

Rotate across millions of residential IPs so each request looks like a different first-time visitor. No fingerprint, no rate limit triggered.

Look like a real user

Residential IPs come from real ISPs - Comcast, BT, Vodafone. Bot-detection systems can't separate them from actual customer traffic.

Geo-target by market

Pull localized data - US prices from a New York IP, German content from a Berlin IP. Same script, different country code in credentials.

Run at production scale

Unlimited concurrent sessions, 99.3% success rate, <1s response. The kind of reliability that lets a re-scrape budget shrink to under 2% of volume.

Which proxy type

The right proxy type for web scraping at scale.

Residential usually beats mobile for scraping: high trust at lower cost, and it scales to millions of requests.

Recommended
Residential

For ~95% of scraping jobs.

From $2.25/GB at scale

  • E-commerce, real estate, news, directories
  • SERP scraping (Google, Bing) with city targeting
  • Job boards, listings, regulatory filings
  • Sub-second response, lower cost
See residential plans
For hardest targets
Mobile

When residential gets flagged.

From $4.25/GB at scale

  • Social platforms (IG, TikTok, FB)
  • Sneaker, ticket, drop platforms
  • CGNAT-protected - near unblockable
  • Costs more per GB; use selectively
See mobile plans
Not recommended
Datacenter

Cheap, but blocked on sight.

Not sold by us

  • Reputable platforms block on sight
  • Cloudflare flags entire ASNs
  • Failure rate kills your ROI
  • OK only for static / unprotected APIs
Not available here
In production

What web scraping at scale looks like in production.

Run large crawls across e-commerce, listings, and search results: rotate residential IPs per request, keep rates human, and retry cleanly on block.

bash · curl with rotating proxy
# Rotating residential, US-targeted - fresh IP per request
curl -x "http://login:country-us@ip.simplynode.io:9003" \
     "https://target.example.com/page-1"

# Sticky session - same IP for paginated scrape (30-min TTL)
for page in {1..50}; do
  curl -x "http://login:country-us-session-abc-ttl-1800@ip.simplynode.io:9003" \
       "https://target.example.com/listings?page=$page"
done
python · requests + sessions
import requests, time, hashlib

# Routing params live in the password; username is your dashboard login
PROXY = "http://login:country-us@ip.simplynode.io:9003"
PROXIES = {"http": PROXY, "https": PROXY}

def scrape_with_retry(url, retries=3):
    for attempt in range(retries):
        try:
            r = requests.get(url, proxies=PROXIES, timeout=10)
            if r.status_code == 200:
                return r.text
        except requests.RequestException:
            time.sleep(2 ** attempt)  # exponential backoff
    return None

# 500K requests/day pattern - sessions for paginated workloads (30-min sticky)
def scrape_listing(base_url, total_pages):
    session_id = hashlib.md5(base_url.encode()).hexdigest()[:8]
    sticky_proxy = f"http://login:country-us-session-{session_id}-ttl-1800@ip.simplynode.io:9003"
    for p in range(1, total_pages + 1):
        html = scrape_with_retry(f"{base_url}?page={p}")
        parse_and_store(html)
python · scrapy settings.py
# settings.py - drop in to enable SimplyNode rotating residential
DOWNLOADER_MIDDLEWARES = {
    "scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware": 110,
}

# Routing params (country, session, ttl, asn) live in the password field
HTTPS_PROXY = "http://login:country-us@ip.simplynode.io:9003"
HTTP_PROXY  = HTTPS_PROXY

# Concurrent requests - bump up since we have unlimited concurrency
CONCURRENT_REQUESTS = 64
CONCURRENT_REQUESTS_PER_DOMAIN = 16
DOWNLOAD_DELAY = 0  # residential IPs handle rate without throttle
RETRY_TIMES = 3
RETRY_HTTP_CODES = [429, 500, 502, 503, 504]

# In your spider:
# yield scrapy.Request(url, meta={"proxy": HTTPS_PROXY})
node · playwright with proxy auth
import { chromium } from 'playwright';

// Sticky session - same residential IP across the whole browser lifetime
const sessionId = Math.random().toString(36).slice(2, 10);

const browser = await chromium.launch({
  proxy: {
    server: 'http://ip.simplynode.io:9003',
    username: 'login',
    password: `country-us-session-${sessionId}-ttl-1800`
  }
});

const page = await browser.newPage();
await page.goto('https://target.example.com/login');
// Login flow + paginated scrape, all from the same residential IP
Real customer

Real estate analytics firm · 500K req/day · 98% success.

01
Case study · live for 11+ months

Scraping Zillow, Realtor.com, Redfin across 200 US metros.

A real estate analytics firm uses SimplyNode residential proxies with city-level targeting. Scrapers run every 6 hours, pulling price, location, square footage, and listing date into PostgreSQL.

The team budgets a 2% re-scrape rate as a nightly cleanup job - small enough that nobody on call thinks about it. Before SimplyNode they tried three other providers in 12 months; each lasted about 4 months before block rates forced a re-platform.

500K+
Requests / day
98%+
Success rate
200
US metros covered
Common pitfalls

Four mistakes that kill scraping jobs.

The team has watched a lot of scrapers die. These are the ones we see most - and the fix takes minutes, not days.

Pitfall 01

Using one IP for every request

A single IP making 10K requests/hour gets fingerprinted and banned within 24 hours. Even with residential, you'll burn the IP.

Fix: use rotating mode (default in SimplyNode credentials) - fresh IP per request.

Pitfall 02

Rotating IP mid-session

Logging in on IP A, then loading account page on IP B = automatic ban. Login flows and shopping carts need session continuity.

Fix: pass a session ID - keeps the same IP for up to 6 hours.

Pitfall 03

No retry logic

Even at 99% success you'll see 1 in 100 fail. Skipping those means missing data; refusing to retry means wasted budget on partial pulls.

Fix: 3 retries with exponential backoff (1s, 2s, 4s). See Python example above.

Pitfall 04

Wrong country, wrong data

Scraping Amazon US prices through European IPs returns EU pricing. Scraping Google rankings from one office IP returns one city's results.

Fix: country-targeting in the credential string - -country-us or -city-newyork.

Pricing

Web Scraping at Scale pricing.

Pay per GB from $2.25/GB at scale, with loyalty discounts on top. No use-case surcharge; the same product serves every workflow.

From $4/GB at the starter tier, drops to $2.25/GB at 500-1000 GB.

Most scraping teams sit in the 100-500 GB/month range - that's $2.50-$3/GB effective, with loyalty discount on top once you cross $100/month.

See full pricing →
FAQ · Web scraping

Common scraping questions.

Residential proxies. Residential usually beats mobile for scraping: high trust at lower cost, and it scales to millions of requests.

Without proxies your scraper dies on page 200 — rate limits, IP bans, and captchas stop the job.

Point your client at our gateway over HTTP/HTTPS/SOCKS5, authenticate with username:password or a whitelisted IP, and choose residential IPs. No SDK or agent.

Pay-as-you-go from $2.25/GB at scale, loyalty discounts on top, bandwidth never expires.

Yes — buy 1 GB, run your workflow, and check the success rate before committing volume.

Start web scraping at scale on the right IPs.

Buy 1 GB, run web scraping at scale on your real target, and watch the success rate. Bandwidth never expires.