Best Buy
Best Buy Category API
Browse a bestbuy.com (US) category or deals page by category id or URL, 18 products per page, sorted by best selling, best discount, price, rating or newest, with the same filters as search (brand, on sale, clearance, open box, price range). Works on catalogue categories such as abcat0101001 (All Flat-Screen TVs) and on merchandised pages such as pcmcat1674241939957 (All Electronics on Sale), whose built-in filters are read from the page. Each product has the same fields as search, plus the total result count and page count, applied sort and filters, the filter sidebar with product counts, sort options and related searches. An unknown category, or a page without a product grid, is a 404. Costs 2 credits for an abcat id and 3 for a pcmcat page.
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/jsoncategory_idstringBest Buy category id: abcat... (catalogue categories, e.g. abcat0101001 All Flat-Screen TVs) or pcmcat... (merchandised pages, e.g. pcmcat1674241939957 All Electronics on Sale). Pass category_id or url.
Example: abcat0101001
urlstringA bestbuy.com category page URL (.../<id>.c?id=<id>). Filters in the URL (qp=...) are kept; its sort is not, use sort.
Example: https://www.bestbuy.com/site/tvs/all-flat-screen-tvs/abcat0101001.c?id=abcat0101001
pageintegerResults page, 1-based, up to 100. Defaults to 1. 18 products per page.
Example: 1
sortstringbest_selling (the default on most pages), best_discount, price_low, price_high, rating or newest. Category listings have no best_match.
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")
# Laptops on clearance, biggest savings first - 2 credits
res = client.best_buy.category(
category_id="abcat0502000", sort="best_discount", filters={"clearance": True}
)["data"]
for p in res["products"]:
print(p["sku"], p["name"], p["price"], p["regular_price"], p["savings_percent"])Response