A scraper hitting eBay from one IP works fine for the first few hundred requests. Then the response times creep up, pages start coming back with captchas, and eventually the IP just stops getting real data. eBay isn't unusually aggressive as marketplaces go, but it does flag exactly what most scrapers do wrong by default: a datacenter IP, a flat request rate, and a User-Agent that says "python-requests."
What proxies do you need for eBay?
Residential proxies with rotating sessions, country-matched to the market you're pulling data from, handle eBay well at normal request rates. Datacenter IPs get flagged fast — eBay blocks known datacenter ranges outright, so there's no gray zone to work around there.
The short version: residential, rotating by default, sticky only when you need to hold a session across pages.
Why eBay scraping breaks down
Four things trip up most eBay scrapers, and none of them are exotic:
Datacenter IP ranges. eBay checks IP reputation before it checks anything else. A known hosting-provider range gets a captcha or a block regardless of how careful the rest of the request looks.
Wrong country, wrong data. eBay prices, currency, and even which listings show up differ by the buyer's apparent country. Scraping without pinning a country gets you a default market that may not be the one you're tracking.
One IP, too many requests. eBay rate-limits by IP. Push enough requests through a single IP and you'll start seeing 429s or degraded response times well before anything looks like a full ban.
No User-Agent, or an obvious one. Default UAs from requests or curl are an easy signal. A realistic browser User-Agent string costs nothing and clears a chunk of automated blocking on its own.
Residential vs. mobile vs. datacenter for eBay
Proxy type | Works for eBay? | Notes |
|---|---|---|
Residential | Yes — this is the recommended setup | Clears IP-reputation checks; pair with rotation and pacing |
Mobile | Works, rarely necessary | Overkill for eBay's detection level; save it for harder targets like social platforms |
Datacenter | No | Blocked outright on known ranges |
Setting it up: rotating vs. sticky sessions
eBay scraping splits into two request patterns, and they need different session types.
Search results and keyword tracking — a fresh IP per request works fine, since each search is independent:
python
# eBay search results — SimplyNode residential, rotating
import requests, time, random
PROXY = "http://login:country-us@ip.simplynode.io:9003"
PROXIES = {"http": PROXY, "https": PROXY}
HEADERS = {"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 14_2) "
"AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.2 Safari/605.1.15"}
def search_ebay(keyword, retries=5):
url = f"https://www.ebay.com/sch/i.html?_nkw={keyword}"
for attempt in range(retries):
r = requests.get(url, proxies=PROXIES, headers=HEADERS, timeout=30)
if r.status_code in (429, 503):
time.sleep(2 ** attempt + random.random())
continue
return r.text
return NoneItem pages and paginated listing walks — hold one IP with a sticky session, so eBay doesn't see the same query arriving from a new visitor on every page:
python
import requests, hashlib
session_id = hashlib.md5(b"listing-sweep-01").hexdigest()[:8]
proxy = f"http://login:country-us-session-{session_id}-ttl-1800@ip.simplynode.io:9003"
proxies = {"http": proxy, "https": proxy}
item_ids = ["1234567890", "1234567891", "1234567892"] # from your search results
for item_id in item_ids:
r = requests.get(f"https://www.ebay.com/itm/{item_id}", proxies=proxies, timeout=30)
# parse price, seller, condition, shipping hereSwitch sessions between separate items or separate keyword searches — rotating mid-pagination is one of the more common ways teams accidentally trip eBay's rate limiting.
What teams actually pull from eBay
Most eBay scraping falls into one of two buckets:
Search and price tracking. Pulling /sch/i.html?_nkw={keyword} for a set of keywords, on a schedule, to track how prices and listing counts move for a product category or a set of competitors. This is the highest-volume use case and the one where rotating IPs matter most — every request is a fresh, independent search.
Item and seller data. Pulling /itm/{id} for specific listings to track price changes, stock status, condition, and seller reputation over time. This is where sticky sessions earn their keep, especially when walking through a seller's full catalog page by page.
For multi-account sellers managing inventory across several eBay stores, the concern is different: linkage. Marketplaces flag accounts that share IP fingerprints, and a widely cited 2025 industry survey found that high-volume marketplace sellers overwhelmingly rely on some form of proxy to keep accounts operationally separate. One IP per account, matched by country to where that account operates, is the standard fix.
Mistakes that get eBay scrapers blocked
Using datacenter proxies. eBay blocks known ranges outright — there's no partial credit for "mostly clean" datacenter IPs.
Ignoring country targeting. Pin the country (country-us, country-uk, etc.) so prices and currency match the market you're actually tracking, not a default.
Rotating mid-pagination. Hold a sticky session for one multi-page walk through a seller's listings; rotate only between separate items or searches.
Skipping the User-Agent. A blank or default UA is one of the cheapest tells a scraper can leave behind. Set a real browser string.
Pricing
eBay uses SimplyNode's standard per-GB rate — there's no marketplace surcharge. Residential proxies start at $2.25/GB at scale, with no bandwidth expiration and no monthly minimum, so pricing scales the same way whether you're tracking 50 keywords or 50,000.
Buy 1 GB first, run the recommended setup against real search and item URLs, and check the success rate before committing to volume.
FAQ
What proxies work best for eBay? Residential proxies with rotating sessions, country-matched to the market you're scraping. eBay works well on residential IPs at reasonable, human-paced request rates.
Why does eBay block scrapers? eBay flags datacenter IP ranges, repeated request fingerprints, and aggressive request rates. Residential IPs clear the IP-reputation check; the rest comes down to pacing and realistic headers.
Should I use rotating or sticky sessions for eBay? Rotating for independent searches — each keyword lookup is a fresh request. Sticky sessions for anything that walks through pages in sequence, like a seller's full listing catalog, so the requests read as one continuous visit instead of dozens of new visitors.
Does scraping eBay cost more than other targets? No. eBay runs on the same per-GB rate as everywhere else — no target surcharge.
:format(webp))