eBay Sold Listings Scraper
Pricing
from $2.50 / 1,000 results
eBay Sold Listings Scraper
Scrape eBay sold listings from 8 marketplaces with no login or cookies. Get real sold prices, sale age, seller rating, condition and shipping from search, seller or listing links. Bulk input and auto proxy switching. Export JSON, CSV or Excel for price comps and resale research.
Pricing
from $2.50 / 1,000 results
Rating
0.0
(0)
Developer
Data Minds
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
9 days ago
Last modified
Categories
Security
Limited permissionsShare
What is eBay Sold Listings Scraper?
eBay Sold Listings Scraper is an eBay sold listings scraper that collects real sold prices, sale age, seller ratings and optional item details from eBay search links, seller profile links and single listing links. Paste your links, pick one of eight eBay sites and click Start. Results land in a dataset you can download as JSON, CSV or Excel. Pay per result, from $0.0025 per result ($2.50 per 1,000) on the Gold plan.
Just paste a search link such as an iPhone model and click Start. You get eBay sold listings in bulk and without login or cookies, and no coding is needed. It suits sold price research, resale price comps and price monitoring, because every row shows what a buyer really paid, not what a seller asks.
- ๐ต Sold price research: check what an item really sold for before you buy, list or negotiate, with eBay sold price analysis for any search term.
- ๐ท Resale price comps: pull eBay price comps for the same model in one export, with the eBay average sold price (mean and median), minimum and maximum per keyword and currency.
- ๐ Reselling research: support an eBay flipping price check before every purchase, with eBay sold listings for resellers in one export.
- ๐ Price monitoring: run the Actor on a schedule to track eBay sold prices over time and keep an eBay price tracker sheet fresh.
- ๐ช Competitor price analysis: paste a seller profile link to read that eBay seller's recent sales with their rating and feedback score.
- ๐ Market research: compare eBay sold listings UK (ebay.co.uk) and eBay sold listings Germany (ebay.de) in one project.
- ๐ Platform benefits: use the Apify API, schedule runs, connect webhooks and integrations, and export to JSON, CSV, Excel, XML or HTML.
What can eBay Sold Listings Scraper do?
- ๐ Mix link types: paste search links, seller links, listing links or plain keywords in one run.
- ๐ฏ Filter results: keep only sales inside a time window (
soldWithin), inside a price range (minPrice,maxPrice) or without titles that contain yourexcludeWords. - ๐ Price statistics: get median, mean, minimum and maximum sold price per keyword and currency in a separate table.
- ๐ฌ Item details on request: add eBay shipping price data and eBay item condition data, plus exact end date, category, total price, item location and image, with
includeItemDetails. - ๐ Eight eBay sites: ebay.com, ebay.co.uk, ebay.de, ebay.fr, ebay.it, ebay.es, ebay.ca and ebay.com.au.
- โก Live output: each sold listing appears in the dataset as soon as it is ready.
- ๐ฆ Export: download your eBay sold listings export as JSON, CSV, Excel, XML or HTML.
What data can eBay Sold Listings Scraper extract?
The Actor extracts these sold listing fields. Use them to extract eBay sold price data into a spreadsheet or your own tool.
| Field | What it contains | When it appears |
|---|---|---|
๐ itemId | eBay item number of the listing | Always |
๐ url | Link to the eBay listing page | Always |
๐ title | Listing title as shown at the time of the sale | Always |
๐ต soldPrice | Price the buyer paid | Sold listings |
๐ฑ soldCurrency | ISO currency code of the sold price | Sold listings |
๐
soldWithin | The eBay sold date as an age bucket: 30d, 6m, 12m or 12m+ | Sold listings |
๐ soldNotBefore | Earliest possible sale date for the age bucket | Sold listings, empty for 12m+ |
๐ช sellerUsername | eBay username of the seller | Sold listings |
๐ sellerPositivePercent | Positive rating share of the seller | Search-term runs |
๐
sellerFeedbackScore | Rating score of the seller | Search-term runs |
โญ feedbackRating | Rating left for the sale | Sold listings |
โ
verifiedPurchase | True when eBay marks the rating as a verified purchase | Sold listings |
๐ keyword | Search term that matched the sale | When keywords are used |
๐ site | eBay site the row belongs to | Always |
โฐ scrapedAt | UTC time the row was collected | Always |
๐ endedOn, listingState | Exact end date and ended or active state | Item details and listing lookups |
๐งฐ condition, category | Item condition and category path | Item details and listing lookups |
๐ shippingPrice, shippingCurrency, totalPrice | Shipping cost, its currency, and sold price plus shipping when both use the same currency | Item details and listing lookups |
๐ location, imageUrl | Where the item ships from and the main image | Item details and listing lookups |
๐ price, currency, quantityAvailable, quantitySold | Price shown on the listing, its currency and quantities | Listing lookups only |
Extra tables next to the sold listings:
| Table | Fields |
|---|---|
| ๐ Price statistics | keyword, currency, sales, median, mean, min, max |
| ๐ง Sellers read | sellerUsername, keyword, positivePercent, feedbackScore, salesRead, salesSaved, status, error |
| ๐ Inputs without results | input, error |
Note: Seller fields (
sellerPositivePercent,sellerFeedbackScore) are filled for search-term runs.keywordappears only when the run uses keywords or search links. Item detail fields can be empty when the listing page is no longer available.
What data can't eBay Sold Listings Scraper extract?
- The exact sale date of every sale. eBay shows the age of a sale only as past month, past 6 months, past 12 months or older, so you get
soldWithinandsoldNotBeforeinstead. - Buyer names, buyer contact details and seller contact details. These are not part of the output.
- Listing descriptions and bid histories. The output has the fields listed above.
For adjacent marketplace and reputation data, see the other scrapers listed below.
How to scrape eBay sold listings
eBay Sold Listings Scraper is designed for an easy start, even if you have never extracted data from the web before.
- Create a free Apify account using your email.
- Open eBay Sold Listings Scraper.
- Paste your eBay search, seller or listing links into
urls(or add phrases tokeywords). - Choose
ebaySite,soldWithinand optional price filters, and setmaxItemsto the number of sold listings you want. - Click Start and watch the sold listings appear in the Output tab.
- Download your data in JSON, CSV, Excel, XML or HTML.
How much does it cost to scrape eBay sold listings?
eBay Sold Listings Scraper uses a pay-per-event model. You pay for each saved result, and Apify platform usage is billed in addition. Prices fall as your Apify plan grows:
| Plan | Price per result | Price per 1,000 results |
|---|---|---|
| Free | $0.004 | $4.00 |
| Bronze | $0.0035 | $3.50 |
| Silver | $0.003 | $3.00 |
| Gold | $0.0025 | $2.50 |
Each run also charges a start event of $0.00005 per GB of memory, with a minimum of one. The default memory of the Actor is 1,024 MB (1 GB), so a run starts with one start event: $0.00005.
Example: scraping 1,000 sold listings on the Gold plan costs $2.50 in result events, plus the start event and platform usage. On the Free plan the same 1,000 results cost $4.00.
Is scraping eBay sold listings free?
You can start for free. The Apify Free plan includes $5 of monthly credit, which covers about 1,250 results at the Free price of $0.004 per result, before platform usage. A small test of 10 results costs $0.04. See the pricing tab for all events.
Input
Only urls is required: one or more eBay search, seller or listing links. Set the input in the Actor interface or send it as JSON through the API. This example looks up sold iPhone listings, skips damaged items and stops after 10 sold listings:
{"urls": ["https://www.ebay.com/sch/i.html?_nkw=iphone+13+pro+max+128gb"],"keywords": [],"maxItems": 10,"excludeWords": ["cracked","for parts"],"proxyConfiguration": {"useApifyProxy": false}}
See the input schema for the full field descriptions.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
urls | array of strings | Yes | prefilled search link | eBay search, seller or listing links. Plain keywords are accepted too. |
keywords | array of strings | No | empty | Extra search phrases. Sold listings must contain all words of a phrase. |
maxItems | integer | No | 10 | Stop after this many sold listings in total. 0 means no limit. |
includeItemDetails | boolean | No | false | Add end date, condition, category, shipping, total price, location and image. |
ebaySite | string | No | site of your links, otherwise ebay.com | One of ebay.com, ebay.co.uk, ebay.de, ebay.fr, ebay.it, ebay.es, ebay.ca, ebay.com.au. |
soldWithin | string | No | 6m | 30d, 6m, 12m or all. |
minPrice | number | No | 0 | Skip sales below this price. 0 means no lower limit. |
maxPrice | number | No | 0 | Skip sales above this price. 0 means no upper limit. |
excludeWords | array of strings | No | empty (prefilled with two words) | Drop sold listings whose title contains any of these words or phrases. |
sellersPerKeyword | integer | No | 60 | Search depth: 1 to 500. More means more sales found but a longer run. |
searchPages | integer | No | 3 | Search depth: 1 to 10 result pages of 120 listings. |
feedbackPages | integer | No | 3 | Sales pages per seller: 1 to 20, 200 sales per page. |
concurrency | integer | No | 4 | Parallel requests, 1 to 10. Lower it if the run slows down. |
proxyConfiguration | object | No | {"useApifyProxy": false} | Optional connection settings. The default works for most runs. |
urls
Use one link per line. A search link reads that search term, a seller link reads that seller's recent sales, and a listing link looks up one listing. You can mix all three. If a search link contains a price range, it is used as minPrice and maxPrice when those fields are 0.
- โ
Good:
https://www.ebay.com/sch/i.html?_nkw=iphone+13(search) - โ
Good:
https://www.ebay.com/usr/username(seller) - โ
Good:
https://www.ebay.com/itm/123456789012(single listing) - โ Bad: a link from a site other than the eight supported eBay sites
Warning: Links that are not supported eBay links are skipped and listed in the run log. If nothing valid is left, the run stops with an input message.
keywords and excludeWords
Sold listings must contain all words of a keyword phrase, in any order. 128gb also matches 128 GB. Exclude words match whole words or phrases in the title.
- โ
Good:
iphone 13 pro max 128gb - โ Bad: one long sentence with filler words, which only matches titles containing every word
soldWithin
eBay publishes the age of a sale only as past month, past 6 months, past 12 months or older. 6m keeps sales from the past month and the past 6 months. all keeps every sale, including older ones.
Warning: Entering other values such as a number of days is rounded to the nearest bucket and noted in the run log.
maxItems
Set the number of sold listings you want. With several keywords, the limit is shared between them. Each saved result is charged, so a small number is a cheap way to test.
Warning: 0 means no limit, so the run saves every sold listing it finds and every one is charged.
includeItemDetails
Opens each listing to add end date, condition, category, shipping price, total price, item location and image. It makes the run slower.
Warning: Listings that are no longer available keep empty detail fields. The run summary notes how many.
Output
Results appear in the Output and Storage tabs of the run. View them as a table or JSON, pick the fields you need and download them in JSON, CSV, Excel, XML or HTML. The Output tab has views for sold listings, sellers and ratings, item details and listing lookups, plus tables for sellers read, price statistics and inputs without results, and a run summary.
JSON example
Sold listings for the input example above (values are made up):
[{"itemId": "123456789012","url": "https://www.example.com/itm/123456789012","title": "Apple iPhone 13 Pro Max 128GB Sierra Blue Unlocked","soldPrice": 548.9,"soldCurrency": "USD","soldWithin": "6m","soldNotBefore": "2026-04-26","sellerUsername": "example_seller","sellerPositivePercent": 99.2,"sellerFeedbackScore": 1520,"feedbackRating": "positive","verifiedPurchase": true,"keyword": "iphone 13 pro max 128gb","site": "ebay.com","scrapedAt": "2026-10-26T10:15:30.000Z"}]
Price statistics example
The price statistics table has one row per keyword and currency:
[{"keyword": "iphone 13 pro max 128gb","currency": "USD","sales": 10,"median": 540.0,"mean": 536.4,"min": 480.0,"max": 590.0}]
Listing lookup example
A single listing link (for example https://www.ebay.com/itm/123456789012) gives one row with the listing price and quantities:
{"itemId": "123456789012","url": "https://www.example.com/itm/123456789012","title": "Apple iPhone 13 Pro Max 128GB Sierra Blue Unlocked","listingState": "ended","price": 549.0,"currency": "USD","endedOn": "2026-10-01","condition": "Used","category": "Cell Phones > Smartphones","quantityAvailable": 0,"quantitySold": 1,"shippingPrice": 12.5,"shippingCurrency": "USD","totalPrice": 561.5,"location": "Example City, United States","imageUrl": "https://www.example.com/image.jpg","site": "ebay.com","scrapedAt": "2026-10-26T10:15:30.000Z"}
The run summary record (SUMMARY) holds listingsSaved, listingsBilled, inputsWithoutResults, durationSeconds, stoppedBy, priceStats, notes, site and soldWithin.
Notes and limitations
- Sale age is a bucket, not an exact date.
soldNotBeforeis the earliest possible date for the bucket. - Seller rating fields are filled for search-term runs.
- Inputs that give no result are listed in the Inputs without results table with the reason.
- If a spending limit stops the run, the listings already saved are kept.
Tips and advanced usage
How many sold listings can you scrape per run?
The number depends on how many matching sales exist inside your soldWithin window, your price and exclude filters, and the depth settings sellersPerKeyword, searchPages and feedbackPages. The default maxItems is 10. The best way to know the result size for your search is a quick test run.
How to get faster or cheaper results
- Keep
maxItemssmall while you test. Every saved result is charged. - Leave
includeItemDetailsoff unless you need condition, category or shipping. - Narrow
soldWithinand addminPrice,maxPriceorexcludeWordsto skip sales you do not need. - Raise
sellersPerKeyword,searchPagesorfeedbackPagesonly when a search returns too few sales. Higher values make the run longer. - Lower
concurrencyif eBay slows the run down.
Known issues
- If eBay limits requests, the run can pause for a short time. If it keeps happening, the run stops and keeps the results saved so far. Try again later.
- If eBay changes its pages, a run can return incomplete results. Open an issue in the Issues tab if it persists.
Integrations and API
Can I use eBay Sold Listings Scraper as an API?
Yes. The Apify API lets you start runs, schedule them and fetch eBay sold listings data programmatically. Use the apify-client package for Node.js or Python. The API tab has ready-to-use code.
How to scrape eBay sold listings with Python
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("data_minds/ebay-sold-listings-scraper").call(run_input={"urls": ["https://www.ebay.com/sch/i.html?_nkw=iphone+13+pro+max+128gb"],"keywords": [],"maxItems": 10,"excludeWords": ["cracked", "for parts"],"proxyConfiguration": {"useApifyProxy": False},})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
Can I integrate eBay Sold Listings Scraper with other apps?
Yes. Connect it to Make, Zapier, Google Sheets, Slack and other tools through Apify integrations. Use webhooks to trigger an action when a run finishes, and schedules to repeat the run daily or weekly for price monitoring.
Can I use eBay Sold Listings Scraper with AI agents (MCP)?
Yes. Connect the Actor to Claude and other MCP clients through the Apify MCP server. Open the MCP tab for setup steps.
Other eBay scrapers
Looking at another marketplace or at reputation data? These data_minds scrapers complement your price research.
| Scraper | What it does |
|---|---|
| ๐ Whop Marketplace Data Scraper | Turns Whop search, category or listing links into marketplace data such as pricing, plans, company profiles and reviews |
| โญ Trustpilot Reviews Scraper | Extracts customer reviews, ratings, company replies and company data from Trustpilot business pages in bulk |
| ๐ Amazon Best Seller Scraper | Scrape Amazon Best Sellers, New Releases, Movers & Shakers, Most Wished For and Gift Ideas for any category on any marketplace. |
FAQ
Is it legal to scrape eBay sold listings?
Web scraping is generally legal when you collect publicly available data, but you should respect personal data rules, intellectual property and the site's terms. This is not legal advice. Read the Apify guide on web scraping legality and ask a lawyer if your use case is unclear.
How does eBay Sold Listings Scraper work?
You give it eBay links or keywords, choose an eBay site and filters, and click Start. It collects the matching sold listings, saves each one to your dataset as soon as it is ready, and adds a price statistics table. Item details are added only if you switch them on.
Why scrape eBay sold listings?
Sold listings answer what did it sell for on eBay, so they support price research, resale price comps, competitor price analysis and market research. Resellers use them to decide what to buy and how to price, and teams use scheduled runs to watch how prices move over time.
How do I see sold items on eBay in bulk?
On eBay you can use the sold items filter for one search at a time. To get many searches, sellers and listings in one table, paste the links into this Actor and export the dataset. Each row shows the sold price, currency, sale age bucket and seller.
Can I export eBay sold listings to CSV or Excel?
Yes. Every run saves its results to a dataset that you can download as JSON, CSV, Excel, XML or HTML from the Output or Storage tab. You can also pick only the fields you need before downloading, or fetch the same data through the Apify API.
How far back do eBay sold listings go?
The soldWithin field lets you choose the past month, past 6 months, past 12 months or any time. eBay shows the age of a sale only as one of these buckets, so each row has a soldWithin value and a soldNotBefore date, not an exact sale date.
Do I need an eBay login or cookies?
No. You do not need an eBay account, login or cookies to run this Actor. You only need an Apify account and your eBay links or keywords. The Actor returns the sold listing data that eBay shows publicly for those searches, sellers and listings.
Why am I getting fewer results than expected?
Check these settings: maxItems may be low, soldWithin may be too short, minPrice, maxPrice or excludeWords may remove sales, and a keyword may be too specific. Raise the search depth with sellersPerKeyword, searchPages or feedbackPages, then check the Inputs without results table.
What should I do if the scraper is not working?
First read the last lines of the run log, which explain most input problems in plain words. Check that your links are supported eBay links. If the run still fails, open an issue in the Issues tab with the run link and your input so we can look into it.
Support and feedback
Found a bug or have a feature request? Create an issue in the Issues tab.
Need a custom solution or more data? Contact hello.dataminds@gmail.com.
Built and maintained by the data_minds team on Apify.
This Actor is an independent tool and is not affiliated with, endorsed by or sponsored by eBay. Collect only data you are allowed to use and follow eBay's terms and applicable laws.