Staples Canada Store Stock & Clearance Tracker avatar

Staples Canada Store Stock & Clearance Tracker

Pricing

from $0.75 / 1,000 product in a stores

Go to Apify Store
Staples Canada Store Stock & Clearance Tracker

Staples Canada Store Stock & Clearance Tracker

Staples Canada in-store stock near a postal code: one row per product and store with the live unit count, distance, regular and sale price, discount and clearance flag. Look up SKUs or product links, or list clearance, sale, search or category items; track restocks and price drops.

Pricing

from $0.75 / 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

Find out which Staples stores near you have an item on the shelf, how many units each store has, and how much it is marked down. Give a Canadian postal code and the products you care about, or let the actor list Staples clearance, sale, search or category items, and you get one row per product and store: the store's address and distance, the live unit count for in-store pickup, the regular and current price, the discount and the clearance flag.

Run it again later in change mode and it tells you only what moved: items that came back in stock, sold out, changed count or dropped in price.

Who it is for

  • Deal hunters checking Staples clearance before driving to a store
  • Resellers watching restocks and markdowns across several stores
  • Price-tracking and stock-alert apps that need store-level Staples Canada availability on a schedule
  • Shoppers comparing stores in a city for one printer, chair or laptop

Quick start

  1. Open the Input tab. The form is prefilled with a downtown Toronto postal code (M5V 3L9), the 5 nearest stores and 10 listed products.
  2. Click Start, then open the Output tab or export the rows as JSON, CSV or Excel.

An empty input ({}) also works: with no products, search, category or filter, the actor lists Staples clearance items near M5V 3L9 (20 products, the 5 nearest stores within 25 km, at most 500 rows). Change the postal code to search your own area.

What you get

  • Product — Staples item number (SKU), name, brand, product link and image
  • Store — store number, address, city, province, postal code, map coordinates, store page, and the distance from your search point in km
  • Stock — units available for pickup at that store, as Staples states it, with in_stock or out_of_stock
  • Price — regular price, current price (CAD) and the percent off when Staples shows a regular price above the current one
  • Clearance — whether Staples marks the item as clearance, plus the sale and clearance tags Staples attaches to it, word for word
  • Change details (change mode) — what changed, the earlier unit count or price, how much the price fell, and when the pair was first and last seen

Input

FieldWhat it does
Postal codeCanadian postal code to search around (default M5V 3L9, downtown Toronto)
Latitude / LongitudeOptional exact point instead of the postal code area
Radius (km)Only stores within this distance, 1 to 250 km (default 25 km)
Max storesHow many of the nearest stores to check (default 5, up to 25)
Products (SKUs or product links)Up to 500 Staples item numbers or staples.ca product links to check at every store
Search wordsAlso check products matching these words
CategoryA staples.ca category link or its last part, for example pens-6745
Clearance items onlyList clearance items (with no products, search or category, the actor lists clearance items)
Discounted items onlyList only items priced below their regular price
Max listed productsHow many products to take from the search, category or clearance list (default 20, up to 500)
Only stores with stockLeave out stores with zero units
Sort byBiggest discount, nearest store, or most units first
Max rowsMost rows to deliver in one run (default 500, up to 10,000)
ModeFull results, or only changes since the last run
State keyName of the saved state that change mode compares against

Example: clearance items at the five nearest stores to a Mississauga postal code, biggest discount first.

{
"postalCode": "L5B 2C9",
"clearanceOnly": true,
"maxProducts": 30,
"maxStores": 5,
"sortBy": "discount"
}

Example: three items you are watching, every store within 40 km of Ottawa city centre, only stores that have them.

{
"postalCode": "K1P 1J1",
"radiusKm": 40,
"maxStores": 10,
"products": [
"3099949",
"https://www.staples.ca/products/31307-en-bic-round-stic-ballpoint-stick-pens-10mm-blue-60-pack",
"24394127"
],
"onlyInStock": true
}

Change mode

Set Mode to Only changes since last run and pick a State key (for example toronto-clearance). The first run delivers every row as new. Each later run with the same key delivers only rows where something moved:

ChangeMeaning
newFirst time this product is seen at this store
backInStockWas 0 units, now has stock
outOfStockHad stock, now 0 units
stockChangedThe unit count changed
priceChangedThe current price changed; priceDropFromLastSeen says how much it fell
goneThe item left the same clearance, search or category list this run read all the way to the end

A row can carry more than one change (for example a restock with a price drop); changeTypes lists them all and changeType shows the main one. Only delivered rows are charged.

A product-store pair missing from an observation stays unknown, rather than becoming a disappearance alert. A pair that remains unobserved for about six months is no longer included in future comparisons. gone only follows a complete product list, so a run that stopped early or a list cut off at your product limit reports no gone rows. It must also be the same list: if you reuse a state key but change the search words, category or filters, the items saved from the old list are left alone rather than reported as gone.

Good to know

  • Staples reports stock for in-store pickup. Units shown are what Staples says is available; shelves can differ, so call the store before a long drive.
  • priceScope is retailer_online: current and regular-reference prices come from Staples' retailer-wide online product listing. priceStoreId is null because no shop-specific price was observed. Stock belongs to storeId; a shop may charge a different price at the till. The scope is also present on stock-only rows with missing prices. A gone row retains last-observed prices; it does not claim a fresh price for a removed item.
  • discountPct is a derived comparison with the current regular reference price, filled only when it is higher than the current sale price. It is not an observed historical or pre-clearance drop, local purchase cost or resale profit. In change mode a price drop since the last run is shown in priceDropFromLastSeen even when Staples shows no regular price.
  • Distance is a straight line from your exact point, or from the centre of the postal code area when you give only a postal code.
  • The pickup message is passed on exactly as Staples sends it, which is currently in French for every store.
  • If full product details could not be read on a run, rows still carry the stock, and productDetails says how complete the product fields are.
  • Store and product data are public business information. The actor reads no 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.00075. Change mode saves and charges only the changed rows, plus the run start.

Worked costs: a run that delivers 100 product-store rows costs about $0.08; 1,000 rows cost about $0.755. A daily change-mode run that finds 20 changes costs about $0.02.

See the Pricing tab for current prices.

FAQ

How fresh is the stock? Each run reads units and prices at run time; nothing is cached between runs.

Which stores are covered? Staples stores in Canada within the radius you set (up to 250 km), nearest first, up to 25 stores per run.

How do I get daily restock or clearance alerts? Use change mode with a fixed State key, the same location and product list, and a daily schedule. Then send the dataset to a webhook, e-mail or spreadsheet integration.

Why is the discount empty? It is filled only when Staples shows a regular price above the current one. Change mode still reports a price drop since your last run in priceDropFromLastSeen.

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

Output example

{
"productId": "6880465780865",
"variantId": "40125293822081",
"sku": "3099949",
"title": "HP DeskJet 4275e All-in-One Printer with Bonus 3 months Instant Ink",
"brand": "HP",
"url": "https://www.staples.ca/products/3099949-en-hp-deskjet-4275e-all-in-one-printer-with-bonus-3-months-instant-ink",
"image": "https://cdn.shopify.com/s/files/1/0036/4806/1509/files/4608d844b6a72add45285add98eefb837921f2c5_square3099949_1.jpg?v=1776813363",
"storeId": "26",
"storeName": "Staples",
"address": "517 Richmond St. E.",
"city": "Toronto",
"province": "ON",
"postalCode": "M5A 1R4",
"latitude": 43.654142,
"longitude": -79.3644767,
"distanceKm": 3.21,
"storeUrl": "https://stores.staples.ca/on/toronto/office-supplies-ca-26.html",
"quantity": 2,
"stockStatus": "in_stock",
"pickupMessage": "Prêt en 2 h",
"regularPrice": 134.99,
"salePrice": 59.97,
"currency": "CAD",
"priceScope": "retailer_online",
"priceStoreId": null,
"discountPct": 55.6,
"clearance": true,
"saleLabels": [
"clearance_centre|en_CA",
"hp_brand_event|en_CA",
"ink_and_toner_deals_2|en_CA",
"tech_clearance|en_CA"
],
"productDetails": "full",
"observedAt": "2026-11-04T22:35:00.184441+00:00",
"changeType": null,
"changeTypes": [],
"previousQuantity": null,
"previousPrice": null,
"priceDropFromLastSeen": null,
"firstSeenAt": null,
"lastSeenAt": null
}