Sites cap how many requests one IP may send in a period. Past the cap they answer HTTP 429 Too Many Requests, often with a Retry-After header saying how long to wait — and a crawler on one server IP reaches it long before a catalogue is done.
Blocks also come by network, not just by address: Cloudflare lets site owners block or challenge traffic by IP, by ASN or by country. A datacenter IP shares its ASN with every other server at the same host, while residential exits sit on consumer ISP networks.
Automated traffic is now the majority — Cloudflare reported in July 2026 that more than half of Internet traffic is non-human, and since July 2025 it blocks AI training crawlers by default on new domains — so sites keep tightening their rules. Collect politely: follow robots.txt and the site's terms, keep a steady pace and never fetch the same page twice when once will do.
The button below opens Rotating Residential Proxies with the AI and automation use case. Under Line choose Budget (US$1.50/GB); Premium (US$5.00/GB) adds the ISP (optional) choice.
Buy traffic
Open Add traffic, pick a package or enter a Custom GB (from 1 GB) and click Buy selected package. Buying traffic and generating a proxy are separate actions.
Generate the proxy
Under Connection settings set Exit mode to Global rotation, or to Choose region / sticky IP and pick Region, State and City. Leave Protocol on HTTP and click Review cost and generate.
Build the proxy URL
In My assets, Copy gives host:port:user:password. Your PROXY_URL is http://USER:[email protected]:2222 — URL-encode the user and password if they contain characters such as @ or :.
Run the scraper
Use the code below: it passes the proxy on every request, waits as long as Retry-After asks and keeps a steady pace. In Scrapy, set request.meta['proxy'] to the same URL.
Expected result Each page returns 200 through the proxy; a 429 is retried after the wait.
Scraping through a rotating residential proxy (Python requests)
Scroll horizontally with the arrow keys to read all content.
# pip install requests
import os
import time
import requests
# Rotating residential, Exit mode "Global rotation": http://USER:[email protected]:2222
PROXY = os.environ["PROXY_URL"]
PROXIES = {"http": PROXY, "https": PROXY}
session = requests.Session()
def get(url, tries=4):
for attempt in range(tries):
# pass proxies on every call: Session.proxies loses to HTTP_PROXY / system proxy settings
r = session.get(url, proxies=PROXIES, timeout=30)
if r.status_code not in (429, 500, 502, 503, 504):
return r
retry_after = r.headers.get("Retry-After", "") # seconds the site asks you to wait
time.sleep(int(retry_after) if retry_after.isdigit() else 2 ** attempt)
return r
for url in ["https://example.com/catalog?page=1", "https://example.com/catalog?page=2"]:
r = get(url)
print(url, r.status_code, len(r.content), "bytes")
time.sleep(1) # keep a steady pace: rotation spreads load, it doesn't remove rate limits
Checked on 2026-10-18 (requests 2.33.1) against a local proxy that answers 429 with Retry-After first: both pages were retried after the wait and returned 200.
Requests don't go through the proxy, or ProxyError points at another address
Check Is HTTP_PROXY / HTTPS_PROXY or a system proxy set on this machine? Did you set only Session.proxies?
Fix Pass proxies= on every request (or set session.trust_env = False) — environment proxies override Session.proxies.
407 Proxy Authentication Required
Check Does the password contain @, : or # unencoded in PROXY_URL?
Fix URL-encode user and password with urllib.parse.quote, or copy the line again from My assets.
Lots of 429s
Check How many requests per second per site? Is Retry-After honoured?
Fix Lower concurrency, wait as asked and cache pages you already have; rotation spreads load but doesn't lift a site's limits.
Data from the wrong country
Check Is Exit mode set to Global rotation, which has no fixed country?
Fix Generate a proxy with Choose region / sticky IP and the Region, State or City you need.
Traffic runs out fast
Check Are you downloading images, fonts and video along with the HTML?
Fix Request HTML or JSON endpoints only; in headless browsers, block images and media.
Web scraping proxy FAQ
What are the best proxies for web scraping?
Rotating residential for sites that block or challenge server IPs; static datacenter for sites that accept them, because datacenter is faster and priced per IP.
How much do scraping proxies cost?
Rotating residential starts at US$1.50/GB on the Budget line, US$1.35/GB in the 100 GB package; Premium is US$5.00/GB. Prices are in US dollars, paid from your wallet.
Yes. Set Exit mode to Choose region / sticky IP, then pick Region, State and City. Global rotation has no fixed country.
Do I pay per IP or per GB?
Rotating residential is per GB. Generating more proxies on the same line doesn't buy more traffic — they all draw from the line's traffic.
How do I use these proxies in Scrapy?
Set request.meta['proxy'] to http://USER:[email protected]:2222. Scrapy's HttpProxyMiddleware uses it, and it takes precedence over http_proxy and https_proxy environment variables.
It depends on what you collect and where. Stick to public data, follow the site's terms and robots.txt, avoid personal data, and ask a lawyer about your specific case.
Proxies for price monitoring: see competitor prices, promotions and shipping as shoppers in each country and city see them. Rotating residential from US$1.50/GB.
SERP proxies for rank tracking: check Google results from the searcher's country and city on household IPs, validate every page and record captchas as unknown.
Real household IPs in 195+ countries with state and city targeting. Rotate on every request or keep sticky sessions. From US$1.50/GB, US$1.35/GB at 100 GB. HTTP and SOCKS5.
Rotating residential per-GB prices as published on the pricing page and used by the console (Budget US$1.50/GB, US$1.35/GB in the 100 GB package; Premium US$5.00/GB; 1 PTC = US$1). Static ISP and datacenter IPs are quoted live per IP and term.
Option names, billing modes and limits as shown in the live console on 2026-10-18: Line (Premium/Budget), Exit mode, Region, State, City, Protocol (HTTP/SOCKS5), Quantity (1–500), Term, Auto-renew IP (not yet available), My assets → Copy / Rotate / Renew / Copy for AI. Rotating residential connects through proxy.proxy302.com:2222 (HTTP) and :3333 (SOCKS5).
Local proxy fixture run
Local example · Checked:
The code block was executed on 2026-10-18 against a local password-protected HTTP proxy that answers 407 without valid credentials; requests 2.33.1 on Windows with a system proxy configured. The fixture answered each page first with 429 and Retry-After: 1; the code waited, retried and got 200 for both pages. With only Session.proxies set, requests sent traffic to the machine's system proxy instead — the reason the code passes proxies= on every call.
A local check proves the configuration syntax and authentication path, not access to any specific website, country or platform.
Ready to connect?
Create an account, top up once and pick rotating residential, static ISP or datacenter. Rotating residential exits cover 195+ countries and regions.