eBay
eBay Search API
Search live eBay listings and get back price, condition, bids, shipping, location, seller and feedback as JSON. Send query, seller, or both: a seller with no keyword pages that seller's entire catalogue. Costs 1 credit per request.
Authorizations
AuthorizationstringheaderrequiredBearer authentication header of the form Bearer <token>, where <token> is your Scavio API key (e.g. Bearer sk_live_your_key).
Body
application/jsonquerystringKeyword to search, 1-500 characters. Optional only because a seller-only search is valid; one of query or seller must be present.
Example: wireless headphones
sellerstringRestrict results to one seller's listings, 1-64 characters, as in ebay.com/usr/<name>. Can be sent with no query at all - this, not the seller endpoint, is how you enumerate a seller's inventory.
Example: belkin-official-store
pageintegerResults page, 1-based. Minimum 1.
sort_byenum<string>default:best_matchResult sort order. eBay's 'Distance: nearest first' is deliberately unsupported: it would not rank by the caller's location.
best_match— eBay's default relevance ranking.ending_soonest— Auctions closing first.newly_listed— Most recently listed first.price_low— Price + shipping, lowest first.price_high— Price + shipping, highest first.
min_pricenumberMinimum price, inclusive. Must be 0 or greater.
max_pricenumberMaximum price, inclusive. Must be 0 or greater.
conditionenum<string>Item condition filter.
new— Brand new.open_box— New, opened packaging.refurbished— eBay's parent refurbished condition, not one of its three graded tiers (excellent / very good / good).used— Pre-owned.for_parts— For parts or not working.
buying_formatenum<string>Listing format filter.
auction— Auction listings.buy_it_now— Fixed-price listings.best_offer— Fixed price accepting offers.
free_shippingbooleanOnly listings with free shipping.
soldbooleanCurrently unavailable: eBay now requires a signed-in account to view completed and sold listings, so sold=true returns an unbilled 400. Leave it out.
Example: false
category_idstringeBay category id. Must be numeric; a non-numeric value is rejected with a 400. An unrecognised numeric id is NOT an error - eBay returns the unfiltered set under a 200.
Example: 112529
per_pageenum<integer>default:60Listings per page. eBay accepts only 60, 120 or 240 and silently falls back to 60 for anything else, so treat it as a closed set.
60— Default page size.120— Double page.240— Maximum page.
Request
from scavio import ScavioClient
client = ScavioClient(api_key="sk_live_your_key")
# Live listings for a keyword
results = client.ebay.search(query="wireless headphones")
print(results)Response