eBay Sold Listings Scraper - Price Research & Analytics avatar

eBay Sold Listings Scraper - Price Research & Analytics

Pricing

from $4.00 / 1,000 results

Go to Apify Store
eBay Sold Listings Scraper - Price Research & Analytics

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

Nicolas van Arkens

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

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):

fieldmeaning
searchTermthe keyword (or URL keyword) researched
soldCounthow many sold listings were sampled
pricedCounthow many had a usable numeric sold price
currencydominant currency of the sample (e.g. $)
avgSoldPriceaverage sold price
medianSoldPricemedian sold price (the most robust "going rate")
minSoldPrice / maxSoldPricecheapest / dearest sold
stdDevSoldPriceprice spread (how consistent the market is)
earliestSoldDate / latestSoldDatedate range of the sample (ISO YYYY-MM-DD)
conditionBreakdowncounts by condition (New / Used / Refurbished / …)
formatBreakdowncounts 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):

fieldmeaning
titlelisting title
soldPrice / currencythe price it sold for
soldDatewhen it sold (ISO YYYY-MM-DD) — plus soldDateText
conditionitem condition
buyingFormat / bidsBuy It Now or Auction (with bid count)
seller / sellerFeedbackseller and feedback %
urldirect link to the sold listing
imagethumbnail 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.