Best Buy Canada Store Stock & Clearance Tracker avatar

Best Buy Canada Store Stock & Clearance Tracker

Pricing

from $0.50 / 1,000 product in a stores

Go to Apify Store
Best Buy Canada Store Stock & Clearance Tracker

Best Buy Canada Store Stock & Clearance Tracker

Best Buy Canada stock at each store near a postal code: units on hand per store, address, distance, regular and sale price, discount and clearance flags. Search, category, clearance or SKU list; rank by discount, distance or stock; track restocks, sell-outs and markdowns.

Pricing

from $0.50 / 1,000 product in a stores

Rating

0.0

(0)

Developer

Philip Kirkbride

Philip Kirkbride

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 hours ago

Last modified

Features

Limited permissions

Share

Compare reported stock at nearby Best Buy Canada stores with national online prices — for one product, a list of products, a search, a category or the clearance section.

Give a Canadian postal code and a radius. The actor finds the Best Buy stores around you, checks every product at every store, and saves one row per product per store: the store, its address and distance, the units on hand, the national online regular and current price, the discount, and whether the item is on clearance. Rows can be ranked by biggest discount, nearest store or most units.

Run it on a schedule in Changes mode and it tells you only what moved since last time: a product back in stock, a store that sold out, a stock count that changed, a price drop, or a product a store no longer carries.

Who it is for

  • Deal hunters looking for clearance bargains at stores they can drive to
  • Resellers watching stock and markdowns across several stores
  • Anyone waiting for a sold-out product to come back at a nearby store
  • Price-tracking and stock-alert apps that need store-level Best Buy Canada availability as a daily feed
  • Market researchers comparing clearance depth by city or province

Quick start

  1. Open the Input tab. The form is prefilled with a Toronto postal code (M5V 3L9), a 25 km radius, the 10 nearest stores, Clearance only and 12 products.
  2. Click Start. A typical run finishes in a few minutes, because each product is checked at every selected store.
  3. Open the Output tab, or export the rows as JSON, CSV or Excel.

A postal code is the only required field; a run without one stops at once with a message asking for it, and nothing is charged beyond the run start. To watch a fixed list, put SKUs in Products and switch Mode to Changes since the last run.

What you get

One row per product per store:

  • Product — SKU, name, brand, category, UPC, model number, product link and image
  • Store — store number, name, type (regular store, Best Buy Express, Best Buy Mobile, Express kiosk), street address, city, province, postal code, latitude and longitude
  • Distance — straight-line kilometres from your postal code (or from the exact point you give)
  • Stock — units on hand at that store as Best Buy states them, an in-stock / out-of-stock flag, whether the store offers pick-up for it, and Best Buy's own store and online availability labels word for word, plus the number of units available online
  • Prices — regular price and current price in Canadian dollars
  • Discount — percent and dollars off, only when Best Buy itself shows a current price below the regular price
  • Clearance and sale — Best Buy's clearance and on-sale flags, its offer labels (for example On Clearance or 40% Off or More) and the sale end date as published
  • Rank — the row's place in the order you chose
  • Change details (Changes mode) — what changed, the previous stock and prices, the price drop since the last run, and when the product was first seen at that store

About discounts on clearance items

Best Buy often shows clearance items with the regular price equal to the current price, so a clearance row can say On Clearance with no percentage. The actor never makes up a discount. discountPct and discountAmount are derived comparisons with the current regular reference price, not observed historical or pre-clearance drops. They do not establish local purchase cost or resale profit. When you track clearance items in Changes mode, a markdown since your previous run is reported as priceDropFromLastSeen (dollars) and priceDropPctFromLastSeen (percent), and the discount ranking takes it into account.

Input

FieldWhat it does
Postal codeWhere to look, for example M5V 3L9 (required)
Radius (km)Keep stores within this distance, 1 to 50 km (25 by default)
Maximum storesHow many of the nearest stores to check, up to 30 (10 by default)
Latitude / longitudeOptional exact starting point for distances, for example your home
Store typesRegular stores by default; add Best Buy Express, Best Buy Mobile or Express kiosks
ProductsSKUs or product links to check, for example 19860982
SearchWords to search for, for example oled tv
CategoryA Best Buy Canada category link or number
Clearance onlyOnly products Best Buy lists as on clearance
Minimum discountOnly products listed at 20%, 30%, 40%, 50% or 60% off or more
Maximum products from the searchHow many products to take from the search, category or clearance list (20 by default, up to 200)
Target distinct in-stock productsOptional targetInStockProducts, 1 to 200; find this many different SKUs with a positive local unit count, within the separate scan budget
Include out-of-stock storesAlso show stores that list the product with zero units (off by default)
Sort byBiggest discount (default), nearest store, or most units
Maximum rowsHow many product-store rows to save (200 by default, up to 5,000)
ModeFull results (default) or Changes since the last run
State keyIn Changes mode, a name for this watch list; keep it the same on every scheduled run

You can combine them: for example a search for headphones with Clearance only, or a category with a minimum discount, plus a few SKUs you always want checked.

Find a target number of in-stock products

Set targetInStockProducts to count different SKUs with a positive unit count at a selected local store. One SKU at three stores counts as one product. Online units, missing counts and an availability flag without a positive count do not satisfy the target. Out-of-stock checks still use part of the scan budget.

For example, targetInStockProducts: 5 with maxProducts: 50 looks through up to 50 different listing products to find five with local stock. It stops reading the listing when the target is met. maxProducts is the discovery scan budget; maxItems still caps product-store rows. Neither limit becomes a promise of five delivered products. The listing may run out, the time or spending limit may stop the run, or a row cap may leave fewer distinct products in the saved results.

SKUs you put in Products are still checked first, so this explicit list can exceed the target. Omit the target to keep the existing full-scan behavior. In Changes mode, a target stop leaves unvisited products for a later run; it never reports them as gone. An unchanged positive-stock product counts toward the observed target even when Changes mode saves no new row for it. To inspect every tracked product on each bounded run, leave the target empty.

The Run summary separates productsScanned (distinct SKUs whose details were attempted), inStockProducts (distinct SKUs with positive local units), items (delivered rows), deliveredProducts (all delivered distinct SKUs) and deliveredInStockProducts (delivered SKUs with positive local units). targetReached describes the observed target; targetDelivered describes what was saved. scanStopReason says whether the target, discovery budget, listing end or another limit ended the scan. deliveryStopReason names a row, spending or state-save limit when it cut delivery short. A target stop is a partial look at the wider product scope, so scanComplete is false; products not reached remain unknown.

Example input

{
"postalCode": "M5V 3L9",
"radiusKm": 25,
"maxStores": 10,
"clearanceOnly": true,
"searchQuery": "tv",
"maxProducts": 20,
"sortBy": "discount"
}

Example output row

{
"sku": "19181772",
"title": "Lenovo Idea Tab Pro 12.7-inch 256GB, Wi-Fi, 8GB RAM, MediaTek Dimensity 8300 - Grey",
"brand": "LENOVO",
"url": "https://www.bestbuy.ca/en-ca/product/lenovo-idea-tab-pro-12-7-inch-256gb-wi-fi-8gb-ram-mediatek-dimensity-8300-grey/19181772",
"image": "https://multimedia.bbycastatic.ca/multimedia/products/1500x1500/191/19181/19181772.jpg",
"category": "Android Tablets",
"upc": "198155632846",
"modelNumber": "ZAE40174CA",
"storeId": "965",
"storeName": "Warden",
"storeType": "regular",
"address": "50 Ashtonbee Rd., Unit 2",
"city": "Scarborough",
"province": "ON",
"postalCode": "M1L 4R5",
"latitude": 43.73121,
"longitude": -79.2863,
"distanceKm": 12.71,
"stockQuantity": 21,
"stockStatus": "in_stock",
"hasInventory": true,
"isReservable": true,
"pickupStatus": "InStock",
"onlineStatus": "InStock",
"onlineQuantity": 848,
"regularPrice": 559.97,
"salePrice": 559.97,
"currency": "CAD",
"priceScope": "national_online",
"priceStoreId": null,
"discountPct": null,
"discountAmount": null,
"isClearance": true,
"isOnSale": false,
"offerLabels": ["On Clearance"],
"saleEndsAt": "2026-11-06 12:00:00 AM",
"rank": 8,
"changeType": null,
"changedFields": [],
"previous": null,
"priceDropFromLastSeen": null,
"priceDropPctFromLastSeen": null,
"firstSeenAt": null,
"lastSeenAt": null,
"observedAt": "2026-11-04T22:30:00+00:00"
}

Changes mode

Set Mode to Changes since the last run and give a State key. The first run saves what it finds (every row is new). Each later run with the same key saves only rows where something moved:

  • new — a product seen at a store for the first time
  • backInStock — the store had none last time and has units now
  • outOfStock — the store had units last time and has none now
  • stockChanged — the unit count changed
  • priceChanged — the current price, regular price or clearance flag changed; a markdown shows in priceDropFromLastSeen
  • gone — the product itself has disappeared from Best Buy and its page is gone. If a store simply leaves a product out of its answer, the actor treats that as unknown and reports nothing for that store.

previous holds the stock and prices from the last run, and changedFields names what moved. A store or product the run could not reach, or a store that did not list the product, is never reported as gone. If nothing moved, the run saves no rows. Keep the same postal code, stores and product list for a state key, and schedule the actor (for example every morning) to get a daily restock and markdown feed.

A very large watch list may need several runs. Each run saves its completed results and reports any partial coverage; later runs continue through the watch list. Keep the same state key and product selection between runs.

Good to know

  • Stock is what Best Buy reports for each store at the moment of the run; shelves can change quickly, so call the store before you drive.
  • A store availability flag can be present without a published unit count. Missing counts stay null and do not satisfy a distinct in-stock product target.
  • priceScope is national_online: current and regular-reference prices are Best Buy's national online values. priceStoreId is null because no shop-specific price was observed. The stock belongs to storeId; a shop may charge a different price. These fields also appear when prices are missing, without claiming that a price was observed. A gone row has no current prices; its previous prices are from the last observed run.
  • A store that does not carry a product at all gives no row for it; out-of- stock stores are left out unless you turn on Include out-of-stock stores.
  • Stores are searched up to about 50 km from the postal code.
  • If a run cannot finish (for example it runs out of time), it saves what it completed and says so in its status.

FAQ

How fresh is the stock? Every run reads stock and prices live at run time. Nothing is cached between runs.

Which stores are covered? Best Buy Canada stores within about 50 km of the postal code you give, up to 30 stores per run. Regular stores by default; Best Buy Express, Best Buy Mobile and Express kiosks on request.

Are the prices store prices? No. Prices are Best Buy's national online regular and current prices (priceScope: national_online); the stock count is per store. A store may charge a different price at the till.

Does it cover marketplace sellers? No. Only products sold by Best Buy itself, because only those have store stock.

How do I get daily restock alerts? Use Changes mode with a fixed State key and a schedule (for example every morning), then connect the dataset to a webhook, email or spreadsheet integration.

What export formats are there? JSON, CSV, Excel, XML and RSS from the dataset, like any Apify run.

Data and privacy

The actor collects public product, price, stock and store information that Best Buy Canada shows to every visitor. It does not collect personal data.

Pricing

The run-start event costs $0.005 per GB of memory, with a minimum of one event. The default 512 MB run is one start event, charged even if no rows are saved. Each delivered product-store row costs $0.0005. Changes mode saves and charges only the changed rows, plus the run start.

Worked costs: the prefilled run, capped at 100 rows, costs at most about $0.055; 1,000 product-store rows cost about $0.505. A daily Changes run that finds 20 changed rows costs about $0.015.

See the Pricing tab for current prices.