eBay Sold Listings Scraper — Completed Sales & Sold Prices avatar

eBay Sold Listings Scraper — Completed Sales & Sold Prices

Pricing

$3.50 / 1,000 sold listings

Go to Apify Store
eBay Sold Listings Scraper — Completed Sales & Sold Prices

eBay Sold Listings Scraper — Completed Sales & Sold Prices

Scrape eBay sold listings and completed sale prices by keyword. Export sold date, condition, shipping, seller feedback across 20+ regional sites. Fast curl_cffi scraper — no browser, residential proxy ready.

Pricing

$3.50 / 1,000 sold listings

Rating

0.0

(0)

Developer

Andrej Kiva

Andrej Kiva

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 hours ago

Last modified

Share

Disclaimer: This is an unofficial integration developed independently. It is not affiliated with, sponsored by, or endorsed by eBay Inc. or any of its subsidiaries.

eBay and related names are trademarks of eBay Inc. Data is read from publicly accessible search results for completed (sold) listings only. No eBay account login or private seller APIs are used.

This Actor is provided for informational and research purposes only (e.g. market pricing, resale valuation, competitor analysis). You are solely responsible for complying with applicable laws, eBay's terms of use, and your organization's policies.

Extract real completed eBay transactions — not active listings. Search by keyword across 20+ regional marketplaces (ebay.com, ebay.co.uk, ebay.de, ebay.fr, and more), filter by sold date range, condition, listing type, and price, then export sold price, end date, shipping, and seller feedback as clean JSON. Built for resale arbitrage, dynamic pricing, inventory valuation, and competitor monitoring.

Best for: eBay sold price research, completed sales history, sneaker/card/tech comps, and bulk export to Google Sheets, Airtable, or your own database via Apify integrations.

When to use this Actor

  • eBay sold price lookup — See what items actually sold for in the last 1–90 days, not asking prices.
  • Resale & arbitrage research — Compare completed sales for sneakers, GPUs, collectibles, vintage goods, and consumer electronics.
  • Competitive pricing — Build sold-price datasets per keyword, category, and marketplace to set your own list prices.
  • Seller intelligence — Filter out high-volume business sellers, track feedback scores, and focus on organic C2C sales.
  • Multi-market analysis — Run the same keyword on ebay.com, ebay.de, or ebay.co.uk in parallel with localized currency parsing.

When not to use this Actor

  • Active / live listings — This Actor targets Sold + Completed search results only, not current Buy It Now inventory.
  • Single product PDP deep scrape — Use a dedicated eBay item scraper if you need full description HTML, item specifics, or all gallery images from one URL.
  • Official eBay API replacement — We parse public search pages; for licensed API access, use eBay's developer program directly.

Key Features

  • Completed sales only — Filters sponsored cards and active listings; every row includes a sold/end date.
  • 20+ eBay sites — US, UK, DE, FR, IT, ES, CA, AU, PL, NL, and more with correct currency handling.
  • Triple layout fallback — Supports .s-item, .s-item-card, and .s-card search result layouts automatically.
  • Lightweight & fastcurl_cffi Chrome TLS impersonation, 128–256 MB RAM, no Puppeteer or Playwright.
  • Rich sold listing data — Price, shipping, total, condition ID, listing type (auction / BIN / best offer), seller type.
  • Advanced filters — Date window, min/max price, condition, auction vs Buy It Now, free shipping, seller blocklist.
  • Proxy-ready — Works with Apify Residential Proxies (recommended) and datacenter proxies on EU domains.

Input Parameters

ParameterTypeDefaultDescription
keywordsArray(Required)Search queries (e.g. ["iphone 15", "rtx 4080"]). Each keyword runs in parallel.
daysToScrapeInteger30How many days back to include completed sales (1–90).
countInteger100Max sold listings to collect per keyword.
ebaySiteString"ebay.com"Regional eBay domain (ebay.de, ebay.co.uk, ebay.fr, …).
itemConditionString"any"any, new, used, or refurbished.
listingTypeString"any"any, auction, or buy_it_now.
freeShippingOnlyBooleanfalseKeep only listings with free shipping.
excludeSellersArray[]Seller usernames to skip (case-insensitive).
categoryIdString"0"eBay category ID (0 = all categories).
subcategoryIdString""Optional subcategory; overrides categoryId when set.
minPrice / maxPriceNumberSold price range in the marketplace currency.
itemLocationString"default"default, domestic, or worldwide seller location.
sortOrderString"endedRecently"Sort sold results (ended recently, price low/high, etc.).
proxyConfigurationObjectResidentialApify Proxy settings; residential recommended for US/UK.

Input Example

{
"keywords": ["nike air max", "rtx 4080"],
"daysToScrape": 14,
"count": 100,
"ebaySite": "ebay.de",
"itemCondition": "used",
"listingType": "auction",
"freeShippingOnly": false,
"excludeSellers": ["mega_shop_de"],
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "DE"
}
}

Output Format

Each dataset row = one completed eBay sale that passed your filters.

FieldTypeDescription
itemIdStringeBay listing ID.
urlStringClean item URL (no tracking params).
titleStringListing title.
conditionStringLocalized condition (e.g. Pre-owned, Gebraucht).
conditionIdIntegerNormalized code (1000 New, 3000 Used, 7000 For parts).
endedAtStringSale end time (UTC ISO 8601).
soldPriceStringFinal sold price.
soldCurrencyStringUSD, EUR, GBP, PLN, etc.
listingTypeStringbuy_it_now, auction, or best_offer_accepted.
isBestOfferAcceptedBooleanBest Offer accepted flag.
shippingPriceStringShipping cost (0.00 = free).
shippingTypeStringfree, paid, pickup, or unknown.
totalPriceStringSold price + shipping (same currency).
sellerUsernameStringSeller account name.
sellerPositivePercentNumberPositive feedback %.
sellerFeedbackScoreIntegerTotal feedback count.
sellerTypeStringbusiness or private when shown.
keywordStringKeyword that found this sale.
scrapedAtStringExtraction timestamp (UTC).

Output Example

{
"itemId": "377309614758",
"url": "https://www.ebay.de/itm/377309614758",
"title": "ASUS TUF Gaming GeForce RTX 3080 OC 10GB GDDR6 - FAULTY",
"condition": "Nur Ersatzteile / defekt",
"conditionId": 7000,
"endedAt": "2026-07-02T12:00:00.000Z",
"soldPrice": "163.34",
"soldCurrency": "EUR",
"listingType": "auction",
"isBestOfferAccepted": false,
"shippingPrice": "15.99",
"shippingType": "paid",
"totalPrice": "179.33",
"sellerUsername": "basspares",
"sellerPositivePercent": 100,
"sellerFeedbackScore": 907,
"sellerType": "business",
"keyword": "rtx 3080",
"scrapedAt": "2026-07-02T12:52:34.598Z"
}

Note: When Best Offer is accepted, eBay often hides the negotiated price — the Actor flags isBestOfferAccepted: true and records the displayed asking price.

Use Cases

Use CaseWhat you get
Sold comps for resaleHistorical sold prices for flips, thrift finds, and liquidation buys
Market pricing30/60/90-day sold price bands per SKU or keyword
Category researchSold data narrowed by categoryId and condition filters
Cross-border pricingSame keyword on .com vs .de with local currency
Seller filteringExclude dropshippers and bulk dealers via excludeSellers

FAQ

How is this different from a regular eBay scraper?

Regular eBay scrapers return active listings with current ask prices. This Actor searches eBay's Sold + Completed filter, so every row reflects a transaction that already ended — ideal for true market value and sold comps.

Which eBay sites are supported?

ebay.com, ebay.co.uk, ebay.de, ebay.fr, ebay.it, ebay.es, ebay.ca, ebay.com.au, ebay.at, ebay.ch, ebay.ie, ebay.pl, ebay.nl, ebay.be, ebay.com.sg, ebay.com.my, ebay.ph, and ebay.com.hk.

Do I need proxies?

Residential proxies are recommended for US and UK marketplaces to reduce bot challenges. European domains often work with datacenter proxies. The Actor defaults to geo-targeted Apify Residential Proxy per marketplace.

Can I scrape multiple keywords at once?

Yes. Pass an array in keywords — each query runs in parallel with the same filters and its own count limit.

How far back can I scrape sold history?

Set daysToScrape from 1 to 90. Results older than your window are skipped; with endedRecently sort, pagination stops after five consecutive out-of-range items.

Does it export to JSON / CSV / API?

Yes. Results land in the Apify dataset. Download JSON, CSV, or Excel from the run, or connect webhooks and integrations (Google Sheets, BigQuery, etc.).