eBay Sold Listings Scraper avatar

eBay Sold Listings Scraper

Pricing

from $2.00 / 1,000 results

Go to Apify Store
eBay Sold Listings Scraper

eBay Sold Listings Scraper

Scrape real sold prices, dates, conditions, and shipping from eBay's completed listings filter. Residential-proxy backed (Apify pool) with Chrome 124 TLS fingerprint impersonation — bypasses eBay's anti-bot.

Pricing

from $2.00 / 1,000 results

Rating

0.0

(0)

Developer

tnodes

tnodes

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

9 days ago

Last modified

Categories

Share

Real sold prices, dates, conditions, and shipping from eBay's completed-listings filter. Output schema mirrors the de-facto Apify convention (itemId, soldPrice, endedAt, condition, conditionId, ...) so it drop-in replaces caffein.dev/ebay-sold-listings and similar actors.

How it works

eBay aggressively blocks scrapers via:

  1. IP fingerprinting — datacenter IPs get 404/CAPTCHA
  2. TLS fingerprinting — plain requests/httpx flagged by TLS handshake
  3. Cookie/session checks — naked requests to /sch/i.html?LH_Sold=1 get 403

This actor handles all three:

  1. Apify's residential proxy pool (sticky session per actor run)
  2. curl_cffi impersonates Chrome 124's TLS fingerprint exactly
  3. Browser-realistic flow: visit homepage (warm cookie jar) → search with Referer header

Input

FieldTypeDefaultDescription
keywordstring(required)Search term — product name, MPN, model number
conditionenumanyany / new / used
daysToScrapeint60Only listings sold within last N days (1–90; eBay caps at 90)
countint50Max results to return (1–300)

Output fields

Each dataset record:

FieldTypeNotes
itemIdstringeBay item identifier
urlstringListing URL
titlestringListing title (Opens in a new tab accessibility suffix stripped)
soldPricenumberRealized sale price
soldCurrencystringISO code (USD, GBP, EUR, ...)
endedAtstringISO 8601 sale date
conditionstringLocalized label (Pre-Owned, Brand New, ...)
conditionIdinteBay numeric enum: 1000=New, 1500=Open Box, 3000=Used, 7000=For Parts
shippingPricenumbernull if unknown
shippingCurrencystringISO code
shippingTypeenumfree / paid / pickup / unknown
totalPricenumbersoldPrice + shippingPrice
scrapedAtstringISO 8601 of when this run extracted the record

Limits + notes

  • eBay's sold-listings filter only shows the last 90 days, regardless of daysToScrape.
  • Bundle/lot listings ("Lot of 5 ...") and for-parts listings are NOT filtered out here — downstream consumers should regex-filter if they want comparable single-unit prices.
  • Seller info (sellerUsername, sellerFeedbackScore) is NOT in the new 2026 li.s-card layout and isn't returned. Older actors that include these fields are scraping individual listing pages, which is 50x more expensive.

Local development

$apify run -p # runs locally with the input from .actor/INPUT.json

License

MIT.