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

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Programmatic access to eBay search results, listing details, and the sold/completed listings dataset — the same data Terapeak charges for, exported as clean JSON / CSV for reseller arbitrage, sold-comp research, repricing engines, and market analytics.

What this actor returns

Confirmed sold prices, not asking prices. Every listing returned by an eBay sold search is structured as:

  • listingId, title, itemUrl, imageUrl (1600 px)
  • price (USD numeric), priceText, priceCurrency, priceUsdApprox
  • soldDate (ISO), isSold, finalPriceHidden (for "Best offer accepted")
  • condition, subtitle, bidCount, listingType
  • shippingText, epid, seller (name + feedback count + feedback %)
  • searchQuery, searchUrl, searchRank, scrapedAt
  • Optional detail block when scrapeItemDetails is enabled (item specifics, watchers, full photo list, shipping/returns/location, breadcrumb)

How to use it

Two input modes:

  1. Search mode — pass searchQueries (a list of keyword queries). Each query runs through eBay's search results pages and the actor extracts every listing.
  2. Detail-only mode — pass itemUrls (a list of eBay /itm/<id> URLs). The actor pulls each item detail page directly.

Both modes can be combined in a single run.

Sold-only example

{
"searchQueries": ["pokemon charizard psa 10", "iphone 15 pro 256gb"],
"mode": "sold",
"maxResultsPerQuery": 200,
"sortBy": "recently_ended",
"scrapeItemDetails": false,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "US"
}
}

Cross-listing comp research with details

{
"searchQueries": ["air jordan 1 chicago 1985"],
"mode": "both",
"maxResultsPerQuery": 600,
"scrapeItemDetails": true,
"condition": "used"
}

Pricing

Pay per result. $0.003 per listing ($3 per 1,000 results). Flat fee, no tiers. Apify subscription discounts apply automatically.

Detail-only mode (itemUrls) is the same per-result price even though it costs more compute, because each detail record packs roughly 4–6x the data of a search hit.

Coverage and limits

  • eBay caps search at 600 results per query (10 pages × 60). This actor automatically partitions queries by price band when you ask for more than 600, so a single searchQueries entry can yield 1000+ unique listings.
  • "Best offer accepted" sold prices are hidden by eBay for non-buyers (about 3% of sold listings). The actor flags these with finalPriceHidden: true and leaves price null. There is no public way to recover the accepted offer amount.
  • Per-sale history for multi-quantity listings is not exposed by eBay's public surfaces. The actor reports the most-recent sale price plus the total quantitySold.

How it works under the hood

eBay protects its surface with Akamai Bot Manager and JA3 / JA4 TLS fingerprinting. This actor uses curl_cffi with rotating browser impersonation profiles (chrome131, chrome124, safari17_0), warms each session with an eBay homepage GET to seed the Akamai bot-management cookies, and routes traffic through Apify's residential US proxy. Datacenter IPs do not work against eBay's SRP and detail endpoints.

Output format

Every record is pushed to the run's default dataset. Export as JSON, CSV, XLSX, or HTML. The dataset Overview view in the Apify Console shows the highest-value fields in a sortable table.

Use cases

  • Reseller arbitrage — find products selling well above your buy-side cost.
  • Sold-comp research — pricing for collectibles, sneakers, trading cards, vintage electronics.
  • Repricing — feed sold-price medians into automated repricer pipelines.
  • Market velocity — group listings by EPID to measure sell-through speed for a SKU.
  • Listing optimization — pull top-selling competitor titles and item specifics for a product you're listing.

FAQ

Q. How is this different from eBay's Browse API? The Browse API only exposes currently active listings, requires OAuth, and is capped at 5,000 calls per day on the free tier. This actor covers sold + completed listings (the high-value dataset) without OAuth, with no daily cap.

Q. Does it work for non-US eBay marketplaces? This release covers ebay.com. International marketplaces (ebay.co.uk, ebay.de, etc.) are on the roadmap.

Q. Is it safe / compliant? The actor only reads pages that any eBay user can view in a browser. No login, no cookies pasted by the customer, no scraping behind authenticated walls.

Support

Open an issue from the Apify Console actor page.