Shopify Catalog Delta Monitor — Product, Price & Stock Changes
Pricing
from $0.80 / 1,000 product processeds
Shopify Catalog Delta Monitor — Product, Price & Stock Changes
Monitor public Shopify catalogs and receive deterministic product and variant change events between scheduled observations.
Pricing
from $0.80 / 1,000 product processeds
Rating
0.0
(0)
Developer
Cedric Günther
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
What does Shopify Catalog Delta Monitor do?
Shopify Catalog Delta Monitor turns public storefront catalogs into deterministic product and variant change events. Give it one or more Shopify store URLs and a user-owned Apify key-value store. The first successful run creates a baseline; scheduled runs then emit only meaningful additions, removals, price changes, compare-at-price changes, availability changes, and selected metadata changes.
The Actor is designed for competitor catalog monitoring, retail intelligence, assortment tracking, and automation through the Apify API, schedules, webhooks, and integrations. It uses ordinary public HTTP access only. It does not log in, access Shopify Admin, collect customer or checkout data, solve CAPTCHAs, or attempt to defeat blocking.
Why use Shopify Catalog Delta Monitor?
- Receive machine-readable change records instead of repeatedly downloading and diffing full catalogs.
- Track multiple stores without one failed store terminating the others.
- Keep monitoring state in a key-value store that you select and own.
- Use deterministic event IDs to deduplicate retries downstream.
- Reset or replace a baseline deliberately without generating false changes.
- Optionally export a full normalized snapshot alongside deltas.
How to monitor Shopify catalog changes
- Create a named key-value store in your Apify account for durable baselines.
- Open the Actor's Input tab.
- Add each public storefront URL and a stable
watchId. - Select your baseline key-value store.
- Run once to establish the baseline.
- Create an Apify task and schedule it hourly or daily with the same input.
- Consume
DELTArecords from each run's default dataset or trigger a webhook when the run finishes.
Runs that use the same baseline store and watchId may overlap safely: the Actor serializes them with an exclusive, renewable request-queue lease. A later run waits for the active run to commit before it reads the baseline. Different watches can still run concurrently.
Input
{"stores": [{ "url": "https://example-store.com", "watchId": "example-store" }],"baselineStoreId": "YOUR_KEY_VALUE_STORE_ID","baselineMode": "persistent","includeVariants": true,"emitFullSnapshot": false}
baselineMode accepts:
persistent: compare with the existing baseline and advance it after a complete successful observation.replace: fetch and atomically replace the baseline without emitting deltas.reset: delete this watch's baseline without requesting the storefront.
Advanced inputs control store concurrency, request timeout, inter-page delay, and a fail-closed catalog page limit.
Output
{"recordType": "DELTA","eventId": "2f93cc...","eventType": "VARIANT_PRICE_CHANGED","watchId": "example-store","storeUrl": "https://example-store.com","productIdentity": "id:123","variantIdentity": "id:456","previousValue": "29.99","currentValue": "24.99","detectedAt": "2026-09-15T12:00:00.000Z","context": {"currentProduct": { "id": "123", "handle": "example", "title": "Example" }}}
The dataset can also contain SNAPSHOT, STORE_SUMMARY, STORE_ERROR, and RUN_SUMMARY records. The run's default key-value store contains the aggregate summary under OUTPUT. You can download the dataset as JSON, JSONL, CSV, Excel, XML, RSS, or HTML.
Data table
| Field | Meaning |
|---|---|
eventType | Stable change category such as PRODUCT_ADDED or VARIANT_AVAILABILITY_CHANGED |
eventId | Deterministic SHA-256 transition ID for downstream deduplication |
watchId | User-defined monitoring stream identifier |
productIdentity | Shopify product ID when public, otherwise a documented fallback |
variantIdentity | Shopify variant ID when public, otherwise a documented fallback |
previousValue / currentValue | The changed scalar, range, variant, or product |
context | Compact normalized product context |
detectedAt | Observation time, not the merchant's edit time |
Normalized snapshot products include IDs, handle, URL, title, vendor, product type, stable sorted tags, availability, price ranges, compare-at price ranges, featured image, and optional nested variants. Variants include public ID, title, public SKU, price, compare-at price, availability, and named option values.
How much does it cost to monitor Shopify catalogs?
Monetization is not enabled during private validation. The prepared Store model is pay per event with platform usage included: $0.0008 for each successfully processed product, $0.008 for each persisted delta, and the Apify-managed $0.00005 Actor-start event. Failed stores, retries, snapshot rows, and summary rows are not custom-charged. The code stops starting new storefront work when the run's event budget is reached. These prices apply only after a separately authorized monetization launch; check the Pricing tab for the active configuration.
Advanced reliability notes
Baselines are sharded into bounded records and committed by switching a manifest only after the complete catalog and primary dataset records succeed. Failed, blocked, malformed, stalled, or page-limited observations preserve the prior baseline. Products and variants are sorted by stable identity, and tags/options are normalized so ordering alone does not create changes.
Runs that target the same baseline store, normalized URL, and watchId are strictly serialized with an Apify request-queue lease. A later run waits until the active run finishes, then reads the newly committed baseline before computing deltas. Leases are renewed while work is active and expire automatically after an abandoned run, so a crashed run cannot permanently block a watch. Different watches use different lock queues and remain independently runnable.
Keep the same normalized URL and watchId for a monitoring stream. Changing either intentionally creates a different state key. Use replace after an intentional scope change.
FAQ, limitations, and support
Does this work on every Shopify site? No. Custom storefronts, password-protected stores, stores that disable public catalog routes, robots exclusions, geographic variation, and explicit blocking can prevent or limit access. The Actor reports these conditions and does not bypass them.
Does availability mean inventory quantity? No. It is the public purchasability flag exposed by the storefront. Exact stock quantities are not claimed.
Are changes real-time? Changes are detected between observations. Detection time depends on your schedule and does not prove when the merchant made the edit.
Is scraping legal? You are responsible for your use case and for respecting applicable law, site terms, and robots instructions. Monitor only public product information you are permitted to access.
Use the Actor's Issues tab to report a reproducible storefront compatibility problem. Include the public store URL, run ID, and error code; never include credentials or customer data.