Shopify Product Change Tracker avatar

Shopify Product Change Tracker

Pricing

$5.00 / 1,000 result items

Go to Apify Store
Shopify Product Change Tracker

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

ziv shay

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

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_removed
  • price_changed (with oldPrice, newPrice, priceDelta, pctChange, direction)
  • came_in_stock / went_out_of_stock
  • compare_at_changed (sale started/ended; nowOnSale)
  • title_changed

How it works

  • Reads the store's public /products.json endpoint (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.json scraper with a real diff layer on top.
  • In/out-of-stock detection per variant — catch restocks and sellouts the moment they happen.

Input

FieldTypeDescription
domainsarrayShopify store domains/URLs to monitor (e.g. allbirds.com).
watcharrayWhich change types to emit: added, removed, price, inventory, compareAt, title (default: all).
emitFirstSnapshotbooleanEmit the full catalog as first_seen on the first run (default off → first run is a silent baseline).
maxPagesPerStoreintegerCatalog pages per store (250 products/page).
proxyConfigurationobjectApify 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

  1. Schedule the actor (hourly/daily). The first run stores a baseline; from the second run on, every run emits the changes since the last.
  2. 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.