Shopify Product Change Tracker
Pricing
$5.00 / 1,000 result items
Shopify Product Change Tracker
Monitor any Shopify store for new/removed products, price changes and inventory (in/out of stock) — emitted as structured, webhook-ready change-events. Built for scheduled runs. Pay per result.
Pricing
$5.00 / 1,000 result items
Rating
0.0
(0)
Developer
ziv shay
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Monitor any Shopify store and get a clean, machine-consumable feed of change-events — new products, removed products, price changes, and inventory (in/out of stock) flips. Built for scheduled runs + webhooks. Pay per result.
Price-tracking dashboards (Prisync and friends) show you a screen. They don't hand a developer the raw event feed. This actor emits one row per discrete change, in exactly the shape an automation needs:
product_added/product_removedprice_changed(witholdPrice,newPrice,priceDelta,pctChange,direction)came_in_stock/went_out_of_stockcompare_at_changed(sale started/ended;nowOnSale)title_changed
How it works
- Reads the store's public
/products.jsonendpoint (no login, no anti-bot) across all catalog pages. - Compares the catalog to the previous scheduled run (state persists in a named Key-Value store between runs).
- Emits only the changes since last run. On the first run it stores a baseline silently (or, optionally, emits the whole catalog as
first_seen).
Why it's different
- Event feed, not a dashboard. Every row is a single actionable change with before/after fields — ready for a webhook, Slack alert, reprice bot, or drop-watcher.
- Built on the proven Shopify
/products.jsonscraper with a real diff layer on top. - In/out-of-stock detection per variant — catch restocks and sellouts the moment they happen.
Input
| Field | Type | Description |
|---|---|---|
domains | array | Shopify store domains/URLs to monitor (e.g. allbirds.com). |
watch | array | Which change types to emit: added, removed, price, inventory, compareAt, title (default: all). |
emitFirstSnapshot | boolean | Emit the full catalog as first_seen on the first run (default off → first run is a silent baseline). |
maxPagesPerStore | integer | Catalog pages per store (250 products/page). |
proxyConfiguration | object | Apify proxy (recommended). |
Example input
{"domains": ["aquariumcoop.com", "allbirds.com"],"watch": ["price", "inventory", "added"]}
Output
{"shop": "aquariumcoop.com","eventType": "price_changed","productTitle": "Easy Green All-In-One Fertilizer","variantTitle": "8 oz Pump Bottle","sku": "EG-8OZ","oldPrice": "14.99","newPrice": "12.99","priceDelta": -2,"pctChange": -13.34,"direction": "down","url": "https://aquariumcoop.com/products/easy-green","detectedAt": "2026-06-21T13:40:00.000Z"}
{"shop": "aquariumcoop.com","eventType": "came_in_stock","productTitle": "Fluval 307 Canister Filter","variantTitle": "Default","available": true,"price": "189.99","url": "https://aquariumcoop.com/products/fluval-307","detectedAt": "2026-06-21T13:40:00.000Z"}
Schedule + webhook
- Schedule the actor (hourly/daily). The first run stores a baseline; from the second run on, every run emits the changes since the last.
- Add an Apify webhook on run succeeded → your endpoint receives the new change-events. Filter by
eventType.
Pricing
Pay per result — charged per change-event row. Steady-state monitoring of a stable catalog is cheap (no changes → no rows). Turn on emitFirstSnapshot only if you want the initial catalog billed as events.
Built by MoneyMachine. Public /products.json data only; respect each store's terms.