eBay Sold Listings Scraper
Pricing
from $2.40 / 1,000 ebay sold listings
eBay Sold Listings Scraper
Scrape eBay sold listings with real transaction prices across 8 marketplaces. Filter by keyword, category, price, condition, date range, and sort order. Returns 22+ fields per item including sold price, shipping, seller info, and listing type.
Pricing
from $2.40 / 1,000 ebay sold listings
Rating
0.0
(0)
Developer
ParseBird
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
eBay Sold Listings Scraper
Extract real eBay sold prices — actual completed transactions, not asking prices or active listings.
| Search by keyword across 8 eBay marketplaces, filter by category, price range, condition, date, and sort order — get 22+ structured data fields per sold listing including final price, shipping, seller info, and listing type. |
Copy to your AI assistant
Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.
Actor: parsebird/ebay-sold-listings-scraper — Scrape eBay sold listings with real transaction prices across 8 marketplaces.Usage: from apify_client import ApifyClient; client = ApifyClient("YOUR_TOKEN"); run = client.actor("parsebird/ebay-sold-listings-scraper").call(run_input={"keywords": ["iphone 15 pro"], "count": 100, "daysToScrape": 30, "ebaySite": "ebay.com"})Inputs: keywords (string[], 1-6 terms, required), daysToScrape (int, 1-90, default 30), count (int, max per keyword, default 100), categoryId (string, "0"=all), subcategoryId (string, overrides category), ebaySite (string: ebay.com|co.uk|de|fr|it|es|ca|com.au), sortOrder (string: endedRecently|timeNewlyListed|pricePlusPostageLowest|pricePlusPostageHighest|distanceNearest), minPrice/maxPrice (number), itemLocation (default|domestic|worldwide), itemCondition (any|new|used)Output fields: itemId, url, title, condition, conditionId, categoryId, category, endedAt, soldPrice, soldCurrency, listingType, isBestOfferAccepted, shippingPrice, shippingCurrency, shippingType, totalPrice, thumbnailUrl, sellerUsername, sellerPositivePercent, sellerFeedbackScore, sellerType, scrapedAt, keywordAPI spec: https://apify.com/parsebird/ebay-sold-listings-scraper/apiGet token: https://console.apify.com/account/integrations
What is eBay Sold Listings Scraper?
eBay Sold Listings Scraper extracts confirmed sold item data from eBay — real completed sales with final transaction prices. Unlike active listing scrapers, this actor returns only items that actually sold, making it ideal for price analysis, market research, and resale pricing intelligence.
This actor works as an eBay sold items API alternative — no official API access required. It supports all major eBay marketplaces: US, UK, Germany, France, Italy, Spain, Canada, and Australia.
Key capabilities:
- 🔍 Multi-keyword search (up to 6 keywords per run)
- 🌍 8 eBay marketplaces with localized condition labels
- 📊 22+ data fields per listing including seller metrics
- 📅 Date range filtering (1–90 days back)
- 💰 Price range, condition, and category filters
- 🏷️ Listing type detection (auction, Buy It Now, Best Offer)
- 📦 Shipping cost and type extraction
What data can you extract from eBay sold listings?
| Field | Description |
|---|---|
itemId | eBay item ID |
url | Full listing URL |
title | Listing title |
condition | Localized condition label (e.g. "Pre-Owned", "Gebraucht", "Neuf") |
conditionId | Numeric eBay condition ID (1000=New, 3000=Used, etc.) |
categoryId | Category ID used for the search |
category | Category label from the search page |
endedAt | Sale completion timestamp (ISO 8601) |
soldPrice | Final transaction price |
soldCurrency | Currency code (USD, GBP, EUR, CAD, AUD) |
listingType | How it sold: "auction", "buy_it_now", "best_offer_accepted" |
isBestOfferAccepted | Whether the sale was via accepted Best Offer |
shippingPrice | Shipping cost |
shippingCurrency | Shipping currency |
shippingType | "free", "paid", "pickup", or "unknown" |
totalPrice | soldPrice + shippingPrice (when currencies match) |
thumbnailUrl | 500px product image from i.ebayimg.com |
sellerUsername | Seller username |
sellerPositivePercent | Positive feedback percentage |
sellerFeedbackScore | Total feedback count |
sellerType | "private" or "business" (EU sites only) |
scrapedAt | Scrape timestamp (ISO 8601) |
keyword | Which search keyword produced this result |
How to scrape eBay sold listings
- Go to eBay Sold Listings Scraper on Apify Store
- Click Try for free to open the input form
- Enter one or more keywords (e.g. "rtx 4080", "iphone 15 pro")
- Set your filters: days back, max results, category, price range, condition
- Choose your eBay marketplace (US, UK, DE, FR, IT, ES, CA, AU)
- Click Start and wait for results
- Download your data as JSON, CSV, or Excel — or access via API
Input parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| keywords | string[] | Yes | — | 1–6 search terms. Each runs as a separate search. |
| daysToScrape | integer | No | 30 | Days back to include (1–90) |
| count | integer | No | 100 | Max results per keyword |
| categoryId | string | No | "0" | Main eBay category (0 = All Categories) |
| subcategoryId | string | No | "" | Subcategory ID (overrides categoryId) |
| ebaySite | string | No | "ebay.com" | eBay marketplace to search |
| sortOrder | string | No | "endedRecently" | Sort: endedRecently, timeNewlyListed, pricePlusPostageLowest, pricePlusPostageHighest |
| minPrice | number | No | — | Minimum sold price filter |
| maxPrice | number | No | — | Maximum sold price filter |
| itemLocation | string | No | "default" | default, domestic, worldwide |
| itemCondition | string | No | "any" | any, new, used |
| proxyConfiguration | object | No | Datacenter | Proxy settings for reliable runs |
Backward compatibility: the deprecated keyword (string) and search (string) fields are still accepted for existing integrations.
Output example
{"itemId": "178234355418","url": "https://www.ebay.com/itm/178234355418","title": "iPhone 15 Pro Max - 512 GB - Blue - Unlocked - 99% Batt Health","condition": "Pre-Owned","conditionId": 3000,"categoryId": "0","category": "All Categories","endedAt": "2026-06-20T05:00:00.000Z","soldPrice": "750","soldCurrency": "USD","listingType": "best_offer_accepted","isBestOfferAccepted": true,"shippingPrice": null,"shippingCurrency": null,"shippingType": "unknown","totalPrice": "750","thumbnailUrl": "https://i.ebayimg.com/images/g/V7wAAeSw9XlqNEn6/s-l500.webp","sellerUsername": "akagi7","sellerPositivePercent": 100.0,"sellerFeedbackScore": 51,"sellerType": null,"scrapedAt": "2026-06-20T15:18:46.000Z","keyword": "iphone 15 pro"}
Use cases
- 📈 Price research — Find actual market prices for electronics, collectibles, or any product category
- 💹 Resale arbitrage — Compare buy prices vs. sold prices to identify profitable flips
- 📊 Market trend analysis — Track how prices change over time for specific products
- 🏷️ Competitive pricing — Set optimal listing prices based on real transaction data
- 🤖 Pricing APIs — Feed sold price data into automated pricing engines or dashboards
- 📋 Insurance valuations — Document fair market value with real sales evidence
- 🔬 Academic research — Study secondary market dynamics and consumer behavior
How much does it cost to scrape eBay sold listings?
| Tier | Price per result | Price per 1,000 results |
|---|---|---|
| Free, Bronze, Silver | $0.0034 | $3.40 |
| Gold | $0.0024 | $2.40 |
Each sold listing pushed to the dataset counts as one billable event. A typical run of 100 results costs approximately $0.34 (Free/Bronze/Silver tier). The free trial includes enough credits to test the actor.
Platform compute costs are included in the per-event price — you only pay for results.
Integrations and API access
eBay Sold Listings Scraper runs on the Apify platform, giving you:
- Scheduling — Run daily, weekly, or at any custom interval
- API access — Start runs and fetch results programmatically
- Webhooks — Get notified when a run completes
- Integrations — Connect to Google Sheets, Slack, Zapier, Make, and more
- Export formats — Download as JSON, CSV, Excel, or XML
Python example
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("parsebird/ebay-sold-listings-scraper").call(run_input={"keywords": ["rtx 4080", "rtx 4090"],"count": 200,"daysToScrape": 30,"ebaySite": "ebay.com","categoryId": "58058",})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(f"{item['title']} — {item['soldCurrency']} {item['soldPrice']}")
JavaScript example
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor("parsebird/ebay-sold-listings-scraper").call({keywords: ["rtx 4080", "rtx 4090"],count: 200,daysToScrape: 30,ebaySite: "ebay.com",categoryId: "58058",});const { items } = await client.dataset(run.defaultDatasetId).listItems();items.forEach(item => console.log(`${item.title} — ${item.soldCurrency} ${item.soldPrice}`));
Is it legal to scrape eBay?
Web scraping of publicly available data is generally legal, as established by the US Ninth Circuit Court ruling in hiQ Labs v. LinkedIn (2022). The eBay Sold Listings Scraper collects only publicly visible information from eBay's search results pages — data that any visitor can see without logging in.
This actor does not bypass any authentication, access private user data, or violate eBay's technical protections. Users are responsible for ensuring their use case complies with applicable laws and eBay's terms of service.
For more on web scraping legality, see Apify's guide to web scraping and the law.
Related actors
- Craigslist Scraper — Extract listings from Craigslist across 50+ cities
- Data Deduplicator — Remove duplicate records from any Apify dataset
- Data Cleaner — Clean, filter, and transform dataset records
FAQ
What's the difference between sold price and asking price?
This actor returns only confirmed sales — items where a buyer actually completed the purchase. When isBestOfferAccepted is true, the soldPrice field shows the seller's asking price (not the accepted offer amount, which eBay doesn't disclose).
Which eBay sites are supported? Eight marketplaces: ebay.com (US), ebay.co.uk (UK), ebay.de (Germany), ebay.fr (France), ebay.it (Italy), ebay.es (Spain), ebay.ca (Canada), and ebay.com.au (Australia). Each returns prices in the local currency.
Can I schedule recurring runs? Yes. Use Apify's scheduling feature to run this actor daily, weekly, or at any custom interval. Combine with webhooks to automatically process new data.
How do I filter by subcategory?
Set the subcategoryId field to an eBay category ID number. When set, it overrides categoryId. You can find category IDs by browsing eBay's category tree or using this reference.
What does the listingType field tell me?
It indicates how the item sold: "auction" (bidding), "buy_it_now" (fixed price), or "best_offer_accepted" (negotiated price). This helps distinguish market-driven prices from fixed-price sales.
Why are some fields null?
Fields like shippingPrice, sellerType, and conditionId can be null when eBay doesn't display that information on the search card. sellerType is only available on EU sites (Germany, France, Italy, Spain). The condition field is always the authoritative source — conditionId is a best-effort lookup.