eBay Sold Listings Scraper - Price Research & Analytics
Pricing
from $4.00 / 1,000 results
eBay Sold Listings Scraper - Price Research & Analytics
Scrape eBay SOLD & completed listings in bulk and get instant price analytics - average, median, min and max sold price per keyword - plus every sold comp (title, sold price, sold date, condition, seller) as clean JSON. No eBay API key or login required.
Pricing
from $4.00 / 1,000 results
Rating
0.0
(0)
Developer
Nicolas van Arkens
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
eBay Sold Listings Scraper — Price Research & Analytics
Find out what anything actually sells for on eBay. Give this actor one or more keywords (or eBay search URLs) and it scrapes eBay's SOLD & completed listings in bulk, then returns both the raw sold comps and a ready-made price-analytics summary for each keyword: how many sold, the average, median, minimum and maximum sold price, the currency, the date range, and a breakdown by condition and buying format.
No eBay API key, developer account, or login required — you just type keywords.
Built for resellers, flippers, eBay sellers, dropshippers, estate sellers, repair shops and collectors who need real, recent sold-price data — not asking prices.
What you get
Per keyword, one summary row (the analytics):
| field | meaning |
|---|---|
searchTerm | the keyword (or URL keyword) researched |
soldCount | how many sold listings were sampled |
pricedCount | how many had a usable numeric sold price |
currency | dominant currency of the sample (e.g. $) |
avgSoldPrice | average sold price |
medianSoldPrice | median sold price (the most robust "going rate") |
minSoldPrice / maxSoldPrice | cheapest / dearest sold |
stdDevSoldPrice | price spread (how consistent the market is) |
earliestSoldDate / latestSoldDate | date range of the sample (ISO YYYY-MM-DD) |
conditionBreakdown | counts by condition (New / Used / Refurbished / …) |
formatBreakdown | counts by buying format (Buy It Now / Auction) |
Plus, for every sold listing, one listing row (turn off with
includeListingRows: false if you only want the summary):
| field | meaning |
|---|---|
title | listing title |
soldPrice / currency | the price it sold for |
soldDate | when it sold (ISO YYYY-MM-DD) — plus soldDateText |
condition | item condition |
buyingFormat / bids | Buy It Now or Auction (with bid count) |
seller / sellerFeedback | seller and feedback % |
url | direct link to the sold listing |
image | thumbnail URL |
Input
{"searchTerms": ["nintendo switch oled", "apple airpods pro 2"],"domain": "ebay.com","maxResultsPerQuery": 200,"conditionFilter": "any","buyingFormat": "any","includeListingRows": true,"proxyConfiguration": { "useApifyProxy": true }}
searchTerms— a list of products to research. Each is searched separately against SOLD listings and summarised on its own. Pass as many as you like in one run.directUrls— optional: paste full eBay/sch/i.html?...URLs (your own category / price-range / filter links). The actor auto-forces the SOLD filter on every URL, then paginates and summarises it.domain— which eBay marketplace (US, UK, DE, AU, CA, FR, IT, ES, NL, IE, IN).maxResultsPerQuery— how many sold listings to sample per keyword before computing the stats (deep pagination, up to 240/page). 200–500 gives a solid sample.conditionFilter— restrict comps to New / Used / Open box / Refurbished.buyingFormat— restrict to Buy It Now or Auction sales.includeListingRows— keep the individual sold rows (default) or return only the summary.
Output sample (summary row)
{"rowType": "summary","searchTerm": "nintendo switch oled","domain": "ebay.com","soldCount": 200,"pricedCount": 196,"currency": "$","avgSoldPrice": 248.51,"medianSoldPrice": 245.0,"minSoldPrice": 180.0,"maxSoldPrice": 340.0,"stdDevSoldPrice": 27.84,"earliestSoldDate": "2026-05-02","latestSoldDate": "2026-06-14","conditionBreakdown": { "Brand New": 88, "Pre-Owned": 104, "Unknown": 8 },"formatBreakdown": { "Buy It Now": 171, "Unknown": 29 }}
Output sample (listing row)
{"rowType": "listing","listingId": "126512345678","title": "Nintendo Switch OLED Model White Console - Excellent","url": "https://www.ebay.com/itm/126512345678","condition": "Pre-Owned","soldPrice": 245.0,"soldPriceText": "$245.00","currency": "$","soldDate": "2026-06-12","soldDateText": "Sold Jun 12, 2026","buyingFormat": "Buy It Now","seller": "gametraders_us","sellerFeedback": "99.4% positive","image": "https://i.ebayimg.com/images/g/abcAAOSw.../s-l500.jpg"}
Use cases
- Price your listing right — sell faster by matching the real median sold price.
- Sourcing & arbitrage — check resale value before you buy at a thrift store, estate sale, auction, or wholesale lot.
- Comps for buying — know the fair market price before you bid.
- Trend tracking — run the same keywords on a schedule and watch the median move.
FAQ
Is this asking prices or actual sold prices? Actual sold prices — the actor only
reads eBay's SOLD & completed listings (LH_Sold=1&LH_Complete=1).
Do I need an eBay API key or developer account? No. It reads eBay's public sold-listings pages, so there is nothing to authorise.
How far back does it go? eBay publicly shows roughly the last few hundred sold items
per search; maxResultsPerQuery controls how many of those you sample.
Why is a proxy recommended? eBay blocks datacenter traffic. The actor defaults to Apify Proxy; RESIDENTIAL proxy is strongly recommended for reliable, complete results.
Which marketplaces are supported? ebay.com, .co.uk, .de, .com.au, .ca, .fr, .it, .es, .nl, .ie and .in. Prices come back in that marketplace's local currency.