Turn blocked requests into clean data
Home-internet IP addresses in the country you pick, sessions that hold through a multi-step flow, and requests that look like a real browser — so your crawler spends bandwidth on pages instead of retries.
- 137 COUNTRIES
- ROTATING OR STICKY 1–1000 MIN
- BROWSER TLS PROFILES
- HTTP + SOCKS5
- METERED TO THE KB
/catalog?page=4/p/8842-lamp/catalog?page=3/catalog?page=3/p/9051-deskCOMPLETED IN THIS RUN
96%
import requests
p = "http://resi-user_a1f9c2-AE-chrome145:[email protected]:9999"
r = requests.get("https://example.com/catalog", proxies={"http": p, "https": p}, timeout=30)Illustrative panel. Status rows and counters are a simulated sample run for the settings above — not a service-level promise. Real results depend on the target, your pacing and your parser.
See the web from where your customers are
Choose a country. Add a city when the market needs it. Get the local version of the page.
STYLISED COVERAGE VIEW · NORTH AMERICA — SAMPLE MARKET: CHICAGO, US
- CITY (OPTIONAL)
- Chicago
- YOU SEE
- USD prices, the US catalogue and US stock levels
- PAGE LANGUAGE
- en-US
yourpass-country-us-city-chicagoAlso in this region: Canada, Mexico, Puerto Rico, Costa Rica.
- CITY (OPTIONAL)
- Berlin
- YOU SEE
- EUR prices, the German catalogue and German shipping
- PAGE LANGUAGE
- de-DE
yourpass-country-de-city-berlinAlso in this region: United Kingdom, France, Spain, Poland.
- CITY (OPTIONAL)
- Tokyo
- YOU SEE
- JPY prices and the Japanese product listing
- PAGE LANGUAGE
- ja-JP
yourpass-country-jp-city-tokyoAlso in this region: Australia, India, Singapore, South Korea.
- CITY (OPTIONAL)
- São Paulo
- YOU SEE
- BRL prices and the Brazilian catalogue
- PAGE LANGUAGE
- pt-BR
yourpass-country-br-city-sao-pauloAlso in this region: Mexico, Argentina, Chile, Colombia.
- CITY (OPTIONAL)
- Dubai
- YOU SEE
- AED prices and the regional catalogue
- PAGE LANGUAGE
- ar-AE
yourpass-country-ae-city-dubaiAlso in this region: South Africa, Nigeria, Saudi Arabia, Kenya.
- 137 COUNTRIES
- OPTIONAL CITY TARGETING
- ROTATING OR STICKY 1–1000 MIN
- BROWSER TLS PROFILES
- PREPAID, METERED TO THE KB
Your parser isn't the bottleneck
A crawler that works on your laptop and dies in production usually fails before the page even loads. One address sends thousands of requests an hour, every request looks like a script rather than a browser, and the site treats each one as a stranger.
The cost is quiet. Retries multiply the bandwidth bill, half-loaded pages poison the dataset, and a job that collects check pages instead of content can run all night before anyone notices.
Technical detail
Three signals usually give a crawler away together: request density from a single address, a hosting-network ASN instead of a consumer ISP, and a TLS ClientHello whose cipher and extension order matches an HTTP library rather than a shipped browser build.
Rate limits tied to your IP. Throughput collapses exactly when the crawl gets interesting, and backing off costs you the schedule.
A “success” that isn't content. A check or CAPTCHA page parses fine and quietly writes garbage rows into your warehouse.
The wrong country's page. Wrong currency, wrong catalogue, wrong ranking — technically a success, analytically useless.
Multi-step flows fall apart. Your address changes mid-walk, the site forgets you, and the paginated set restarts from nothing.
What the target sees
The same request to the same public page. Only the network it arrives on changes.
- ADDRESS
- shared cloud IP, heavy request volume
- LOOKS LIKE
- an HTTP library, not a browser
- LOCATION
- a cloud region, not your market
- SESSION
- none — every page is a new stranger
- RESPONSE
- 429, then a check page on retry
- ADDRESS
- a home-internet IP in Germany
- LOOKS LIKE
- Chrome 145 on a normal connection
- LOCATION
- German catalogue, prices and currency
- SESSION
- sticky 10 min — one visitor, whole walk
- RESPONSE
- 200 with the page a local visitor gets
The network's job is to stop your address, your location and your request from contradicting each other. No proxy defeats every anti-bot system, and some targets should be read through an official data feed instead.
Technical detail: what “looks like” means
Residential TLS exits from an ISP-assigned address (consumer ASN) and replays a pinned ClientHello captured from a real Chrome, Firefox or Safari build — matching cipher suites, extensions and their order — instead of your HTTP library's OpenSSL defaults.
Three decisions, one gateway
Ask for the market, not the datacentre
Add a country — and a city if the market needs it — to the password field. You get an address in that place, so you read the local version of the page.
Browse locationsRotate for breadth, stick for state
No session token means a new address every request — right for independent page fetches. Add one and you keep the same address for up to 1000 minutes, long enough to walk a listing, a product page and a paginated set as one visitor.
Parameter referenceLook like a browser, then read the page
Pick a browser profile so a home address doesn't arrive looking like a script. Then treat response codes as data quality: log them per session and act on drift before it reaches the warehouse.
Residential TLS detailsWhat people run on this
Pick a job. See the settings we'd start with.
Track the right price in every market
Read each country's own catalogue — its prices, currency and stock — instead of whatever page a cloud server happens to get. Hold one session per product path so filters and pagination stay put.
SAMPLE OUTPUT · ONE PRODUCT, FOUR MARKETS
See the results your customers see
Search results change by country and often by city. Rotate to a new address for every query so each one is read fresh, and target a city when local results matter.
SAMPLE OUTPUT · ONE QUERY, RANK BY CITY
Keep one identity through the whole search
Fares and rates sit behind several steps: a search, some filters, then results. If your address changes halfway, the site loses you and the run is wasted. Hold it for the full 15 minutes.
SAMPLE OUTPUT · ONE SESSION, FOUR STEPS
Collect a lot of pages without gaps
For training and enrichment sets, how much of the batch actually completed decides the dataset. Rotate addresses, run several batches at once, and watch the completion rate per batch.
SAMPLE OUTPUT · PAGES COLLECTED PER BATCH
Sample panels illustrate the settings, not a measured result. Collect only data you are authorized to collect.
Settings that decide the outcome
R1Rotation, TTL and retries
Leave the session token out for broad collection; add one for any run with several steps. Set -ttl- a little longer than your slowest flow, up to 1000 minutes — longer wastes an address, shorter breaks the walk. Retry with a new session token: a fresh address is the whole point of the retry.
R2Concurrency and pacing
Ramp up gradually and watch your response codes instead of starting at full speed. A perfect-looking request sent forty times a second is still obviously a machine — pace yourself per site, not per proxy.
R3Bandwidth is the real bill
You pay for traffic, so fetch HTML and skip media. Turn images off in headless runs, ask for compressed responses, and measure one typical page before you estimate a whole crawl.
R4Treat failure as data quality
Anything that isn't a 200 is a pipeline error, not noise. Log your status codes per session so slow decay shows up early. And nothing here is guaranteed: no proxy gets past every anti-bot system, and some sites should be read through an official data feed instead.
import requests
USER, PASS = "resi-user_a1f9c2-AE-chrome145", "yourpass"
def proxy(country="us", session=None, profile=None):
pw = f"{PASS}-country-{country}"
if session: pw += f"-session-{session}"
if profile: pw += f"-profile-{profile}"
url = f"http://{USER}:{pw}@gw.ludaxproxy.com:9999"
return {"http": url, "https": url}
# one sticky context per product page walk
r = requests.get("https://example.com/catalog",
proxies=proxy("de", session="walk42", profile="chrome145"),
timeout=30)- Gateway
gw.ludaxproxy.com:9999(Residential TLS · HTTP and HTTPS)- Headless
- One sticky session per browser context so the exit does not change mid-navigation.
Full parameter reference in the documentation.
Web Scraping FAQ
01Rotating or sticky for scraping?
Both, in the same job. Rotate for independent page fetches; hold a sticky session for any sequence that depends on the previous request.
02How much traffic does a crawl use?
It depends entirely on page weight. Measure one representative page, multiply by your target volume, and add margin for retries — the dashboard meters actual usage to the kilobyte as you go.
03Do I need the TLS product?
Only if requests still fail from clean residential IPs. Start on standard residential and move up if challenge pages persist.
04Can I use headless browsers?
Yes. Point the browser at the gateway and use one sticky session per browser context so the exit does not change mid-navigation.
Start with one gigabyte.
Buy the smallest amount of traffic, run your crawl against sites you are authorized to collect, read the response codes — then scale the plan instead of the guesswork.
from $0.74/ GB · Residential TLS