
TikTok Shop Scraper
scrape.ly/store/shelfbright/tiktok-shop-scraperE-commerceSocial media
1 monthly user

Scrape Best Buy (bestbuy.com) products from searches, categories, product URLs or SKUs: price, regular price, savings, open-box prices, rating, reviews count, stock, shipping and pickup, specs, images, UPC and model. Optional customer reviews.
Scrape Best Buy (bestbuy.com) products by keyword, category, product URL or SKU. Get the current price, regular price, savings, open-box prices, rating, review count, stock, shipping and store pickup, specs, images, UPC and model number, plus optional customer reviews. No login and no browser needed: 1,000 products take about a minute and a half.
laptop or 65 inch tv), or paste Best Buy URLs (search, category or product pages), or enter SKUs.| Field | What it does |
|---|---|
searchQueries | Words to search on bestbuy.com. |
startUrls | Search, category or product page URLs from bestbuy.com. |
skus | Best Buy SKU numbers, one product each. |
maxItems | Products per search term or category (default 20). |
sort, brands, condition, minPrice, maxPrice, onSaleOnly, soldByBestBuyOnly, includeMarketplace | Search filters. |
includeAvailability, zipCode, storeId | Stock, shipping and pickup for a ZIP code and store (on by default). |
maxReviewsPerProduct, reviewsSort, reviewRatings, reviewsOnly | Customer reviews, saved as separate rows. |
{
"searchQueries": ["laptop"],
"startUrls": ["https://www.bestbuy.com/site/all-laptops/pcmcat138500050001.c?id=pcmcat138500050001"],
"skus": ["6681674"],
"maxItems": 20,
"sort": "best_selling",
"brands": ["HP", "Lenovo"],
"maxPrice": 800,
"zipCode": "10001",
"maxReviewsPerProduct": 10
}
Each product is one row with type: "product". Reviews, when requested, are separate rows with type: "review".
| Field | Description |
|---|---|
sku, title, brand, model, upc, url | Product identity. |
price, regularPrice, savings, savingsPercent, onSale | Current pricing in USD. |
openBoxLowestPrice, openBoxOffers | Open-box offers by condition with price and savings. |
rating, reviewCount, recommendedPercent | Customer ratings. |
availability, inStock, shippingAvailable, shippingDate, shippingCost, pickupAvailable, pickupDate, pickupStore | Stock and fulfillment for your ZIP and store. |
soldByBestBuy, sellerId, condition | Who sells it and in what condition (new, refurbished...). |
category, categoryPath, productType, color, releaseDate | Classification. |
image, images, description, features, includedItems, specifications | Content and full spec sheet. |
position, searchQuery, sourceUrl, scrapedAt | Where the row came from. |
Product example (trimmed):
{
"type": "product",
"sku": "6681674",
"title": "HP - 15.6\" Full HD Touchscreen Laptop - AMD Ryzen 7 (2023) - 16GB Memory - 512GB SSD - Natural Silver",
"brand": "HP",
"model": "15-fc0235dx/E0RM7UA#ABA",
"upc": "881767160325",
"url": "https://www.bestbuy.com/product/hp-15-6-full-hd-touchscreen-laptop-amd-ryzen-7-2023-16gb-memory-512gb-ssd-natural-silver/J3KSTFF867/sku/6681674",
"price": 549.99,
"regularPrice": 699.99,
"savings": 150,
"savingsPercent": 21,
"onSale": true,
"condition": "New",
"openBoxLowestPrice": 499.99,
"openBoxOffers": [
{"condition": "Fair", "price": 499.99, "savings": 50},
{"condition": "Good", "price": 515.99, "savings": 34},
{"condition": "Excellent", "price": 532.99, "savings": 17}
],
"rating": 4.8,
"reviewCount": 65,
"recommendedPercent": 97,
"availability": "Add to Cart",
"inStock": true,
"shippingDate": "2026-10-16",
"shippingCost": 0,
"pickupAvailable": true,
"pickupStore": "Roseville (7)",
"soldByBestBuy": true,
"category": "All Laptops",
"categoryPath": ["Computers & Tablets", "Laptops", "All Laptops"],
"image": "https://pisces.bbystatic.com/image2/BestBuy_US/images/products/10848204-eac5-4a17-aa58-c3e32c25957b.jpg",
"specifications": {"Screen Size": "15.6 inches", "Screen Resolution": "1920 x 1080 (Full HD)", "Touch Screen": "true"},
"searchQuery": "laptop",
"position": 2
}
Review example (sample data):
{
"type": "review",
"sku": "6681674",
"productTitle": "HP - 15.6\" Full HD Touchscreen Laptop - AMD Ryzen 7 (2023) - 16GB Memory - 512GB SSD - Natural Silver",
"rating": 5,
"reviewTitle": "Great laptop for school",
"reviewText": "Fast, quiet and the battery easily lasts a full day of classes.",
"reviewDate": "2026-09-18T11:09:29.000-05:00",
"verifiedPurchase": true,
"recommended": true,
"helpfulCount": 3,
"reviewerNickname": "SampleUser42"
}
You pay $0.50 per 1,000 results (each product row and each review row is one result), plus the small platform usage of the run (compute and proxy traffic).
Example: 1,000 products with availability cost $0.50 in result fees plus about $0.01 of platform usage (measured: about 1 minute of compute and 7 MB of datacenter proxy traffic).
Is it legal to scrape Best Buy? The actor only reads public product pages that anyone can see without logging in. You are responsible for how you use the data; check Best Buy's terms and your local laws.
Do I need a Best Buy account or my own proxy? No. The actor needs no login. It uses datacenter proxies by default and switches to US residential proxies automatically if they get blocked.
How many results can I get? As many products as you have inputs for. Best Buy only shows roughly the first 2,000 to 2,400 matches of a single search; to go further, split the search with filters (brand, price range, condition), sorts or category pages.
Why is a field empty? Best Buy does not publish every field for every product (for example UPC, release date or open-box offers). Empty fields are null or an empty list.
Can I choose where availability is checked? Yes. Set zipCode for shipping and storeId for store pickup. Turn off includeAvailability to skip the extra request per product.
Can I schedule it or use the API? Yes. Schedule runs in the console, or start them over the API and read the dataset as JSON, CSV or Excel.
Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
searchQueriesarrayOptionalSearch terms
Words to search on bestbuy.com, such as laptop, 65 inch tv or airpods. Each term returns up to the result limit below.
startUrlsarrayOptionalBest Buy URLs
bestbuy.com search pages (https://www.bestbuy.com/site/searchpage.jsp?st=monitor), category pages (https://www.bestbuy.com/site/all-laptops/pcmcat138500050001.c?id=pcmcat138500050001) or product pages (https://www.bestbuy.com/product/.../JJGCQ88C8X/sku/12854653 or .../6447382.p?skuId=6447382). Filters in a search URL (qp=) are kept.
skusarrayOptionalSKUs
Best Buy SKU numbers (e.g. 6447382). Each SKU returns one product row.
maxItemsintegerOptionaldefault 20Max products per search or category
Stop each search term, search URL or category after this many products. Product URLs and SKUs are always scraped. Best Buy shows roughly the first 2,000-2,400 matches of a search; use filters or several searches to go further.
Optional. Applied to search terms, search URLs and categories.
sortenumOptionaldefault ""Sort by
Order of search and category results. Leave empty for Best Buy's default (Best Match for searches).
brandsarrayOptionalBrands
Only products from these brands, e.g. Apple, Samsung, HP. Leave empty for all brands.
conditionarrayOptionalCondition
Only products in these conditions. Leave empty for all.
minPriceintegerOptionalMin price (USD)
Only products priced at or above this amount.
maxPriceintegerOptionalMax price (USD)
Only products priced at or below this amount.
onSaleOnlybooleanOptionaldefault falseOn sale only
Only products that are currently on sale.
soldByBestBuyOnlybooleanOptionaldefault falseSold by Best Buy only
Only products sold and shipped by Best Buy (no Marketplace sellers).
includeMarketplacebooleanOptionaldefault trueInclude Marketplace sellers
Include products from third-party Marketplace sellers, as bestbuy.com does by default.
Stock, shipping and store pickup for a ZIP code and store.
includeAvailabilitybooleanOptionaldefault trueInclude availability
Add stock status, shipping date and cost, and store pickup for each product (one extra request per product).
zipCodestringOptionaldefault "55423"ZIP code
US ZIP code used for shipping dates and costs. Default 55423 (Richfield, MN).
storeIdstringOptionaldefault "7"Store ID
Best Buy store number used for pickup availability (shown in the store's URL on bestbuy.com/site/store-locator). Default 7.
Optional. Reviews are saved as separate rows (type review).
maxReviewsPerProductintegerOptionaldefault 0Max reviews per product
Also save up to this many customer reviews for each product. 0 = no reviews.
reviewsSortenumOptionaldefault "most_relevant"Sort reviews by
Which reviews come first.
reviewRatingsarrayOptionalReview star ratings
Only reviews with these star ratings. Leave empty for all.
reviewsOnlybooleanOptionaldefault falseOnly reviews (skip product rows)
Save only review rows, without the product rows.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy configuration
Datacenter addresses are the default. Residential (US) is used automatically if datacenter addresses get blocked.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| image | any | Image |
| title | any | Product |
| brand | any | Brand |
| model | any | Model |
| sku | any | SKU |
| upc | any | UPC |
| price | any | Price |
| regularPrice | any | Regular price |
| savings | any | Savings |
| openBoxLowestPrice | any | Open-box from |
| rating | any | Rating |
| reviewCount | any | Reviews |
| availability | any | Availability |
| inStock | any | In stock |
| shippingDate | any | Ships by |
| pickupAvailable | any | Pickup |
| soldByBestBuy | any | Sold by Best Buy |
| condition | any | Condition |
| category | any | Category |
| searchQuery | any | Search |
| url | any | URL |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Result | One product or review row saved to the dataset. | $0.0005 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('shelfbright/bestbuy-scraper').call({
"searchQueries": [
"laptop"
],
"startUrls": [],
"skus": [],
"maxItems": 20,
"maxReviewsPerProduct": 0,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"DATACENTER"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run shelfbright/bestbuy-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=shelfbright/bestbuy-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Product details, availability and 5 reviews each.
Cheapest matching monitors first.
Products from a Best Buy category URL.
Search results with 5 reviews per product.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.