Bestbuy Products Scraper avatar

Bestbuy Products Scraper

Pricing

$19.99/month + usage

Go to Apify Store
Bestbuy Products Scraper

Bestbuy Products Scraper

Efficiently access product data from Best Buy , capable of scraping unlimited details including ID, name, URL, prices, ratings, and stock status from bestbuy.com. Perfect for populating reports, databases, and applications with structured data.

Pricing

$19.99/month + usage

Rating

5.0

(2)

Developer

codemaster devops

codemaster devops

Maintained by Community

Actor stats

3

Bookmarked

61

Total users

3

Monthly active users

1.2 days

Issues response

4 days ago

Last modified

Share

Best Buy Products Scraper

Best Buy Products Scraper extracts product data from BestBuy.com and BestBuy.ca into an Apify dataset. Use it for product research, price monitoring, catalog enrichment, competitive analysis, availability checks, and ecommerce lead generation.

The actor supports Best Buy URLs copied directly from your browser. You can scrape modern BestBuy.com search and category pages, deals pages, promo pages, direct product pages, and selected BestBuy.ca category, collection, and product pages.

What Data Can You Extract?

Depending on the page type and what Best Buy exposes for each product, the dataset can include:

  • Product name, SKU, URL, brand, model, UPC, GTIN, and BSIN
  • Current, regular, original, and sale prices
  • Availability text and normalized stock status
  • Ratings, review counts, aggregate rating data, and top reviews when available
  • Product images, primary image objects, videos, manuals, and supported logos
  • Descriptions, features, included items, specifications, dimensions, warranty, condition, and manufacturer data
  • Partial records with SKU and URL when a product detail API request is blocked after retries

The actor keeps additionalProperties enabled in the dataset schema because Best Buy product APIs can return category-specific fields that vary across electronics, appliances, smart home products, phones, accessories, and open-box products.

Supported Start URLs

Use the real Best Buy URL from your browser. You do not need to convert URLs to an older format.

URL typeExample
BestBuy.com search pagehttps://www.bestbuy.com/site/searchpage.jsp?st=smart%20light%20panels
BestBuy.com modern category pagehttps://www.bestbuy.com/site/smart-lighting/smart-light-panels/pcmcat1704310076876.c?id=pcmcat1704310076876
BestBuy.com Top Deals pagehttps://www.bestbuy.com/site/electronics/top-deals/pcmcat1563299784494.c?id=pcmcat1563299784494
BestBuy.com promo pagehttps://www.bestbuy.com/site/promo/tv-deals
BestBuy.com product pagehttps://www.bestbuy.com/site/6628380.p?skuId=6628380
BestBuy.ca category pagehttps://www.bestbuy.ca/en-ca/category/laptops-macbooks/20352
BestBuy.ca collection pagehttps://www.bestbuy.ca/en-ca/collection/top-deals-on-laptops/217126
BestBuy.ca product pageAny supported BestBuy.ca product URL

Modern BestBuy.com product list pages often expose product IDs as data-product-id rather than old skuId= links. The actor supports both patterns.

Quick Start

  1. Open BestBuy.com or BestBuy.ca.
  2. Navigate to a search page, category page, deals page, promo page, or product page.
  3. Copy the full browser URL.
  4. Paste it into Start URLs.
  5. Set Maximum products to 3 for the first test.
  6. Keep Proxy configuration enabled with countryCode: "US" for BestBuy.com.
  7. Run the actor and open the Products dataset.

This example tests the exact modern BestBuy.com URL patterns that users commonly copy from the browser:

{
"startUrls": [
{
"url": "https://www.bestbuy.com/site/searchpage.jsp?st=smart%20light%20panels"
},
{
"url": "https://www.bestbuy.com/site/smart-lighting/smart-light-panels/pcmcat1704310076876.c?id=pcmcat1704310076876"
}
],
"proxyConfig": {
"useApifyProxy": true,
"countryCode": "US"
},
"maxProductsCnt": 3,
"addImages": true,
"addTopReviews": true,
"maxRequestRetries": 3,
"minConcurrency": 1,
"maxConcurrency": 4,
"handleRequestTimeoutSecs": 20
}

Input Options

FieldTypeDefaultDescription
startUrlsarrayRequiredOne or more Best Buy search, category, deals, promo, collection, or product URLs.
proxyConfigobjectApify Proxy, USProxy settings. Use Apify Proxy with countryCode: "US" for BestBuy.com. Custom proxyUrls are also supported.
maxProductsCntinteger100Maximum products to save across all start URLs. Use 0 for all discovered products.
addImagesbooleantrueEnables image extraction where Best Buy exposes image data.
addTopReviewsbooleantrueEnables top review extraction where Best Buy exposes review data.
maxRequestRetriesinteger3Number of retries for failed pages, listing requests, and product detail requests.
minConcurrencyinteger1Minimum parallel requests. Keep at 1 for stable small runs.
maxConcurrencyinteger4Maximum parallel requests. Increase carefully with reliable proxies.
handleRequestTimeoutSecsinteger20Request and handler timeout in seconds. Increase if proxies are slow.
requestTimeoutSecsintegerNoneLegacy alias for request timeout. New tasks should use handleRequestTimeoutSecs.
maxProductsintegerNoneLegacy alias for maxProductsCnt. Existing saved tasks can continue using it.
proxyobjectNoneLegacy alias for proxyConfig. Existing saved tasks can continue using it.

More Example Inputs

Search Products

{
"startUrls": [
{
"url": "https://www.bestbuy.com/site/searchpage.jsp?st=gaming%20monitor"
}
],
"proxyConfig": {
"useApifyProxy": true,
"countryCode": "US"
},
"maxProductsCnt": 25,
"maxRequestRetries": 3,
"minConcurrency": 1,
"maxConcurrency": 4,
"handleRequestTimeoutSecs": 20
}

Scrape a Category

{
"startUrls": [
{
"url": "https://www.bestbuy.com/site/tv-home-theater/tvs/abcat0101000.c?id=abcat0101000"
}
],
"proxyConfig": {
"useApifyProxy": true,
"countryCode": "US"
},
"maxProductsCnt": 100,
"addImages": true,
"addTopReviews": false
}

Scrape Direct Product URLs

{
"startUrls": [
{
"url": "https://www.bestbuy.com/site/6628380.p?skuId=6628380"
},
{
"url": "https://www.bestbuy.com/site/11746203.p?skuId=11746203"
}
],
"proxyConfig": {
"useApifyProxy": true,
"countryCode": "US"
},
"maxProductsCnt": 2
}

Use Custom Proxies

{
"startUrls": [
{
"url": "https://www.bestbuy.com/site/searchpage.jsp?st=smart%20light%20panels"
}
],
"proxyConfig": {
"proxyUrls": [
"http://user:password@proxy.example.com:8000"
]
},
"maxProductsCnt": 10,
"maxRequestRetries": 3
}

When proxyUrls are supplied, the actor does not force countryCode, so custom proxy configuration is not mixed with Apify Proxy settings.

Output

Results are saved to the default dataset. Each item represents one product. The output shape depends on whether the item came from a listing page, a product page, BestBuy.com product API details, or BestBuy.ca API data.

For simple exports, use the top-level name, brand, url, sku, price, and reviews fields. The actor also keeps source-specific fields such as currentPrice, salePrice, regularPrice, rating, and reviewCount when Best Buy exposes them.

Example output:

{
"sku": "11746203",
"url": "https://www.bestbuy.com/site/11746203.p?skuId=11746203",
"name": "Lines 90 Degrees Smarter Kit (4 Light Lines)",
"brand": "Nanoleaf",
"price": 99.99,
"reviews": 198,
"currentPrice": 99.99,
"reviewCount": 198,
"upc": "4897105332060",
"bsin": "CGCL6RH8GP",
"color": {
"displayName": "Multicolor"
},
"descriptions": {
"long": "A modular smart lighting kit with customizable colors."
},
"manufacturer": {
"modelNumber": "NL59K03-4SN00"
},
"features": [
{
"title": "Color-Changing Animations",
"description": "Customize your lights with colors and motion."
}
],
"specifications": [
{
"displayName": "Works With",
"values": [
"Amazon Alexa",
"Google Home"
]
}
],
"images": [
{
"href": "https://pisces.bbystatic.com/image2/BestBuy_US/images/products/example.jpg",
"primary": true
}
],
"warranties": {
"parts": "2 years",
"labor": "2 years"
}
}

If Best Buy blocks a product detail API request after all retries, the actor can still save a partial item:

{
"sku": "11746203",
"url": "https://www.bestbuy.com/site/11746203.p?skuId=11746203",
"detailStatus": "api_failed",
"detailError": "Request blocked - received 403 status code"
}

Reliability Notes

Best Buy can occasionally return 403 responses, reset HTTP connections, or serve different HTML for different regions. The actor is designed to continue when possible:

  • Listing pages are parsed from modern data-product-id product tiles and older skuId= links.
  • BestBuy.com product detail pages use a JSON model endpoint when a SKU is known.
  • BestBuy.ca category and collection URLs are transformed to BestBuy.ca JSON API requests.
  • Product limits are enforced before scheduling extra detail requests.
  • If only a detail request fails, a partial SKU record can still be saved.

For BestBuy.com, US proxies are strongly recommended.

Troubleshooting

No products were saved

Try the Top Deals or direct product example first. If that works, the start URL may use a new page shape or Best Buy may have blocked the listing request.

The run gets a few 403 errors

This can happen with Best Buy. Keep maxRequestRetries at 3, use US proxies, and keep concurrency modest.

Only partial items are saved

The actor found SKUs, but product detail requests were blocked after retries. Partial records preserve the SKU and URL so the run still returns useful leads.

Custom proxies fail

Use either Apify Proxy fields or proxyUrls, not both. The actor supports custom proxyUrls directly.

Cost Guidance

For small tests, set maxProductsCnt to 3. For normal category or search jobs, start with 100. Larger jobs depend mostly on proxy speed, retries, and the number of product detail requests. Lower concurrency is usually more reliable on Best Buy than aggressive parallel crawling.

Use this actor responsibly and make sure your use case complies with Best Buy's terms, applicable laws, and privacy requirements. Do not scrape personal data unless you have a lawful basis and a clear business need.