Sold search
GET /scrape returns up to 240 completed eBay sales for a keyword on one marketplace, with filters for condition, price, dates and format.
The core endpoint. Returns completed sales for a keyword on one marketplace.
/scrapecost 1 requestcurl "https://api.ebaysoldlistingsapi.com/scrape?keyword=steam+deck+oled&ebaySite=ebay.co.uk&itemCondition=used" \
-H "Authorization: Bearer YOUR_API_KEY"Parameters
keywordstringrequiredThe search term, exactly as you would type it on eBay, up to 300 characters. URL-encode spaces.
ebaySitestringMarketplace to search. Defaults to ebay.com. See Marketplaces.
countintegerNumber of results, 1 to 240. Defaults to 240.
pageintegerPage of results, 1 to 100, for paging beyond the first response.
soldbooleanDefaults to true (completed sales). Set to false to return current active listings.
bestOfferPricebooleanSet to true to get the price the buyer actually paid on sales that closed through an accepted Best Offer, in
acceptedOfferPrice. No extra cost: the search is still one request. See Best Offer prices.
sortOrderstringOne of endedRecently, timeNewlyListed, pricePlusPostageLowest, pricePlusPostageHighest, distanceNearest.
itemConditionstringFilter by condition: any, new or used. For a precise eBay condition, pass conditionId.
buyingFormatstringall, auction, buyItNow or acceptsOffers.
minPrice / maxPricenumberRestrict results to a price band, in the marketplace currency.
soldAfter / soldBeforedateRestrict completed sales to a date range, format YYYY-MM-DD.
itemLocationstringdefault, domestic or worldwide.
categoryIdstringRestrict to an eBay category by numeric id.
relevancebooleanDefaults to true: results that do not match your search (accessories, lots, other models or grades) are removed.
Set to false to receive eBay's sold results exactly as listed, with no filtering.
exactMatchbooleanDefaults to false. Set to true to drop eBay's "results matching fewer words" section. Leave it off for long,
specific searches (full card numbers like 303/466, full set names): eBay often has no exact matches for those, so
true can return no results even when the item sold many times. Most useful with relevance=false when you do your
own matching.
formatstringjson (default) or csv. CSV returns one row per listing as a downloadable file. See CSV export.
Narrow searches and graded cards
count sets how many eBay sold results are checked, and results that do not match your search are then removed. For
broad searches you get close to count results. For narrow searches, such as a specific card and grade ("1979 Topps
Ozzie Smith PSA 8") or an exact model, eBay mixes in many other grades and models, so only some of the checked results
are matches. Keep count=240 (the default and maximum), request page=2 to check the next 240 results, or add
relevance=false to see everything exactly as eBay lists it. Avoid exactMatch=true on these long searches, since it
can remove every result.
Getting more results
Most empty or short answers come from the keyword. eBay matches every word you send, so a whole listing title, or extra words like a color, a seller note or a location, often matches very little. Start with brand plus model, or card name plus set and number, and add words only if the results are too broad.
Paging
The response includes hasNextPage. While it is true, request page=2, page=3 and so on. When you also filter by
date (soldAfter), later pages can come back empty once the window runs out: that is normal, and an empty page still
counts as one request.