eBay Sold Listings Scraper avatar

eBay Sold Listings Scraper

Pricing

from $2.50 / 1,000 results

Go to Apify Store
eBay Sold Listings Scraper

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

Data Minds

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

9 days ago

Last modified

Categories

Security

Limited permissions

Share

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 your excludeWords.
  • ๐Ÿ“Š 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.

FieldWhat it containsWhen it appears
๐Ÿ”– itemIdeBay item number of the listingAlways
๐Ÿ”— urlLink to the eBay listing pageAlways
๐Ÿ“ titleListing title as shown at the time of the saleAlways
๐Ÿ’ต soldPricePrice the buyer paidSold listings
๐Ÿ’ฑ soldCurrencyISO currency code of the sold priceSold listings
๐Ÿ“… soldWithinThe eBay sold date as an age bucket: 30d, 6m, 12m or 12m+Sold listings
๐Ÿ“† soldNotBeforeEarliest possible sale date for the age bucketSold listings, empty for 12m+
๐Ÿช sellerUsernameeBay username of the sellerSold listings
๐Ÿ“ˆ sellerPositivePercentPositive rating share of the sellerSearch-term runs
๐Ÿ… sellerFeedbackScoreRating score of the sellerSearch-term runs
โญ feedbackRatingRating left for the saleSold listings
โœ… verifiedPurchaseTrue when eBay marks the rating as a verified purchaseSold listings
๐Ÿ” keywordSearch term that matched the saleWhen keywords are used
๐ŸŒ siteeBay site the row belongs toAlways
โฐ scrapedAtUTC time the row was collectedAlways
๐Ÿ endedOn, listingStateExact end date and ended or active stateItem details and listing lookups
๐Ÿงฐ condition, categoryItem condition and category pathItem details and listing lookups
๐Ÿšš shippingPrice, shippingCurrency, totalPriceShipping cost, its currency, and sold price plus shipping when both use the same currencyItem details and listing lookups
๐Ÿ“ location, imageUrlWhere the item ships from and the main imageItem details and listing lookups
๐Ÿ›’ price, currency, quantityAvailable, quantitySoldPrice shown on the listing, its currency and quantitiesListing lookups only

Extra tables next to the sold listings:

TableFields
๐Ÿ“Š Price statisticskeyword, currency, sales, median, mean, min, max
๐Ÿง‘ Sellers readsellerUsername, keyword, positivePercent, feedbackScore, salesRead, salesSaved, status, error
๐Ÿ“‹ Inputs without resultsinput, error

Note: Seller fields (sellerPositivePercent, sellerFeedbackScore) are filled for search-term runs. keyword appears 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 soldWithin and soldNotBefore instead.
  • 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.

  1. Create a free Apify account using your email.
  2. Open eBay Sold Listings Scraper.
  3. Paste your eBay search, seller or listing links into urls (or add phrases to keywords).
  4. Choose ebaySite, soldWithin and optional price filters, and set maxItems to the number of sold listings you want.
  5. Click Start and watch the sold listings appear in the Output tab.
  6. 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:

PlanPrice per resultPrice 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.

FieldTypeRequiredDefaultDescription
urlsarray of stringsYesprefilled search linkeBay search, seller or listing links. Plain keywords are accepted too.
keywordsarray of stringsNoemptyExtra search phrases. Sold listings must contain all words of a phrase.
maxItemsintegerNo10Stop after this many sold listings in total. 0 means no limit.
includeItemDetailsbooleanNofalseAdd end date, condition, category, shipping, total price, location and image.
ebaySitestringNosite of your links, otherwise ebay.comOne of ebay.com, ebay.co.uk, ebay.de, ebay.fr, ebay.it, ebay.es, ebay.ca, ebay.com.au.
soldWithinstringNo6m30d, 6m, 12m or all.
minPricenumberNo0Skip sales below this price. 0 means no lower limit.
maxPricenumberNo0Skip sales above this price. 0 means no upper limit.
excludeWordsarray of stringsNoempty (prefilled with two words)Drop sold listings whose title contains any of these words or phrases.
sellersPerKeywordintegerNo60Search depth: 1 to 500. More means more sales found but a longer run.
searchPagesintegerNo3Search depth: 1 to 10 result pages of 120 listings.
feedbackPagesintegerNo3Sales pages per seller: 1 to 20, 200 sales per page.
concurrencyintegerNo4Parallel requests, 1 to 10. Lower it if the run slows down.
proxyConfigurationobjectNo{"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. soldNotBefore is 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 maxItems small while you test. Every saved result is charged.
  • Leave includeItemDetails off unless you need condition, category or shipping.
  • Narrow soldWithin and add minPrice, maxPrice or excludeWords to skip sales you do not need.
  • Raise sellersPerKeyword, searchPages or feedbackPages only when a search returns too few sales. Higher values make the run longer.
  • Lower concurrency if 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 ApifyClient
client = 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.

ScraperWhat it does
๐Ÿ› Whop Marketplace Data ScraperTurns Whop search, category or listing links into marketplace data such as pricing, plans, company profiles and reviews
โญ Trustpilot Reviews ScraperExtracts customer reviews, ratings, company replies and company data from Trustpilot business pages in bulk
๐Ÿ”— Amazon Best Seller ScraperScrape Amazon Best Sellers, New Releases, Movers & Shakers, Most Wished For and Gift Ideas for any category on any marketplace.

FAQ

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.