eBay Sold Price Scraper + Free Comp Analytics avatar

eBay Sold Price Scraper + Free Comp Analytics

Pricing

from $2.50 / 1,000 sold listings

Go to Apify Store
eBay Sold Price Scraper + Free Comp Analytics

eBay Sold Price Scraper + Free Comp Analytics

eBay sold-price scraper: real completed-listing prices across 8 markets plus a free median/percentile/velocity analytics record. $2.50/1k, under the leader.

Pricing

from $2.50 / 1,000 sold listings

Rating

0.0

(0)

Developer

Aleksey Chaikovskii

Aleksey Chaikovskii

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

The asking price is a wish; the sold price is the truth. This pulls the price eBay buyers actually paid — across 8 marketplaces — and hands you a free median, percentile and velocity read on every keyword, so you bid, list, and reprice on facts instead of vibes.

Per sold listing you get the final price, sold date, condition, listing type, bids, shipping and seller. On top, every keyword returns a free price-distribution record (median, p10–p90, condition & listing-type breakdowns, sell-through velocity, A–D confidence grade) — the class of pricing intelligence the only other analytics actor on the Store charges $25 / 1,000 for. Pay per result, no monthly fee.

Real eBay sold prices across 8 markets — $2.50/1,000, free analytics included

One clean row per sold lot: price, date, condition, listing type, bids

Free price-distribution analytics: median, percentiles, velocity and confidence grade


What it does

eBay only keeps sold/completed listings visible for ~90 days, and there is no official API for sold prices. This actor reads the public sold-search results pages and returns one clean record per sold lot:

  • Sold price = final transaction price. For auctions it's the winning bid; for fixed-price it's the Buy-It-Now price; for accepted Best Offers the public price is hidden by eBay (priceIsMasked: true) and the shown strike-through price is returned instead.
  • No login required. No buyer or bidder data is collected (no buyer usernames, bids identities, or addresses). Public seller identity and feedback are included, as published by eBay.

Quick start

  1. Enter one or more keywords (e.g. iphone 13, pokemon charizard psa 10) — or paste a category / search URL.
  2. Pick a marketplace (default ebay.com) and optional filters: condition, price range, days back.
  3. Run. Results stream into the dataset; a free analytics record is appended per keyword.
{
"keywords": ["iphone 13"],
"marketplace": "ebay.com",
"condition": "used",
"maxResults": 100,
"daysBack": 30,
"withAnalytics": true
}

Output fields

FieldDescription
itemId, urleBay item id and canonical /itm/{id} URL
titleListing title (cleaned)
soldPrice, soldPriceString, currencyFinal sold price (number), raw string, currency from the domain
priceIsRange, priceIsMaskedTrue for multi-variation ranges / Best-Offer-hidden prices
soldDate, soldDateTextSold date as ISO-8601 UTC and the raw eBay text
condition, conditionIdNormalised condition + eBay condition id
listingType, bidsCountAuction / BuyItNow / BestOffer (Unknown only if eBay served a degraded layout); bid count (null unless auction)
shippingCost, shippingCostString, shippingTypeShipping price; free / paid / unknown
sellerName, sellerFeedbackPercent, sellerFeedbackCountPublic seller identity & feedback
itemLocationItem location (not buyer PII)
imageUrlPrimary image (highest-res available)
marketplace, keyword, scrapedAtProvenance

Free analytics record (_type: "price_distribution_summary"): count, mean, median, stdDev, p10, p25, p75, p90, min, max, conditionBreakdown, listingTypeBreakdown, soldPerDay, periodDays, confidenceGrade (A=50+, B=20–49, C=10–19, D<10). Computed from the already-fetched data — zero extra requests, not billed. Notes: distribution stats use only single-value, unmasked prices (Best Offer and multi-variation prices are excluded, so bestOffer.median is null by design); soldPerDay = items ÷ observedSpanDays where observedSpanDays is the actual span between the earliest and latest sold dates in the result set (soldPerDayBasis tells you whether it fell back to the requested period).

Marketplaces

DomainCurrencyDomainCurrency
ebay.comUSDebay.itEUR
ebay.co.ukGBPebay.esEUR
ebay.deEURebay.caCAD
ebay.frEURebay.com.auAUD

Pricing

Pay-per-result: $2.50 / 1,000 sold listings ($0.0025 each), no run-start fee. The price-distribution analytics record is free. You're only charged for listings actually returned.

Use cases

  • Know real value before you buy — run the keyword first: median sold price, p25–p75 range, sell-through velocity, with masked Best Offers and outliers already stripped. The difference between a margin and a mistake.
  • Price a listing to actually sell — the condition breakdown shows what used vs new commands; percentiles show where to price for a fast sale vs top dollar; the listing-type split reveals whether auctions or Buy-It-Now win for the SKU.
  • Validate dropshipping margin in real currency — US in USD, UK in GBP, DE in EUR (proxy auto-pinned per market) vs landed cost; kill a product before spending a cent on ads.
  • Feed an AI repricing / comps tool — clean structured sold records plus a ready-made analytics object, so your app doesn't crunch stats or babysit a browser.
  • Market & demand research at scale — batch dozens of keywords; the free per-keyword analytics turns raw sales into instant signal (what moves fast, where prices cluster, how confident each read is, grade A–D).
  • Settle what a collectible is really worth — recent sold comps for a card, coin, watch or rare item, date-stamped and condition-tagged, masked Best Offers excluded.

Limitations

  • eBay exposes only a 90-day sold window — older sales can't be retrieved.
  • Best Offer final prices are hidden by eBay; priceIsMasked flags these and returns the listed price.
  • Multi-variation listings show a price range (priceIsRange: true); these are excluded from the distribution stats to avoid skew.
  • High volume or non-US marketplaces may require switching the proxy to Residential (datacenter works at low volume).
  • Per-query eBay caps results at ~10,000; split by price range or date window for very broad searches.

FAQ

Does this give me what stuff actually SOLD for, or just what sellers are asking? Sold, not asking. It pulls eBay's completed/SOLD listings — the real number a buyer paid, with currency, the sold date (ISO UTC), and whether it closed via Auction, Buy-It-Now or Best Offer. The difference between "I think it's worth $80" and "eleven closed at a median of $62 in the last three weeks."

How does the free analytics work, and is it really free? Genuinely free — it's computed from data already fetched for your query, so it costs nothing extra. Per keyword you get count, mean, median, std-dev, p10/p25/p75/p90, breakdowns by condition and listing type, sell-through velocity (sold/day), and an A–D confidence grade. It's descriptive statistics on historical sold facts — not a forecast or appraisal. You pay only $2.50/1k for the raw results; the verdict on top is on the house.

Why are you cheaper than the other sold-listings scrapers — what's the catch? No catch, just leaner. At $2.50/1k you pay 37.5% less than the category leader ($4.00/1k) and a fraction of the only other tool that bundles analytics ($25/1k). It's HTTP-only — no headless browser burning compute — so the savings are structural, not a downgrade. Run a small batch and check it against the leader yourself.

Is this legal? Are you scraping personal data? It reads only public sold facts eBay itself publishes on completed-listing pages — price, date, condition, listing type, shipping, item location, image. Zero buyer data, zero bidder identities. The only person named is the seller, exactly as eBay already publishes their public storefront. For individual sellers a username may be personal data under GDPR/UK-GDPR, so handle the output accordingly. This is independent public-data scraping, not an official eBay feed; you are responsible for compliance with eBay's User Agreement and applicable law.

Accepted Best Offer prices are hidden on eBay — how do you handle that? We flag them and exclude them from the stats. eBay deliberately masks the final accepted price on Best Offer sales — any tool claiming to know that number is guessing. We tag those listings (priceIsMasked: true) and leave them out of the mean/median/percentiles, so your analytics are built only on prices we can actually verify.

How far back does the data go? 90 days — that's eBay's public limit, not ours. For pricing decisions that's the window you want: a comp from nine months ago is stale, the last 90 days is what the market pays now. Want a longer trend? Run it on a schedule and accumulate your own verified history.

Which marketplaces? Eight: US, UK, DE, FR, IT, ES, CA, AU. The proxy auto-pins to the right country per marketplace, so a UK query returns GBP, a German one EUR — comps in the currency you actually buy and sell in.

Why fewer results than maxResults? maxResults is a ceiling for the whole run; you may simply have fewer matching sold listings in the chosen window.


Price research on public data. No buyer or bidder personal data is collected; public seller identity is included as published by eBay.