Best Buy
Best Buy Search API
Search bestbuy.com (US) products, 18 organic products per page, sorted by best match, best selling, best discount, price, rating or newest, and filtered by brand, on sale, clearance, open box or a price range. Each product has SKU, BSIN, name, brand, model number, URL, image, price, regular price, savings in dollars and percent, on-sale flag, deal badge and deal end time, condition, rating, review count, seller type (Best Buy or marketplace), product type, badges and release date. Also returns the total result count and page count, the category Best Buy matched, the filter sidebar with a product count per value, the sort options, related searches and any spelling correction. Sponsored tiles are left out unless include_sponsored. Costs 2 credits 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/jsonquerystringrequiredSearch keywords, 1-200 characters.
Example: tv
pageintegerResults page, 1-based, up to 100. Defaults to 1. 18 products per page.
Example: 1
sortstringbest_match (default), best_selling, best_discount, price_low, price_high, rating or newest.
filters.brandstringOnly this brand, spelled as in the Brand filter (a value of the brand_facet facet), 1-100 characters.
Example: Samsung
filters.on_salebooleanOnly products on sale.
filters.clearancebooleanOnly clearance products.
filters.open_boxbooleanOnly products with an open-box offer.
filters.min_pricenumberLowest price in dollars. Pass it with max_price: one without the other is a 400.
Example: 300
filters.max_pricenumberHighest price in dollars, above min_price. Pass it with min_price.
Example: 500
include_sponsoredbooleanInclude the sponsored tiles Best Buy mixes into the grid, flagged sponsored: true with position null. Defaults to false: organic products only.
Request
from scavio import ScavioClient
client = ScavioClient(api_key="sk_live_your_key")
res = client.best_buy.search(query="tv", sort="best_discount", filters={"brand": "Samsung"})["data"]
print(res["total_results"], "results over", res["total_pages"], "pages")
for p in res["products"]:
print(p["sku"], p["name"], p["price"], p["regular_price"], p["savings_percent"], p["badge"])Response