eBay is really a family of regional marketplaces sharing a brand. The same search on the UK, German and US sites returns different inventory, different pricing and different shipping options, and which one you are shown depends partly on where your request comes from. Any serious price research has to account for that.
Regional sites are different datasets
Beyond the obvious domain differences, search ranking, currency, and which sellers surface are all localised. A single-country view is a legitimate dataset, but it is not a view of "the eBay price" for anything. If you are benchmarking, collect per region and label every record with the exit country you used.
Which proxy type
| Task | Product | Price |
|---|---|---|
| Search and listing pages at volume | Budget Residential | $1.75/GB |
| Region or city-specific views | Premium Residential | $2.75/GB |
| Account-based work | Static Residential | $3.90/day |
Marketplaces are among the more determined blockers of datacenter ranges, so rotating datacenter is usually a false economy here despite the lower per-gigabyte price. Test it, but expect to move up.
Collecting search results
Credentials are built from a separate variable below rather than pasted inline — a literal user:pass@host string in a page body can be rewritten by email-obfuscation filters.
import requests
endpoint = "geo.spyderproxy.com:12321"
creds = "USERNAME:PASSWORD" # country selected via username params
proxy = f"http://{creds}@{endpoint}"
def search(domain, term, lang):
return requests.get(
f"https://{domain}/sch/i.html",
params={"_nkw": term},
headers={"Accept-Language": lang},
proxies={"http": proxy, "https": proxy},
timeout=30,
)
for domain, lang in (("www.ebay.co.uk", "en-GB"), ("www.ebay.de", "de-DE")):
r = search(domain, "vintage camera", lang)
print(domain, r.status_code, len(r.content))Match the language header to the regional site and the exit country. A German exit requesting the UK site in German is an incoherent visitor and gets treated as one.
Sold listings are the useful data
Asking prices tell you what sellers hope for. Completed and sold listings tell you what the market actually paid, which is the number worth collecting for pricing decisions. Collect both if you want to measure the gap.
Pacing
Keep concurrency modest per exit and randomise intervals. Concurrent sessions are unlimited on every SpyderProxy plan, but the constraint is the target's tolerance rather than ours. Back off on 429 responses rather than rotating straight past them, and expect to need a browser for pages that assemble results client-side.
Terms and scope
eBay's terms restrict automated access, and there is an official API for a good deal of this. Collecting public listing data is common practice for price research; interfering with listings, scraping personal data about sellers, or automating transactions is a different matter. This is not legal advice.
Frequently Asked Questions
Why do eBay results differ between countries?
Regional eBay sites are separate marketplaces with their own inventory, currency, ranking and shipping. Your exit country influences which you are shown and how results rank.
Which proxy type works best for eBay?
Budget Residential at $1.75/GB. Marketplaces block datacenter ranges determinedly, so rotating datacenter is usually a false economy despite being cheaper per gigabyte.
Should I collect asking prices or sold prices?
Sold and completed listings, if you want to know what the market actually paid. Asking prices only tell you what sellers hope to achieve.
How fast can I collect?
Keep concurrency modest per exit and randomise intervals. Concurrent sessions are unlimited on our side; the real constraint is the target's tolerance.
Related: eBay · proxy pricing · all eight products.