ebaysoldlistingsDOCS

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.

GET/scrapecost 1 request
curl "https://api.ebaysoldlistingsapi.com/scrape?keyword=steam+deck+oled&ebaySite=ebay.co.uk&itemCondition=used" \
  -H "Authorization: Bearer YOUR_API_KEY"

Parameters

keywordstringrequired

The search term, exactly as you would type it on eBay, up to 300 characters. URL-encode spaces.

ebaySitestring

Marketplace to search. Defaults to ebay.com. See Marketplaces.

countinteger

Number of results, 1 to 240. Defaults to 240.

pageinteger

Page of results, 1 to 100, for paging beyond the first response.

soldboolean

Defaults to true (completed sales). Set to false to return current active listings.

bestOfferPriceboolean

Set 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.

sortOrderstring

One of endedRecently, timeNewlyListed, pricePlusPostageLowest, pricePlusPostageHighest, distanceNearest.

itemConditionstring

Filter by condition: any, new or used. For a precise eBay condition, pass conditionId.

buyingFormatstring

all, auction, buyItNow or acceptsOffers.

minPrice / maxPricenumber

Restrict results to a price band, in the marketplace currency.

soldAfter / soldBeforedate

Restrict completed sales to a date range, format YYYY-MM-DD.

itemLocationstring

default, domestic or worldwide.

categoryIdstring

Restrict to an eBay category by numeric id.

relevanceboolean

Defaults 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.

exactMatchboolean

Defaults 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.

formatstring

json (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.

On this page