eBay Sold Listings Scraper — Price Comps & Analytics avatar

eBay Sold Listings Scraper — Price Comps & Analytics

Pricing

from $5.00 / 1,000 sold item scrapeds

Go to Apify Store
eBay Sold Listings Scraper — Price Comps & Analytics

eBay Sold Listings Scraper — Price Comps & Analytics

Scrape eBay sold/completed listings and get a price-analytics report: min/max/avg/median, percentiles, sell-through velocity, weekly price trend, and condition breakdown. 8 marketplaces. MCP-ready.

Pricing

from $5.00 / 1,000 sold item scrapeds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

2 days ago

Last modified

Share

Scrape eBay sold/completed listings and get an instant price-analytics report in one run: average, median, min/max, percentiles, sell-through velocity, weekly price trend, and breakdowns by condition and listing type. Built for resellers, dropshippers, and AI agents that need to answer one question fast — "what does this actually sell for?"

What you get

Every run returns two kinds of records in the dataset:

  1. Sold-item rows — one per completed eBay sale (title, sold price, currency, condition, sold date, listing type, bids, shipping, item URL).
  2. One analytics report — a single summary record (_isAnalyticsReport: true) computed across the whole sold sample.

When to use this actor

  • Pricing an item before you list it ("what's the real market price for used AirPods Pro 2?").
  • Sourcing decisions — is this product selling, and at what margin?
  • Repricing and competitive monitoring against actual sold data, not asking prices.
  • Feeding an AI agent structured price comps for a buy/sell decision.

Not for active listings or product details. For current live listings, seller info, or item specifics across active + sold + detail modes, use the eBay Scraper — Listings, Sold Prices & Sellers. This actor is sold-data + analytics only.

Output

Sold-item record

FieldTypeDescription
titlestringListing title
soldPricenumberFinal sold price (local currency)
currencystringISO currency code (USD, GBP, EUR, …)
conditionstringItem condition as eBay labels it
soldDatestringSale date, YYYY-MM-DD (when eBay shows it)
listingTypestringauction or buy_it_now
bidsCountnumber|nullBids (auctions only)
shippingCostnumber|nullShipping cost, 0 if free
shippingTypestringfree / paid / local_pickup / unknown
itemUrlstringCanonical item URL
imageUrlstring|nullHighest-res gallery image
marketplacestringeBay domain queried

Analytics report record (_isAnalyticsReport: true)

{
"_isAnalyticsReport": true,
"searchQuery": "airpods pro 2",
"marketplace": "ebay.com",
"currency": "USD",
"sampleSize": 50,
"priceStats": {
"min": 89.99, "max": 219.0, "avg": 168.42, "median": 172.5,
"p10": 120.0, "p25": 149.99, "p75": 189.0, "p90": 199.99,
"stddev": 28.31, "sum": 8421.0
},
"shipping": { "freeShippingPct": 78.0, "paidShippingCount": 11, "avgPaidShipping": 6.42 },
"velocity": {
"firstSoldDate": "2026-05-20", "lastSoldDate": "2026-06-17",
"spanDays": 28, "itemsPerDay": 1.79, "itemsPerWeek": 12.5
},
"timeBuckets": [
{ "weekStart": "2026-05-18", "count": 12, "avgPrice": 165.1, "medianPrice": 170.0 }
],
"conditionBreakdown": {
"new": { "count": 18, "avgPrice": 192.3, "medianPrice": 195.0, "minPrice": 159.0, "maxPrice": 219.0 },
"used": { "count": 32, "avgPrice": 154.9, "medianPrice": 158.0, "minPrice": 89.99, "maxPrice": 189.0 }
},
"listingTypeBreakdown": {
"buy_it_now": { "count": 41, "avgPrice": 171.2, "medianPrice": 175.0 },
"auction": { "count": 9, "avgPrice": 154.0, "medianPrice": 150.0 }
}
}

Pricing (pay-per-event)

EventPrice
Actor start$0.00005
Sold item scraped$0.005 / item
Analytics report$0.05 / run

A typical run of 50 sold items with the report costs about $0.30. Set includeReport: false to skip the report fee and pay only per item. maxItems is a hard cap — billing never exceeds it.

Input

FieldTypeDefaultNotes
searchQuerystringairpods pro 2Keyword; sold+completed filter added automatically
startUrlsarrayeBay search URLs (forced to sold mode); overrides searchQuery
marketplaceenumebay.com8 markets: US/UK/DE/FR/IT/ES/CA/AU
maxItemsint501–1000, hard billing cap
conditionenumanyany / new / used / refurbished / open_box
daysBackintKeep only items sold in last N days (≤90)
minPrice / maxPriceinteBay price filter, local currency
sortByenumnewestnewest recommended for current pricing
includeReportbooltrueAppend the analytics report

Example

{
"searchQuery": "rolex submariner",
"marketplace": "ebay.com",
"maxItems": 100,
"condition": "used",
"daysBack": 30,
"includeReport": true
}

How it works

  • PlaywrightCrawler (Chromium) with browser fingerprints — eBay blocks raw HTTP at the TLS layer, so a real browser is required.
  • Country-pinned Apify Residential proxy — a US IP hitting ebay.de looks like a bot, so the proxy country matches the marketplace.
  • WARMUP priming — each run primes a residential session against /robots.txt before hitting the search page, which cuts first-request blocks.
  • Circuit breaker — after 3 consecutive blocks with zero results, the run exits cleanly (you pay only the start fee) instead of burning proxy budget.
  • Resource blocking — images/fonts/CSS/media are aborted for ~3× faster page loads.

Use with AI agents (MCP)

This actor is exposed in the Apify MCP server as apify--ebay-sold-comps-analytics-scraper. Pass a searchQuery and read back the analytics report record for a one-shot price comp — ideal for agents making buy/sell or repricing decisions.

FAQ

How far back does sold data go? eBay exposes roughly the last 90 days of sold/completed listings. daysBack filters within that window; it cannot retrieve older sales.

Why are some soldDate values null? eBay does not render a sold date on every card variant. Those items still count toward price stats but are excluded from velocity/time-trend math.

Why did a run return 0 items? eBay rate-limits residential proxies transiently. The run exits with a clear status message (no hard failure) — retry, lower maxItems, or wait 10–15 minutes.

Does it scrape active listings? No — sold/completed only. Use the all-in-one eBay scraper for active listings and product detail.

Multiple currencies in one report? The report uses the most common currency in the sample. Pin a single marketplace to keep currency consistent.

This actor scrapes only publicly available data from eBay search results. It does not log in, bypass authentication, or access private data. You are responsible for complying with eBay's Terms of Service and applicable laws (including data-protection regulations) in your jurisdiction. Use sold-price data for legitimate market-research and pricing purposes. This tool is provided as-is, without warranty.