Best Buy Product Scraper
Pricing
from $2.00 / 1,000 results
Best Buy Product Scraper
Scrape Best Buy products by keyword: name, brand, SKU, current and regular price, savings, rating, review count, condition, seller type, image and product URL, with optional full product details. Clean JSON for price monitoring. Pay only for the results you get.
Pricing
from $2.00 / 1,000 results
Rating
0.0
(0)
Developer
axly
Maintained by CommunityActor stats
0
Bookmarked
38
Total users
7
Monthly active users
10 days ago
Last modified
Categories
Share
Extract structured product data from Best Buy (bestbuy.com) by keyword: product name, brand, SKU, current and regular price, savings, star rating, review count, condition, seller type, product category, image and product URL. Clean JSON, ready for Google Sheets, BI tools or your database.
The actor talks to Best Buy's own product search API instead of rendering pages, so runs are fast and need no browser and no proxy setup.
Who it's for
- Price & deal monitoring: track current vs. regular price and savings on electronics, appliances and gaming, and catch price drops on a schedule.
- Competitive pricing: retailers and brands benchmarking their prices and ratings against Best Buy.
- Market & assortment research: see which brands, products and categories Best Buy surfaces for a search term, and how they're rated.
- Developers: a stable JSON schema for price trackers, comparison sites and shopping assistants.
What you get
Every row is one Best Buy product from the search results.
| Field | Type | Description |
|---|---|---|
skuId | string | Best Buy SKU ID |
bsin | string | Best Buy product identifier used in product URLs |
name | string | Product name |
brand | string | Brand |
url | string | Product page URL |
image | string | Main product image URL |
price | number | Current customer price, USD |
regularPrice | number | Regular (non-sale) price, USD |
savings | number | Discount vs. regular price, USD |
savingsPercent | number | Discount vs. regular price, % |
rating | number | Average customer rating (0–5) |
reviewCount | number | Number of customer reviews |
condition | string | Product condition (defaults to new) |
whatItIs | string[] | Best Buy product type labels, e.g. ["Headphones", "Wireless Headphones"] |
sellerType | string | Seller classification (1P = sold by Best Buy) |
displayStatus | string | Listing status on bestbuy.com, e.g. active |
isNew | boolean | Best Buy's "new" product flag |
searchQuery | string | The search term that returned this product |
With Fetch Product Details on (the default), the actor also looks up each SKU individually and uses that product page's price, regular price and savings, which are the most precise values Best Buy returns.
High-value use cases
- Daily price-drop alerts: schedule a run for "OLED TV" or "RTX 4070" and alert when
savingsPercentcrosses your threshold. - Price-history dataset: append each scheduled run to a sheet or warehouse to chart prices per SKU over time.
- Competitor price matching: compare your catalog against Best Buy's current
pricefor the same products. - Category research: pull hundreds of products for a keyword and rank brands by rating and review volume.
- Deal content: feed savings data into deal newsletters, blogs or social posts.
Input parameters
| Field | Type | Default | Description |
|---|---|---|---|
searchQuery | string | required | Search keyword(s), e.g. laptop, iPhone 16, gaming headset |
maxResults | integer | 48 | Maximum number of products to return. 0 = every result Best Buy returns |
fetchProductDetails | boolean | true | Look up each SKU for the most precise pricing. Turn off for faster runs |
zipCode | string | 10001 | US ZIP code sent with each search request |
Example input
{"searchQuery": "wireless earbuds","maxResults": 100,"fetchProductDetails": true,"zipCode": "10001"}
Example output (one row)
{"skuId": "6611536","bsin": "J7LXFWXFJH","name": "JBL - Vibe Beam 2 Noise Cancelling Earbuds - 2025 - Black","brand": "JBL","url": "https://www.bestbuy.com/product/jbl-vibe-beam-2-noise-cancelling-earbuds-2025-black/J7LXFWXFJH/sku/6611536","image": "https://pisces.bbystatic.com/image2/BestBuy_US/images/products/2fe06a0c-5b52-41f9-b91d-93aa8b129956.jpg","price": 39.95,"regularPrice": 64.95,"savings": 25,"savingsPercent": 38,"rating": 4.5,"reviewCount": 944,"condition": "new","whatItIs": ["Headphones", "Wireless Headphones"],"sellerType": "1P","displayStatus": "active","isNew": false,"searchQuery": "wireless earbuds"}
Scheduling & integrations
- Schedules: run daily or hourly from Apify Console → Schedules to build a price history.
- Export: download results as JSON, CSV, Excel or XML, or read them through the Apify API.
- Integrations: send each run to Google Sheets, Slack, Make, Zapier, n8n, Airbyte or a webhook of your own.
- API: start runs and fetch results from any language with the Apify API or the
apify-clientpackage:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("axlymxp/bestbuy-scraper").call(run_input={"searchQuery": "gaming laptop", "maxResults": 50})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["name"], item["price"], item["savingsPercent"])
Use with AI agents (MCP)
Every public Apify actor can be called by AI assistants such as Claude, Cursor or ChatGPT through the Apify MCP server. Add it to your client, then ask for something like "find the best-rated noise-cancelling earbuds on Best Buy under $100", and the agent runs this actor and reads the results.
FAQ
How many products can I get per search?
As many as Best Buy returns for the query. Set maxResults to 0 to collect all of them, or cap it to keep runs short.
How fresh is the data? Live. Every run queries Best Buy at run time, so prices reflect what bestbuy.com shows at that moment for the ZIP code you set.
Does it work outside the US? It covers bestbuy.com (US) and US ZIP codes. Best Buy Canada is a separate site and isn't supported.
What if a search returns nothing? If Best Buy blocks or garbles a search, the run fails with an error rather than finishing as an empty "success". A query with genuinely no matches finishes with 0 products: check the spelling or try a broader keyword.
Why do some searches return slightly different products than bestbuy.com? For a few keywords (for example "4k monitor" or "gift card"), bestbuy.com skips the results page and opens a category page instead. The actor detects that redirect and returns Best Buy's keyword search results for the same words. The run log names the category it was redirected to.
Why are some fields null?
Best Buy doesn't return every field for every product. For example, new listings may have no rating yet.
Is it legal to scrape Best Buy? The actor collects publicly visible product and price information only. No login and no personal data are involved. You're responsible for using the data in line with Best Buy's terms and the laws that apply to you.
I need another field or found a bug. Open an issue on the actor's Issues tab with the input you used.