Log in Sign up
E-commerce

Proxies for e-commerce teams that watch the whole market

Online retail runs on other people’s data: competitor stock, their prices, their listings as buyers in each country see them. Marketplaces cut list addresses harder than other sites, so the main crawl runs through Resi Core with a home IP from the right country, while unlimited packages cover simpler shops and large volume.

  • Resi Core: 2M+ IPs, 200+ countries
  • a new IP on every request
  • packages for volume with no meter
Laptop with an online shop catalogue and a parcel on the desk
E-commerce

What an e-commerce team needs and what the package gives

Marketplaces are the most defended sites on the web. The pool has to be big, local and fresh.

What the task needsWhat the plans give

Listings as a local buyer sees them

Resi Core: a home IP from the market country; Resi Prime adds the city and delivery date

Stock and price checks across thousands of SKUs

No thread limit on Resi, up to 2,500 on packages

Addresses that outlast a marketplace ban

The Resi Core pool holds 2M+ addresses, with a new IP on every request

Full pages with images and reviews

Traffic is not counted on unlimited packages; on Resi turn images off and pay for HTML only

Residential proxies

Work out traffic for your marketplaces

Turn off images and scripts in the scraper, and the gigabytes go to listing HTML. The price per GB drops with the order size.

Residential proxy price per 1 GB by order size
Order sizeResi CoreResi Prime
1 GB+$0.85$2.29
10 GB+$0.79$2.09
50 GB+$0.72$1.95
100 GB+save 24%$0.65$1.75
500 GB+$0.57$1.55
1000 GB+$0.49$1.39

Prices are in US dollars per 1 GB. You buy whole gigabytes, starting with a single one.

Pool

  • 2M+ home IPs across 200+ countries
  • A fresh address on every request or one per session while the device is available
  • Mail from your own inbox: 465 and 587 to send, IMAP 993 and POP3 995 to receive, port 25 closed
  • Up to 1,000 lines at once, and the list refreshes itself every N minutes
Total
$65.00
Per 1 GB
$0.65
Tier
100–499 GB

You save 24% ($20.00) against the 1 GB+ price

Add 400 GB and every gigabyte drops to $0.57

Buy this amount

You can use the gigabytes for 3 months from the purchase date; whatever is left after that is written off.

About residential

Three steps to a live market view

Split by marketplace and country

One list per market: keep the CSV rows for that country and give each parser its own ip:port file.

Schedule the checks

Stock every hour, prices twice a day, listings once a day. Each request from the next address in the list.

Store what the buyer saw

Save price, stock flag, delivery date and the IP country with every record: the country explains the differences later.

Ready watcher: price and stock, appended over time

Fill products.txt and set COUNTRY; each product is read through a local proxy, price and an in-stock flag are pulled and appended to stock.csv so you build a history to chart. Tune PRICE_RE and INSTOCK_RE to the marketplace.

CSV export link from your dashboard
marketplace country
one product URL per line
group 1 = price
matches when in stock
url;price;in_stock;proxy is written here
Values come from the form; copy or download the ready file.
Show the script code
Python 3.8+ · ecommerce.py
#!/usr/bin/env python3
"""Marketplace stock and price watcher for Advanced.name proxies.

For each product URL it fetches the page through a proxy from the target country
and pulls both the price and an in-stock flag, writing a CSV you can chart over
time. Standard library only. Edit CONFIG and run: python3 stock.py
"""

# ================================ CONFIG ====================================
CSV_URL = "https://get.advanced.name/YOUR_LIST_ID.csv"  # CSV export link from your dashboard
COUNTRY = "IT"          # marketplace country
MIN_SPEED = 3
PRODUCTS_FILE = "products.txt"           # one product URL per line
PRICE_RE = r'"price"\s*:\s*"?([0-9][0-9.,]*)'          # group 1 = price
INSTOCK_RE = r'"availability"\s*:\s*"[^"]*InStock'     # matches when in stock
OUT_FILE = "stock.csv"                    # url;price;in_stock;proxy is written here
THREADS = 40
TIMEOUT = 20
RETRIES = 3
# ============================================================================

import csv
import io
import itertools
import re
import sys
import threading
import time
import urllib.request
from concurrent.futures import ThreadPoolExecutor, as_completed

COL_IP, COL_PORT, COL_COUNTRY, COL_SPEED = 0, 1, 2, 3
UA = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/124.0 Safari/537.36"
PRICE = re.compile(PRICE_RE)
INSTOCK = re.compile(INSTOCK_RE)


def load_proxies():
    raw = urllib.request.urlopen(CSV_URL, timeout=30).read().decode("utf-8", "replace")
    pool = []
    for row in csv.reader(io.StringIO(raw), delimiter=";"):
        if len(row) <= COL_SPEED or not row[COL_PORT].strip().isdigit():
            continue
        if COUNTRY and row[COL_COUNTRY].strip().upper() != COUNTRY.upper():
            continue
        if int(row[COL_SPEED] or 0) < MIN_SPEED:
            continue
        pool.append(row[COL_IP].strip() + ":" + row[COL_PORT].strip())
    return pool


def main():
    proxies = load_proxies()
    if not proxies:
        sys.exit("No proxies for COUNTRY=%r." % COUNTRY)
    with open(PRODUCTS_FILE, encoding="utf-8") as fh:
        products = [line.strip() for line in fh if line.strip() and not line.startswith("#")]
    print("proxies: %d (%s), products: %d" % (len(proxies), COUNTRY, len(products)))

    rotation = itertools.cycle(proxies)
    lock = threading.Lock()

    def watch(url):
        for _ in range(RETRIES):
            with lock:
                proxy = next(rotation)
            handler = urllib.request.ProxyHandler({"http": "http://" + proxy, "https": "http://" + proxy})
            req = urllib.request.Request(url, headers={"User-Agent": UA, "Accept-Language": COUNTRY.lower()})
            try:
                html = urllib.request.build_opener(handler).open(req, timeout=TIMEOUT).read().decode("utf-8", "replace")
            except Exception:
                continue
            price = PRICE.search(html)
            return (price.group(1) if price else ""), ("yes" if INSTOCK.search(html) else "no"), proxy
        return "", "unreachable", ""

    rows = []
    with ThreadPoolExecutor(max_workers=THREADS) as pool:
        futures = {pool.submit(watch, u): u for u in products}
        for fut in as_completed(futures):
            url = futures[fut]
            price, stock, proxy = fut.result()
            rows.append((time.strftime("%Y-%m-%d %H:%M"), url, price, stock, proxy))
            print("%-4s %-9s %s" % (stock, price, url[:56]))

    header = not _exists(OUT_FILE)
    with open(OUT_FILE, "a", encoding="utf-8", newline="") as out:
        writer = csv.writer(out, delimiter=";")
        if header:
            writer.writerow(["checked_at", "url", "price", "in_stock", "proxy"])
        writer.writerows(rows)
    print("appended %d rows to %s" % (len(rows), OUT_FILE))


def _exists(path):
    try:
        open(path).close()
        return True
    except OSError:
        return False


if __name__ == "__main__":
    main()
Setup

Setting up marketplace monitoring

One list per market

Build a separate ip:port list per marketplace country from the CSV export and give each parser its own file. Send the marketplace's own country cookie with the regional IP; some sites read the region from a cookie before the address.

Take stock counts from the product page or the cart, not from search results, which are cached, and slow down per marketplace rather than globally when 403s appear.

Schedule and storage

Run the watcher above from cron and append to one CSV so you build a history to chart. Log the country of the IP with every record; the country later explains price and delivery differences.

Keep the pool fresh with the Socks List Processor, and trial the parser on the free proxy list before a full catalogue.

In practice

From listing to doorstep

Four rules for marketplace monitoring

  1. Send the marketplace's own country cookie together with the regional IP; some sites store the region in a cookie first.
  2. Slow down per marketplace, not globally: a burst of 403s from one site means only that site needs a pause.
  3. Take stock counts from the product page or the cart, not from search results, which are cached.
  4. Refresh the list every 10 minutes and log the country of the IP with each record.

Per-GB plans for this task

This task by country

Show all countries
FAQ

Questions about this task

Which proxies for Amazon.de and similar?
Resi Core with country DE in the connection string: a new home IP on every request. For several EU countries change the country code in the login, and simpler shops cost less on the Europe #9 package.
Can I monitor Chinese suppliers?
Yes, through the China pool (package #13). Pages open as a local buyer sees them.
Do the proxies handle heavy marketplace pages?
Yes. Traffic is not counted on an unlimited package, so full pages and headless browsers are fine. On Resi Core heavy pages eat gigabytes: turn images off and use 15 to 20 second timeouts.
Is there a free test?
One hour on any unlimited package with full threads, no card. Resi Core is tried with a 1 GB purchase: run your scraper on a real marketplace and check the error rate.
Package or Resi for marketplaces?
Large marketplaces cut list addresses, so run the main crawl through Resi Core. Resi Prime is for a seller account and city prices, and a package suits simpler shops and large volume.
Plans for this task

What an e-commerce team should take

Crawl large marketplaces through Resi Core, keep the seller account and city prices on Resi Prime, and pull simpler shops on an unlimited package for less.

Resi Core

Marketplace crawlingBest fit

2M+ IPs · 200+ countries · no thread limit

A home IP from the market country on every request, so one banned address does not stop the crawl. You spend the gigabytes you buy over three months.

from $0.49 per GB1 GB for $0.85

Resi Prime

Seller account and city

30M+ IPs · 220 countries · no thread limit

A seller account stays on one home IP for up to 24 hours. City and ISP in the string show the price and delivery date a buyer in that city sees.

from $1.39 per GB1 GB for $2.29

Unlimited proxies

Simpler shops and volume

Package #9 · Europe · 5,000 IP · 2,000 threads

Traffic is not counted, so full listings with images do not raise the bill. It suits shops that do not cut list addresses.

$397 per monthor $2.20 per hour

Watch the whole marketplace from tomorrow

Take Resi Core for marketplaces, test the scraper on 1 GB and run the tracker on every market you sell in.

Pricing Grab a free hour