Catalog Feed Diff: Price, Stock and SKU Change Detector
Pricing
from $0.50 / 1,000 changed catalog rows
Catalog Feed Diff: Price, Stock and SKU Change Detector
Compare two product feeds or price lists (CSV, JSON, XML, Google Merchant) and get every added, removed, repriced and out-of-stock product. Schedule it to monitor a supplier feed.
Pricing
from $0.50 / 1,000 changed catalog rows
Rating
0.0
(0)
Developer
Althor Labs
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Compare two versions of a product feed, supplier price list or catalog export and get one row per product that changed: added, removed, repriced, out of stock, back in stock, or edited (title, brand, any field you choose).
Works with CSV, TSV, JSON, JSON Lines and XML, including Google Merchant (Google Shopping) feeds. Run it once on two files, or schedule it to monitor a supplier feed and get only what changed since the last run.
What you can use it for
- Supplier price list changes. See which wholesale prices went up or down before you update your store.
- Stock monitoring. Catch products that went out of stock or came back.
- Feed QA before upload. Check what a new Google Merchant or marketplace feed changes compared with the one currently live.
- Catalog sync checks. Find SKUs missing from one system after an import.
How to use it
- Give the current feed and the previous feed, as URLs or pasted text.
- Leave the field settings empty. The Actor detects the key (SKU, id, GTIN, handle), price, availability and title fields automatically.
- Run it. Each changed product is a row in the dataset. Export as CSV, Excel or JSON, or send it to Google Sheets, Slack or email with Apify integrations.
Monitoring mode (scheduled)
Turn on Compare against the last saved run and give only the current feed URL. The first run saves a baseline. Every later run compares the feed with the saved baseline, reports the changes, and saves the new version. Use a different Baseline name for each supplier or store. Add an Apify schedule (daily or hourly) and an integration to get the changes delivered.
For a restricted Apify token that can access selected storage resources by ID, provide both Baseline key-value store ID and Monitoring lock request queue ID. The store must be catalog-feed-reconciler-baselines; the queue must match the selected baseline name. The Actor checks each resource name before reading or writing the baseline. Leave both IDs empty for normal name-based access.
In monitoring mode, the stored baseline takes precedence over the previous-feed example in the prefilled input. A baseline advances only after the complete comparison and all dataset rows finish within the run's charge limit. If a run stops at a charge limit, its stored baseline stays unchanged so the next run compares against the last complete snapshot. Rows written before the limit can appear again on that next run.
n8n workflow
Use the Catalog Feed Monitor workflow JSON to seed a baseline, check daily changes, and email changed products. See the template setup notes for import and credential setup. Its n8n template submission is pending review.
Input
- Current feed / previous feed: public HTTP or HTTPS URL (up to 50 MB, gzip supported) or pasted text. Redirects, URL credentials, and feeds behind authentication are not supported. Resolved private or local-network targets are rejected; URL paths and query strings are omitted from run metadata.
- Feed format: detected automatically; can be forced.
- Items path: for JSON documents where the products sit inside a key, such
as
productsordata.items. Detected automatically. - Key, price, availability and title fields: optional overrides. Dot paths
work for nested JSON, for example
variants.0.price. - Other fields to compare: extra columns to watch, such as
brandorimage_link. - Minimum price change (%): ignore small price moves.
- Include unchanged items and include full item data: optional.
Output
One dataset row per changed product:
{"changeType": "price_changed","changeTypes": ["price_changed", "availability_changed"],"key": "G-1","title": "Trail Running Shoe","oldPrice": 89.0,"newPrice": 99.0,"priceChange": 10.0,"priceChangePct": 11.24,"currency": "USD","oldAvailability": "in_stock","newAvailability": "out_of_stock","changedFields": []}
changeType is one of added, removed, price_changed,
availability_changed, fields_changed (or unchanged when requested).
changeTypes lists every change on the item. changedFields lists other
field edits with old and new values.
The run's OUTPUT record in the key-value store has a summary: item counts,
the fields used, counts per change type (including price increases and
decreases, items that went out of stock, items back in stock) and any
warnings.
How values are normalized
- Prices:
$1,299.00,1.299,95 EUR,24,50,USD 12and plain numbers are parsed. Currency is read from symbols or ISO codes. A currency change counts as a price change. - Availability: text such as
in stock,InStock,sold out,preorder,backorder, schema.org URLs, booleans and stock quantities are mapped toin_stock,out_of_stock,preorderorbackorder. - Keys: compared without surrounding spaces and without case differences.
Spreadsheet artifacts like
123.0are treated as123.
Limits
- Up to 500,000 items per feed (default 100,000). Larger feeds are rejected instead of being truncated, which could report false additions or removals.
- Feed URLs must be publicly reachable; authenticated feeds are not supported yet.
- URL redirects are rejected. Each URL fetch has a 60-second total deadline.
- Monitoring runs for the same named baseline are serialized with an Apify request-queue lock. A run that exceeds its lock window will leave the stored baseline unchanged.
- If no key field can be detected, the run stops and lists the columns it saw so you can set Key field.
Pricing
This Actor uses pay-per-event pricing on Apify:
- $0.02 per started 1,000 product items compared across both feeds. The current feed and previous feed both count, including a saved baseline in monitoring mode. This charge applies even when the compared items produce no changed rows.
- $0.0005 per changed product row written to the default dataset.
There is no Actor-start fee. Standard platform usage costs are included in these event prices. Check the Apify listing for current terms.
Support
Open an issue on this Actor's Issues tab with an example of your feed structure (a few rows are enough). We reply within one business day.