eBay Sold Listings Scraper — Completed Sales & Sold Prices
Pricing
$3.50 / 1,000 sold listings
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
Maintained by CommunityActor stats
0
Bookmarked
17
Total users
10
Monthly active users
14 hours ago
Last modified
Categories
Share
Disclaimer: Unofficial integration for publicly accessible eBay completed (sold) listings. eBay and related names are trademarks of eBay Inc. Not affiliated with, sponsored by, or endorsed by eBay Inc. Provided for informational and research purposes only.
Scrape eBay sold listings and completed sale prices by keyword across 20+ regional marketplaces. Export sold price, sold date, shipping, condition, listing type, and seller feedback as clean JSON — ideal for resale arbitrage, sold comps, market pricing, and inventory valuation.
Best for: developers and data teams who want raw sold listing rows for Google Sheets, Airtable, databases, webhooks, and custom analytics pipelines.
Crawloop eBay E-commerce & Resale Suite — live active listings, completed sold comps, and pricing intelligence.
| Active listings | Sold listings | Pricing intelligence |
|---|---|---|
| eBay Active Listings Scraper | eBay Sold Listings Scraper ◄── you are here | eBay Sold Price Intelligence |
| Live listings, BIN/auction, watchers, competition | Completed sales, raw sold rows, sold dates | Recommended price, demand score, CSV/report |
When to use this Actor
- eBay sold price lookup — real completed sales from the last 1–90 days
- Resale & arbitrage research — sneakers, GPUs, collectibles, vintage, electronics comps
- Competitive pricing datasets — sold prices per keyword, category, and marketplace
- Seller intelligence — filter sellers, track feedback, focus on organic sales
- Multi-market analysis — same keyword on
ebay.com,ebay.de, orebay.co.ukin parallel
When not to use this Actor
- Pricing reports & recommended list price — use eBay Sold Price Intelligence
- Active / live listings — use eBay Active Listings Scraper
- Official eBay API replacement — we parse public search pages
Key Features
- Completed sales only — every row includes a sold/end date; sponsored active cards filtered out
- 20+ eBay sites — US, UK, DE, FR, IT, ES, CA, AU, PL, NL, SG, MY, PH, HK with correct currency parsing
- Triple layout fallback —
.s-item,.s-item-card, and.s-cardsearch layouts - Lightweight & fast —
curl_cffiChrome TLS impersonation, no browser automation - Rich sold data — price (string + numeric), shipping, total, bids count, condition ID, auction/BIN/best offer, seller type
- Paste sold search URLs —
startUrlsreads keyword and filters from a browser Sold+Completed link - Advanced filters — date window, price range, condition, listing type, free shipping, seller blocklist
- Deduped batch runs — optional
itemIddedupe across keywords/URLs to avoid double PPE charges - Proxy-ready — Apify Residential Proxies recommended for US/UK; sticky session per search job
- Sold-search fallback — when eBay gates Sold/Completed SRP behind sign-in, the Actor discovers candidate item IDs via public search engines and scrapes sold item pages (
source: "pdp_fallback"). Volume depends on SERP coverage; use broader keywords / higherdaysToScrapefor larger pulls.
Input Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
keywords | Array | — | Search queries; each runs in parallel (required if no startUrls) |
startUrls | Array | — | Pasted eBay Sold/Completed search URLs (filters + site parsed from each URL) |
daysToScrape | Integer | 30 | Completed sales lookback (1–90 days) |
count | Integer | 100 | Max sold listings per keyword/URL |
dedupeItemIds | Boolean | true | Skip duplicate itemId across jobs in the same run |
ebaySite | String | "ebay.com" | Regional eBay domain (for keyword jobs) |
itemCondition | String | "any" | any, new, used, refurbished |
listingType | String | "any" | any, auction, buy_it_now |
freeShippingOnly | Boolean | false | Free shipping filter (LH_FS on eBay) |
excludeSellers | Array | [] | Seller usernames to skip |
categoryId | String | "0" | eBay category (0 = all) |
minPrice / maxPrice | Number | — | Sold price range |
sortOrder | String | "endedRecently" | Sort sold results |
proxyConfiguration | Object | Residential | Apify Proxy settings |
Input Example
{"keywords": ["nike air max", "rtx 4080"],"daysToScrape": 14,"count": 100,"ebaySite": "ebay.de","itemCondition": "used","listingType": "auction","dedupeItemIds": true,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "DE"}}
Input from a sold search URL
{"startUrls": ["https://www.ebay.com/sch/i.html?_nkw=rtx+4080&LH_Sold=1&LH_Complete=1&_udlo=500"],"daysToScrape": 30,"count": 50}
Output Format
Each dataset row = one completed eBay sale.
| Field | Description |
|---|---|
itemId | eBay listing ID |
title | Listing title |
soldPrice / soldPriceValue | Final sold price (string + numeric) |
soldCurrency | Currency code |
totalPrice / totalPriceValue | Sold price + shipping |
endedAt | Sale end time (UTC ISO 8601) |
condition / conditionId | Localized label + normalized code |
listingType | buy_it_now, auction, best_offer_accepted |
bidsCount | Auction bid count when available |
shippingPrice / shippingPriceValue / shippingType | Shipping cost and type |
sellerUsername / sellerFeedbackScore | Seller profile |
keyword | Search query that found this sale |
url | Clean item URL |
Output Example
{"itemId": "377309614758","title": "ASUS TUF Gaming GeForce RTX 3080 OC 10GB GDDR6 - FAULTY","soldPrice": "163.34","soldPriceValue": 163.34,"soldCurrency": "EUR","endedAt": "2026-07-02T12:00:00.000Z","listingType": "auction","bidsCount": 15,"totalPrice": "179.33","totalPriceValue": 179.33,"keyword": "rtx 3080"}
Supported eBay marketplaces
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 · ebay.com.hk
Use Cases
| Use Case | What you get |
|---|---|
| Sold comps for resale | Historical sold prices for flips and liquidation buys |
| Market pricing data | 30/60/90-day sold price bands per keyword |
| Category research | Sold data by categoryId and condition |
| Cross-border pricing | Same keyword on .com vs .de with local currency |
| Custom analytics | Feed raw JSON into your own pricing models |
| AI / MCP workflows | Run via Apify API, clients, or MCP and summarize sold comps |
Integration examples
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('crawloop/ebay-sold-listings-scraper').call({keywords: ['rtx 4080'],daysToScrape: 30,count: 100,ebaySite: 'ebay.com',proxyConfiguration: {useApifyProxy: true,apifyProxyGroups: ['RESIDENTIAL'],apifyProxyCountry: 'US',},});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.slice(0, 5));
Python
from apify_client import ApifyClientclient = ApifyClient(token)run = client.actor("crawloop/ebay-sold-listings-scraper").call(run_input={"keywords": ["nike air max", "rtx 4080"],"daysToScrape": 14,"count": 100,"ebaySite": "ebay.de","itemCondition": "used","dedupeItemIds": True,"proxyConfiguration": {"useApifyProxy": True,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "DE",},})items = list(client.dataset(run["defaultDatasetId"]).iterate_items())print(len(items), items[:3])
cURL
curl "https://api.apify.com/v2/acts/crawloop~ebay-sold-listings-scraper/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"keywords": ["rtx 4080"],"daysToScrape": 30,"count": 50,"ebaySite": "ebay.com","proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "US"}}'
MCP and AI assistants
Use this Actor from AI tools via Apify MCP. Connect your Apify account, then call crawloop/ebay-sold-listings-scraper.
Example prompts:
- "Run eBay Sold Listings Scraper for rtx 4080 on ebay.com, last 30 days, max 100 rows, and return soldPrice, endedAt, and condition as JSON"
- "Scrape eBay sold listings for nike air max on ebay.de and summarize the median sold price"
- "Chain eBay Sold Listings Scraper then eBay Sold Price Intelligence for iPhone 13 Pro and return the recommended listing price"
Suite next step
For recommended list price, demand level, and CSV/Markdown reports, run eBay Sold Price Intelligence on the same keyword. For live competition, use eBay Active Listings Scraper.
FAQ
How is this different from Sold Price Intelligence?
This Actor returns raw sold listing rows. eBay Sold Price Intelligence adds recommended price, demand scoring, confidence, and ready-made CSV/Markdown reports.
How is this different from the Active Listings Scraper?
eBay Active Listings Scraper returns live listings with current ask prices. This Actor uses eBay's Sold + Completed filter — every row is a finished transaction.
Do I need proxies?
Residential proxies are recommended for US and UK. European domains often work with datacenter proxies. 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. Duplicate itemIds across keywords are skipped by default (dedupeItemIds).
Can I paste an eBay search URL?
Yes — use startUrls with a Sold/Completed search link. The Actor reads the keyword, site, and filters from the URL.
How far back can I scrape?
daysToScrape from 1 to 90. Pagination stops after consecutive out-of-range items when sorted by ended recently.
Best Offer accepted prices
For Best Offer Accepted rows, eBay often shows the asking price on the search card — not the private accepted offer amount. listingType / isBestOfferAccepted still mark those sales.
Related Actors
| Actor | Use for |
|---|---|
| eBay Active Listings Scraper | Live ask prices, watchers, competition |
| eBay Sold Listings Scraper ◄── you are here | Raw completed sales / sold comps |
| eBay Sold Price Intelligence | Recommended price, demand, CSV/report |