eBay Product & Sold Scraper avatar

eBay Product & Sold Scraper

Pricing

Pay per usage

Go to Apify Store
eBay Product & Sold Scraper

eBay Product & Sold Scraper

Scrape eBay search results, listing details, and SOLD/completed listing history. Built-in price-band partitioning to break past the 10-page (600-result) cap. Confirmed sold prices, not asking prices.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Crikit

Crikit

Maintained by Community

Actor stats

0

Bookmarked

65

Total users

21

Monthly active users

7 hours ago

Last modified

Share

Scrape eBay listings and sold prices. This eBay scraper covers active search results, full listing detail, and — most importantly — SOLD and completed listing history with confirmed sale prices rather than asking prices. Built-in price-band partitioning breaks past eBay's 10-page, 600-result ceiling.

No eBay API key, no login, and no headless browser. Results land in a structured dataset you can export to JSON, CSV, Excel, or XML, or pull straight from the Apify API.

What is eBay Product & Sold Scraper?

eBay Product & Sold Scraper is an Apify Actor that extracts search results, listing details, and sold history from eBay and returns them as clean, structured records. Sold data is what makes eBay valuable for pricing. An asking price tells you what a seller hopes for; a sold price tells you what the market actually paid, and that is the number resale and arbitrage decisions need.

What data can this eBay scraper extract?

Every run writes one row per listing. The full schema carries 28 fields; the most-used ones are below.

FieldTypeDescription
listingIdstringeBay's numeric listing identifier (data-listingid). 12 digits for single listings; 15 digits for variation groups.
titlestringListing title as displayed in search results or detail.
itemUrlstringCanonical eBay item URL (https://www.ebay.com/itm/
imageUrlstringFull-resolution primary image (i.ebayimg.com s-l1600.webp variant).
epidstringCanonical product taxonomy ID. Listings of the same SKU share an EPID.
pricenumberNumeric USD price. For variations: the lower bound. For 'Best offer accepted' sold listings: null (eBay hides this).
priceTextstringRaw price string as shown on eBay, including range / approximation / 'Best offer accepted' / foreign-currency markers.
priceCurrencystringISO 4217 code of the native listing currency.
priceUsdApproxnumbereBay's USD approximation for foreign-currency listings.
finalPriceHiddenbooleanTrue for sold listings where eBay shows 'Best offer accepted' instead of the numeric sold price.
shippingTextstringShipping cost or 'Free shipping' as displayed.
soldDatestringISO date the listing sold (sold listings only).
soldDateTextstringRaw 'Sold MMM DD, YYYY' string from the SRP card.
isSoldbooleanTrue if this listing is sold/completed.
isNewListingbooleanTrue if eBay tagged this 'New Listing' (posted in the last 24 hrs).
conditionstringItem condition (New, Pre-Owned, Refurbished, etc.).
subtitlestringCard subtitle line (typically combines condition and a carrier/variant note).
bidCountintegerNumber of bids (auctions only).
listingTypestringAUCTION / FIXED_PRICE / BEST_OFFER inferred from the card or detail page.
sellerobjectSeller summary parsed from the SRP card.
searchQuerystringThe input query that produced this result.
searchUrlstringThe eBay SRP URL where this listing was found.

See the Output tab in Apify Console for all 28 fields.

How to scrape eBay listings and sold prices

  1. Open eBay Product & Sold Scraper and click Try for free.
  2. Add searchQueries, or paste specific itemUrls.
  3. Set mode to choose active listings or sold and completed history.
  4. Filter with condition, listingType, priceMin, priceMax, and sortBy.
  5. Turn on scrapeItemDetails for the full per-listing record, and set maxResultsPerQuery.
  6. Click Start and watch rows appear live in the Output tab.
  7. Export the dataset as JSON, CSV, Excel, or XML — or fetch it from the Apify API once the run finishes.

eBay Product & Sold Scraper input options

InputTypeWhat it doesDefault
searchQueriesarrayKeyword searches to run. Each query runs independently. Quotes and minus signs work the same as in the eBay search box.["iphone 15 pro"]
itemUrlsarrayDirect eBay item URLs (https://www.ebay.com/itm/) to scrape detail-only, skipping search. Works for active or ended...
modestringWhat kind of listings to return. eBay now requires a signed-in account to view sold and completed listings, so..."active"
maxResultsPerQueryintegerHard cap per query. The eBay SRP itself caps at 600 results per query (10 pages × 60); to exceed, the actor...60
scrapeItemDetailsbooleanIf true, fetch each search hit's detail page for extra fields (condition description, item specifics, shipping,...false
conditionstringFilter by item condition."any"
listingTypestringFilter by auction or Buy It Now."any"
priceMinintegerLower price bound.
priceMaxintegerUpper price bound.
sortBystringSort order applied to the eBay search results page."recently_ended"

Proxy is configured through the standard proxyConfiguration object; the defaults shipped with this Actor are already tuned for the target site.

Example output

{
"listingId": "a1b2c3d4",
"title": "Example title",
"itemUrl": "https://example.com/item/12345",
"imageUrl": "https://example.com/item/12345",
"epid": "a1b2c3d4",
"price": 129.99,
"priceText": "Example text ...",
"priceCurrency": "USD",
"priceUsdApprox": 129.99,
"finalPriceHidden": true,
"shippingText": "Example text ...",
"soldDate": "2026-08-30T12:00:00.000Z",
"soldDateText": "2026-08-30T12:00:00.000Z",
"isSold": false,
"isNewListing": true,
"condition": "...",
"subtitle": "Example title",
"bidCount": 1483
}

How much does it cost to scrape eBay?

This Actor bills through Apify platform usage (compute units and proxy traffic) rather than a per-result fee. Runs are HTTP-based and lightweight, which keeps compute low. Every Apify account includes free monthly usage credit to trial it.

What can you build with eBay data?

Price resale inventory from real sold comps

Sold prices with dates are the ground truth for what an item is worth today, which is exactly what asking-price data cannot tell you.

Run retail-arbitrage sourcing

Compare eBay sold prices against retail prices from the Walmart, Target, or Best Buy Actors to find items with a genuine spread.

Track sell-through rate for a product category

Active listing counts against sold counts over the same window gives the sell-through ratio that drives inventory decisions.

Build a price guide for collectibles

Condition, sold date, and final price across many sales produce a defensible price guide for graded or collectible goods.

Monitor competitor sellers

Seller fields let you follow what specific sellers list, at what price, and what actually clears.

eBay scraping tips and limits

  • eBay caps a single search at roughly 600 results across 10 pages. This Actor partitions by price band to get past that — leave the partitioning in place on broad queries.
  • isSold and soldDate are the fields that matter for comps. Filter on them rather than assuming a sold-mode run contains only sold rows.
  • finalPriceHidden marks best-offer sales where eBay withholds the accepted amount. Exclude those rows from price averages or they will drag the mean down.
  • Narrow queries beat broad ones. 'iPhone 15 Pro 256GB unlocked' produces far more usable comps than 'iPhone'.

Integrations and automation

Run eBay Product & Sold Scraper on a schedule to keep a eBay dataset fresh, or trigger it from your own stack through the Apify API and the official JavaScript and Python clients. Native integrations push results into Google Sheets, Slack, Airtable, Zapier, Make, GitHub, or any webhook endpoint. The Actor also works as an MCP tool, so an AI agent can call it directly.

ActorWhat it does
Poshmark Listings & Sold Comps ScraperFashion resale comps with sold prices and dates.
Amazon Product ScraperAmazon retail pricing to compare against eBay resale.
Walmart Product ScraperWalmart retail prices for arbitrage sourcing.
Etsy Scraper - Listings, Shops & Search ResultsHandmade and vintage listings and shop data.

Frequently asked questions

Can I scrape eBay sold listings?

Yes, and it is the main reason to use this Actor. Set mode to sold or completed and rows come back with the confirmed final price and the sold date.

How do I get more than 600 results?

Price-band partitioning splits a broad query into narrower price ranges, each of which gets its own result budget. That is how the Actor exceeds eBay's per-search ceiling.

Do I need a eBay API key?

No. eBay Product & Sold Scraper reads publicly available eBay pages and endpoints directly, so there is no key to obtain, no OAuth app to register, and no account to connect.

Can I export eBay data to CSV, Excel, or Google Sheets?

Yes. Every run stores results in an Apify dataset that exports to JSON, JSONL, CSV, Excel, XML, or HTML with one click, and the Google Sheets integration writes rows straight into a spreadsheet.

Can I run eBay Product & Sold Scraper on a schedule?

Yes. Apify schedules run the Actor hourly, daily, weekly, or on any cron expression, and webhooks can notify your systems the moment a run finishes.

Scraping publicly available data is broadly lawful in the US and EU, but the answer depends on what you collect and how you use it. This Actor is built to gather public listing and completed-sale information eBay publishes publicly, including seller usernames. Personal data carries extra obligations under GDPR and CCPA. Read Apify's guide on whether web scraping is legal and take your own legal advice for your use case.

Support and feedback

Found a bug, a missing field, or a eBay page shape this Actor does not handle yet? Open an issue from the Issues tab on the Actor page. Feature requests and custom-scraper enquiries are welcome there too.