Shopify Store Monitor: Price Drops, Stock & New Products
Pricing
from $1.00 / 1,000 products
Shopify Store Monitor: Price Drops, Stock & New Products
Track any Shopify store or collection. Get price drops, price increases, back-in-stock, sold-out, new and removed products since your last run, or export the full product catalog with variants, SKUs and prices. No login.
Pricing
from $1.00 / 1,000 products
Rating
0.0
(0)
Developer
Đăng lê
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
13 hours ago
Last modified
Categories
Share
Track any Shopify store or collection and get only what changed since your last run: price drops, price increases, back in stock, out of stock, new products and removed products, down to the exact variant (size, color, SKU). Or switch monitoring off and export the full product catalog with every variant, price, compare-at price and stock status.
The Actor reads the public product feed that every Shopify storefront serves. No login, no cookies, no browser, no proxies.
What you get
- Change monitoring: schedule the Actor daily or hourly and receive one result per product and change type, with old price, new price and % change for each affected variant.
- Pay only for changes: in monitor mode the first run saves a snapshot and returns nothing; later runs return changes only. Watching 10 stores with 20,000 products costs nothing on quiet days.
- Full catalog export: title, vendor, product type, tags, images, options, price range, compare-at price, on-sale flag, stock status and every variant with SKU, options, price and weight.
- Collections: paste a collection URL (
.../collections/sale) to track only that collection. - Filters: title keywords, excluded words, vendors, product types, price range, in-stock only.
- Headless stores: when
www.serves a custom front end, the Actor also tries the bare domain where the Shopify feed lives (and the other way round).
Use cases
- Watch competitor prices and discounts and react the same day.
- Get restock alerts for sold-out sizes or limited drops.
- Spot new product launches and discontinued items at brands you follow.
- Build price history, deal feeds, affiliate catalogs or market research datasets.
- Feed clean product data to spreadsheets, BI tools, CRMs or AI agents.
Input
| Field | Description |
|---|---|
stores | Store domains or URLs (allbirds.com, https://www.gymshark.com) or collection URLs (https://gymshark.com/collections/outlet-10). |
monitorChanges | Off (default): return all products. On: return only changes since the previous run with the same monitorName. |
monitorName | Separate monitors keep separate snapshots, e.g. competitors and restocks. |
changeTypes | Return only some change types: price_drop, price_increase, back_in_stock, out_of_stock, new_product, removed_product. Empty = all. |
minPriceChangePercent | Ignore price changes smaller than this percentage. |
keywords, excludeKeywords | Keep or drop products by words in the title. |
vendors, productTypes | Keep products from these vendors or of these types (exact name, case-insensitive). |
minPrice, maxPrice | Price range for the lowest variant price, in the store's currency. |
onlyAvailable | Catalog mode: keep products with at least one variant in stock. |
includeDescription | Catalog mode: add the product description as HTML and plain text. |
maxResults | Stop after this many results. In monitor mode, changes over the limit are kept and reported in the next run. |
Monitor price drops of at least 10% and restocks at two stores:
{"stores": ["allbirds.com", "https://gymshark.com/collections/outlet-10"],"monitorChanges": true,"monitorName": "competitors","changeTypes": ["price_drop", "back_in_stock"],"minPriceChangePercent": 10}
Export a catalog:
{"stores": ["colourpop.com"],"onlyAvailable": true,"maxPrice": 30}
How monitoring works
- Turn on
monitorChangesand run once. The Actor saves a snapshot of every product and variant to a named key-value store (shopify-monitor-<monitorName>) in your Apify account and returns no results. - Add a schedule (Apify Console → Schedules), for example every day at 8:00.
- Each run compares the store with the last snapshot and returns the changes. Add a store later and it gets its own first snapshot.
Connect the dataset to Slack, email, Google Sheets, Zapier, Make or a webhook to get alerts.
Output
Monitor mode, one item per product and change type:
{"changeType": "price_drop","store": "allbirds.com","storeName": "Allbirds","currency": "USD","productId": 7340901859408,"handle": "womens-allbirds-flip-flop-dusty-pink","title": "Women's Allbirds Flip Flop - Dusty Pink","vendor": "Allbirds","productType": "Shoes","url": "https://allbirds.com/products/womens-allbirds-flip-flop-dusty-pink","imageUrl": "https://cdn.shopify.com/s/files/1/1104/4168/files/A12513_26Q2_Allbirds-Flip-Flop-Dusty-Pink_PDP_LEFT.png?v=1774646345","priceMin": 25,"priceMax": 25,"available": true,"variants": [{ "variantId": 42146889203792, "title": "10", "sku": "A12513W100", "oldPrice": 35, "newPrice": 25, "priceChangePercent": -28.57, "available": true }],"previousCheckAt": "2026-10-23T08:00:00.000Z","detectedAt": "2026-10-24T08:00:00.000Z"}
Catalog mode, one item per product:
{"id": "allbirds.com:7340901859408","store": "allbirds.com","storeName": "Allbirds","currency": "USD","productId": 7340901859408,"handle": "womens-allbirds-flip-flop-dusty-pink","title": "Women's Allbirds Flip Flop - Dusty Pink","vendor": "Allbirds","productType": "Shoes","tags": ["shoprunner"],"url": "https://allbirds.com/products/womens-allbirds-flip-flop-dusty-pink","imageUrl": "https://cdn.shopify.com/s/files/1/1104/4168/files/A12513_26Q2_Allbirds-Flip-Flop-Dusty-Pink_PDP_LEFT.png?v=1774646345","images": ["https://cdn.shopify.com/s/files/1/1104/4168/files/A12513_26Q2_Allbirds-Flip-Flop-Dusty-Pink_PDP_LEFT.png?v=1774646345"],"options": [{ "name": "Size", "values": ["5", "6", "7", "8", "9", "10", "11"] }],"priceMin": 25,"priceMax": 25,"compareAtPriceMax": 50,"onSale": true,"available": true,"variantsCount": 7,"variants": [{ "variantId": 42146889039952, "title": "5", "sku": "A12513W050", "options": ["5"], "price": 25, "compareAtPrice": 50, "available": false, "grams": 455 }],"publishedAt": "2026-03-27T21:03:50.000Z","createdAt": "2026-03-27T21:03:50.000Z","updatedAt": "2026-10-24T09:43:55.000Z","scrapedAt": "2026-10-24T08:00:00.000Z"}
Prices are numbers in the store's currency. Fields the store does not provide are null. A run summary (stores scanned, stores without a public feed, products scanned, changes by type) is saved to the SUMMARY record in the key-value store.
Limits
- Shopify serves at most 25,000 products per store or collection through the public feed. For bigger stores, the Actor scans the first 25,000, does not report removed products, and reports a product as new only if it was published after the previous check. Track collections to cover the rest.
- Stock is in stock / out of stock per variant. Exact inventory counts are not public.
- Stores that are password-protected, have the product feed disabled, or ask for a bot challenge are skipped and listed in
SUMMARY. The Actor does not try to get around them. - Prices are the store's default currency and market. Market-specific prices are not included.
FAQ
Is this legal? The Actor reads only the public product feed that Shopify storefronts serve to every visitor. It does not log in, bypass protections or collect personal data.
How do I know if a site runs on Shopify? Just add it. Sites without a Shopify product feed are listed under storesWithoutShopifyFeed in SUMMARY.
Why did the first monitor run return nothing? It saved the snapshot that later runs compare against. Run it again (or wait for the schedule) to see changes.
Will I miss changes if I set maxResults? No. Changes over the limit are kept out of the snapshot and returned by the next run.