eBay hosts over 1.7 billion listings across every product category imaginable. For e-commerce researchers, price monitors, resellers, and market intelligence teams, eBay is one of the richest sources of real-world pricing data available. What something sells for on eBay — especially in completed auctions — is among the most reliable indicators of true market value for secondhand goods.
eBay’s official Finding API is rate-limited, requires developer registration, and returns limited fields. Getting full listing data including seller feedback, bid histories, condition notes, and shipping details at scale requires a different approach.
eBay uses aggressive bot detection on search results pages, changes its page structure regularly, and serves different content based on geolocation and login state. The Finding API does not return completed/sold listing prices, which are often the most valuable data point for researchers.
The sold listings problem: eBay’s most valuable data — what items actually sold for at auction — is only accessible to logged-in users. Extracting this data programmatically requires maintaining authenticated sessions, managing cookies across requests, and handling eBay’s CAPTCHA challenges.
Pagination across large search result sets (thousands of listings) also requires careful handling of eBay’s URL parameter structure and sort ordering to avoid missing items or duplicating results.
We built and maintain an eBay Scraper on Apify that handles authentication, pagination, and data normalization. You provide search queries or listing URLs; it returns structured JSON.
{
"searchQuery": "vintage mechanical keyboard",
"maxResults": 200,
"condition": "used",
"includeCompleted": false
}
{
"title": "IBM Model M Mechanical Keyboard 1989 - Fully Refurbished",
"price": 89.99,
"currency": "USD",
"condition": "Used",
"bids": 0,
"buyItNowPrice": 89.99,
"seller": "vintage_keyboards_uk",
"sellerFeedback": 2841,
"sellerRating": 99.8,
"shippingCost": 14.99,
"itemUrl": "https://www.ebay.com/itm/1234567890",
"location": "London, United Kingdom",
"endTime": "2026-05-01T18:00:00Z",
"imageUrl": "https://i.ebayimg.com/images/g/..."
}
| Field | Type | Description |
|---|---|---|
title | string | Full listing title |
price | number | Current price or winning bid |
condition | string | New / Used / Refurbished / etc. |
bids | integer | Number of bids (auction listings) |
seller | string | Seller username |
sellerFeedback | integer | Total seller feedback count |
sellerRating | number | Positive feedback percentage |
shippingCost | number | Shipping cost (null if free) |
itemUrl | string | Direct eBay listing URL |
endTime | string | Auction end or listing expiry |
Output is available as JSON, CSV, or XLSX. Runs can be scheduled for daily price monitoring across product categories.
The actor uses Pay Per Event pricing at $0.003 per listing.
| Volume | Cost |
|---|---|
| 500 listings | $1.50 |
| 1,000 listings | $3.00 |
| Daily monitor (200 items) × 30 days | $18/month |
Apify has a free tier for testing. Sign up here if you do not have an account.