E-commerce
Best Buy Product & Price Scraper
Price-monitoring-grade Best Buy scraper — stable sku_id and an explicit scrape-time captured_at on every row, so you can diff price, discount, and availability across scheduled runs instead of getting a raw page dump.
Free Apify credit covers a first run. No credit card to try.
What this Actor scrapes
Point this Actor at one or more Best Buy category browse pages and it returns one clean row per SKU — current price, regular price, discount percent, savings amount, seller type (Best Buy vs. third-party marketplace), stock/pickup availability, and rating summary. Every row carries a stable sku_id and an explicit captured_at scrape-time timestamp, so scheduling repeat runs and diffing the dataset gives you a real price-history feed instead of a one-off snapshot. Built on curl-cffi with browser TLS impersonation against Best Buy's own JSON product payload — no fragile CSS-selector scraping.
What we handle for you
- 🛡️ Browser fingerprint rotation —
curl-cffiimpersonates real Chrome / Firefox / Safari TLS handshakes so the target sees a browser, not Python. - 🌐 Residential proxy rotation via Apify Proxy — fresh session and exit IP on every block.
- 🔁 Retries with exponential backoff on
408 / 429 / 5xx— up to 5 attempts per page,Retry-Afterhonoured. - 🧱 Rate-limit-aware pacing — when the target pushes back, we slow down instead of getting banned.
- 🧊 Clean, typed dataset rows — Pydantic-validated, ISO-8601 timestamps, stable IDs, JSON / CSV / Excel export straight from the Apify Console.
- 💰 Pay-Per-Event pricing — you only pay for results that hit your dataset. No data, no charge.
Use cases
- Price-drop monitoring — schedule repeat runs against a category or SKU list and diff <code>current_price</code>/<code>discount_percent</code> across runs to catch deals the moment they land.
- Competitor price intelligence — track how Best Buy prices a category over time versus your own catalog.
- Marketplace-vs-Best Buy mix analysis — use <code>seller_type</code> to see which listings are Best Buy-fulfilled vs. third-party marketplace sellers.
- Stock/availability alerting — diff <code>availability_status</code> and <code>in_store_pickup_eligible</code> across scheduled runs for restock notifications.
- Catalog enrichment — resolve a category into stable <code>sku_id</code>-keyed rows with rating, review count, and model number in one schema.
Input
Paste this into the Apify Console, or send it as the run input over the API. Proxy settings are on by default; you rarely need to touch them.
| Field | Type | Required | What it does |
|---|---|---|---|
startUrls | array | yes | Best Buy category browse URLs, e.g. bestbuy.com/site/<category-slug>/<sub-slug>/<categoryId>.c?id=<categoryId>. Direct product (PDP) URLs are not supported — bestbuy.com resets the connection on… |
maxItems | integer | no | Cap on the total number of product rows emitted this run. |
{
"startUrls": [
"https://www.bestbuy.com/site/laptop-computers/all-laptops/pcmcat138500050001.c?id=pcmcat138500050001"
],
"maxItems": 3,
"proxyConfiguration": {
"useApifyProxy": true
}
} Output
One row per result, schema-validated before it is written. Export JSON, CSV, Excel or XML from the run, or read it over the API.
sku_idproduct_namemodel_numberproduct_urlcategory_hintconditionopen_box_conditioncurrent_priceregular_pricediscount_percentsavings_amountseller_typeseller_idavailability_statusin_store_pickup_eligiblerating
{
"sku_id": "6667474",
"product_name": "HP - 14\" Laptop - Intel N150 Processor - 4GB Memory - 128GB UFS - Natural Silver",
"model_number": "14-dq6101dx",
"product_url": "https://www.bestbuy.com/product/hp-14-laptop-intel-n150-processor-4gb-memory-128gb-ufs-natural-silver/JJGW3FGFPZ/sku/6667474",
"category_hint": "https://www.bestbuy.com/site/laptop-computers/all-laptops/pcmcat138500050001.c?id=pcmcat138500050001",
"condition": "new",
"open_box_condition": null,
"current_price": 229.99,
"regular_price": 349.99,
"discount_percent": 34,
"savings_amount": 120,
"seller_type": "best_buy",
"seller_id": "bby",
"availability_status": "Add to Cart",
"in_store_pickup_eligible": true,
"rating": 4.4,
"review_count": 294,
"upc": null,
"captured_at": "2026-08-06T14:32:07.512381+00:00"
} Pricing
| Event | Price | When |
|---|---|---|
| Actor start | $0.20 | Once per run, covers warm-up and proxy session setup. |
| Result scraped | $0.0024 | Per result written to the dataset. |
You pay only for results that land. Cap any run with maxTotalChargeUsd. See pricing & billing for worked examples.
FAQ
Does this cover bestbuy.ca or other storefronts?
Does it return historical price charts?
Why is upc always null?
Can I pass a direct product page instead of a category page?
Does it search by keyword?
Ready to run it?
Open the listing on Apify, paste the input above, and watch rows land. If it ever breaks, it is our problem before it is yours.
Related Actors