eBay Sold Listings Scraper — Price Comps & Analytics
Pricing
from $5.00 / 1,000 sold item scrapeds
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
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
1
Monthly active users
2 days ago
Last modified
Categories
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:
- Sold-item rows — one per completed eBay sale (title, sold price, currency, condition, sold date, listing type, bids, shipping, item URL).
- 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
| Field | Type | Description |
|---|---|---|
title | string | Listing title |
soldPrice | number | Final sold price (local currency) |
currency | string | ISO currency code (USD, GBP, EUR, …) |
condition | string | Item condition as eBay labels it |
soldDate | string | Sale date, YYYY-MM-DD (when eBay shows it) |
listingType | string | auction or buy_it_now |
bidsCount | number|null | Bids (auctions only) |
shippingCost | number|null | Shipping cost, 0 if free |
shippingType | string | free / paid / local_pickup / unknown |
itemUrl | string | Canonical item URL |
imageUrl | string|null | Highest-res gallery image |
marketplace | string | eBay 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)
| Event | Price |
|---|---|
| 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
| Field | Type | Default | Notes |
|---|---|---|---|
searchQuery | string | airpods pro 2 | Keyword; sold+completed filter added automatically |
startUrls | array | — | eBay search URLs (forced to sold mode); overrides searchQuery |
marketplace | enum | ebay.com | 8 markets: US/UK/DE/FR/IT/ES/CA/AU |
maxItems | int | 50 | 1–1000, hard billing cap |
condition | enum | any | any / new / used / refurbished / open_box |
daysBack | int | — | Keep only items sold in last N days (≤90) |
minPrice / maxPrice | int | — | eBay price filter, local currency |
sortBy | enum | newest | newest recommended for current pricing |
includeReport | bool | true | Append 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.txtbefore 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.
Legal
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.