Product Catalog Diff by SKU | Revenue Pilot
Pricing
$50.00 / 1,000 comparison completeds
Product Catalog Diff by SKU | Revenue Pilot
For catalog-import reviewers: compare two complete JSON product catalogs by SKU. Get added, removed and field-level changes, a summary and detailed JSON. USD0.05 per completed comparison, including no changes. No CSV, Excel or URL input. Run without individual approval.
Pricing
$50.00 / 1,000 comparison completeds
Rating
0.0
(0)
Developer
Revenue Pilot
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
2 days ago
Last modified
Categories
Features
Share
Product Snapshot Diff
Compare an earlier and a later product catalog. Get added products, removed products and field-level changes in one JSON result. Use it after collecting two snapshots, or before reviewing a catalog import.
Current availability
This version supports general use without individual approval. Processing can be paused by the operator; a paused run does not start a new comparison or submit a new comparison charge after the pause is detected. Requests already sent before detection cannot be guaranteed to be cancelled. Review the current availability and Pricing tab before starting. A completed comparison can incur a charge even when it finds no changes.
Each row needs a unique string identifier, such as sku. Input order does not
affect the comparison. A missing field and a field containing null are
different; boolean and numeric values are also different. Nested objects are
compared as field values. Arrays inside a field preserve their order.
Input
Supply before, after, key, before_complete, and after_complete.
Only mark a snapshot complete if the upstream collection has finished.
The Actor cannot independently verify that declaration.
Limits: 10,000 rows per snapshot, 5 MiB input JSON, and 16 MiB result JSON.
Identifiers must be strings; use "00123" when leading zeros matter.
URLs, CSV files and Excel files are not accepted in this version.
Example 1: price change, added product, removed product
{"key": "sku","before_complete": true,"after_complete": true,"before": [{"sku":"A","price":100},{"sku":"B","price":200}],"after": [{"sku":"A","price":110},{"sku":"C","price":300}]}
The result has status: "completed", counts of one added, one removed and
one changed product, and a changes array containing the affected fields.
Example 2: identical snapshots
{"before_complete": true,"after_complete": true,"before": [{"sku":"A","price":100}],"after": [{"sku":"A","price":100}]}
The result is completed with an empty changes array. A completed comparison
is a billable event even when it finds no changes.
Example 3: an unexpected empty snapshot
{"before_complete": true,"after_complete": true,"before": [{"sku":"A","price":100}],"after": []}
The result is held with empty_after_requires_explicit_intent, with no
comparison event charged. If the empty catalog is intentional, set
allow_empty_after: true to receive the removal list.
Retrieve the result
Open the run's default key-value store and read the OUTPUT record as JSON.
The API equivalent is GET /v2/key-value-stores/{storeId}/records/OUTPUT.
Use the authenticated access method shown by Apify for your run.
For a completed comparison, the run's dataset also contains one summary row
with the added, removed and changed counts. That row is not the full list of
changes; use OUTPUT for the field-level details. Dataset storage or later
exports can incur platform usage charges under your Apify plan.
completed means a valid comparison was produced. held means the completeness
or empty-input declaration needs attention. rejected means an input limit or
validation rule was violated. Check reason for held or rejected results.
Charging and retries
One completed comparison costs USD 0.05 under the existing comparison-completed event. Confirm the active Pricing tab before running. Set the run's maximum charge to at least that amount. Held and rejected comparisons do not trigger the comparison event. There is no per-row comparison event.
The result is saved before the comparison event is submitted. Restarts of the same run do not deliberately resubmit an uncertain charge. Starting a new run is a new comparison and can incur a separate charge; retrieve the existing run before submitting again. If an event's status is uncertain, the system leaves it for reconciliation instead of charging again.
Data handling
Input and output are processed in the run and stored in Apify's run storage. This Actor does not send product data to a language model or fetch product pages. It does not change your catalog, stock, or prices. Use only data you are authorized to process. Avoid personal information and secrets in product rows.
Support
Use this Actor's Issues tab for reproducible defects. Include the error reason and a minimal example with invented product values. Do not post credentials, private catalog records, or private run links in a public issue.