Shopify Store Monitor: Product Prices & Stock Changes avatar

Shopify Store Monitor: Product Prices & Stock Changes

Pricing

from $0.64 / 1,000 product returneds

Go to Apify Store
Shopify Store Monitor: Product Prices & Stock Changes

Shopify Store Monitor: Product Prices & Stock Changes

Watch public Shopify catalogues for new products, price changes and stock status via /products.json. Non-Shopify, blocked or password-protected stores are reported as skipped rows — never a silent empty success.

Pricing

from $0.64 / 1,000 product returneds

Rating

0.0

(0)

Developer

Southern Data

Southern Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

14 hours ago

Last modified

Security

Limited permissions

Share

Read a Shopify store’s public catalogue (/products.json) and get structured product rows — title, vendor, price range, compare-at price, stock status and the product URL. Optional monitor mode remembers the last catalogue so a daily schedule only returns new products, removals, price changes and stock changes.

If a domain is not Shopify, is password-protected, is blocked, or really has zero products, you get a skipped or empty row that says so. The run never reports a silent success with zero unexplained rows.

Limits (read these first)

  1. Public catalogue only. This Actor reads /products.json (or /collections/{handle}/products.json). It does not log in, does not bypass a store password, and does not copy checkout or customer data.
  2. About 250 products per page, capped per store. Default cap is 2,000 products per store (maximum 5,000). Shopify’s public feed itself often stops around 10,000 products, so very large catalogues are incomplete by design.
  3. One row per product, not per variant. price is the lowest variant price, priceMax the highest, and available is true if any variant is in stock. Variant-level detail is not written as separate rows.
  4. Headless or custom storefronts may not expose /products.json. Those stores are reported as skipped (not_shopify or not_json) rather than guessed.
  5. Respect the merchant. This is for watching public prices and stock — not for copying a store wholesale. Keep request volume reasonable (this Actor already pauses between pages).
  6. Monitor first run returns a full snapshot. In mode=changed, the first run saves a baseline and returns every product (changeType=baseline) so you can see the catalogue. Later runs return only changes.

Quick start

{
"stores": ["allbirds.com", "https://www.gymshark.com"],
"mode": "all",
"maxProducts": 200
}

Daily competitor watch (schedule this):

{
"stores": ["allbirds.com", "https://www.gymshark.com"],
"mode": "changed",
"monitorName": "competitors-daily"
}

First scheduled run: full snapshot + baseline saved. Later runs: only new products, removals, price moves and stock changes.

A collection URL limits the scrape to that collection:

{
"stores": ["https://allbirds.com/collections/mens"]
}

Output fields

FieldMeaning
statusok, skipped, or empty
reason / reasonCodeWhy a store was skipped (not_shopify, password_protected, blocked, empty_catalogue, …)
store, title, vendor, urlProduct basics
price, priceMax, compareAtPriceLowest / highest variant price and lowest “was” price
available, variantCount, availableVariantCountStock summary
previousPrice, previousAvailable, changeType, priceDeltaSet in monitor mode (baseline / new / price_drop / price_rise / sold_out / back_in_stock / removed)

Pricing (pay per event)

EventPriceWhen
actor-start$0.001Once per run, after the first successful Shopify catalogue fetch
store-check$0.005Each store whose public catalogue was fetched (including a genuine empty catalogue)
product$0.0008Each product row in mode=all, and each snapshot row on the first changed run
change$0.002Each change / new / removed row on later changed runs

Store discount tiers: free-plan and Bronze users pay the prices above. Silver gets 10% off and Gold (and higher) gets 20% off.

Free: invalid / empty input (exit 0, $0), skipped stores (not Shopify, password-protected, blocked, network errors), unchanged products in monitor mode.

Typical cost to snapshot one 200-product store: $0.001 + $0.005 + 200×$0.0008 = $0.166. A later monitor run of that store with 8 changes: $0.001 + $0.005 + 8×$0.002 = $0.022.

Tips

  • Set monitorName and keep it stable when using Apify Schedules.
  • Cap spend with Apify’s maxTotalChargeUsd on the run or task.
  • Prefer specific collection URLs when you only care about one category.
  • Default memory is 512 MB — enough for this Actor.

Self-test

Set "selfTest": true to run offline checks of parsing, skip reasons, pagination and change detection. Used by our daily health schedule.