Supplier Feed Change Checker — CSV/JSON SKU Diff avatar

Supplier Feed Change Checker — CSV/JSON SKU Diff

Pricing

$0.50 / completed feed comparison report

Go to Apify Store
Supplier Feed Change Checker — CSV/JSON SKU Diff

Supplier Feed Change Checker — CSV/JSON SKU Diff

Compare two supplier catalogs by SKU. Find added, removed and changed products from CSV or JSON snapshots, with clear validation and downloadable JSON and CSV reports. $0.50 per completed comparison.

Pricing

$0.50 / completed feed comparison report

Rating

0.0

(0)

Developer

Autonome Bots

Autonome Bots

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Compare two supplier catalog snapshots and see which products were added, removed or changed. Supply CSV text or flat JSON records, choose a stable identifier such as SKU, and receive a JSON report and a spreadsheet-friendly CSV change table.

Use the results to review a supplier update before importing it into your catalog. Both snapshots come from you; the Actor does not fetch feeds or update your store.

Try a comparison

Paste this synthetic example into the Apify JSON input editor:

{
"comparison": {
"baseline": [
{ "sku": "A-001", "price": "19.99" },
{ "sku": "A-002", "price": "8.00" }
],
"current": [
{ "sku": "A-001", "price": "21.99" },
{ "sku": "A-003", "price": "5.00" }
],
"keyField": "sku",
"fields": ["price"]
},
"rightsConfirmed": true
}

The result contains one added product (A-003), one removed product (A-002), one changed product (A-001) and zero unchanged products. The changed price is recorded as "19.99" before and "21.99" after.

For CSV input, replace either row array with CSV text such as "sku,price\nA-001,19.99\nA-002,8.00\n". Each snapshot can use either supported format. Use comparable value types in both snapshots: CSV values are strings, so a CSV price can differ from a numeric JSON price even when they look alike.

Inputs

FieldPurpose
comparison.baselinePrevious snapshot, as CSV text or an array of flat JSON objects
comparison.currentCurrent snapshot in either supported format
comparison.keyFieldUnique identifier column; defaults to sku
comparison.fieldsOptional non-key fields to compare; omit to compare all observed non-key fields. An empty list compares identifier presence only
comparison.delimiterCSV separator: comma by default, semicolon, or tab ("\t")
rightsConfirmedMust be true; confirms that you have permission to process both snapshots

Use complete snapshots covering the same population. An identifier missing from the current snapshot is reported as removed, even if the cause is an incomplete upstream export. A valid empty current snapshot reports every baseline product as removed. Verify that this is intentional before running a comparison.

Matching rules

Outer whitespace is trimmed from headers, identifiers and string values. Identifiers are case-sensitive. Numeric key 1 and string key "1" match; string key "001" remains distinct. Supply identifiers as strings when leading zeroes matter.

Non-key JSON types remain distinct: numeric 1 differs from string "1". Missing values, null and empty strings are different states. Input row order and JSON property order do not affect the comparison.

Duplicate, missing or empty identifiers stop the comparison with a diagnostic. CSV diagnostic row numbers count data rows, excluding the header. Resolve ambiguous identifiers in the source before trying again.

Limits

LimitMaximum
Combined encoded comparison input2 MiB
Rows per snapshot5,000
Columns per snapshot50
Explicitly selected comparison fields40
Characters per field value4,000
Characters per identifier256
Complete hosted JSON report, including metadata8 MiB
Hosted CSV report8 MiB

These limits apply together. A comparison within the input limits can still produce an oversized report. Reduce the selected fields or divide both snapshots using the same stable identifier partition. Splitting each snapshot independently by row position can create false additions and removals.

Inputs must be flat CSV or JSON records. Nested objects and arrays, Excel files, XML, URLs, credentials, fuzzy matching and currency conversion are not supported. The Actor does not determine the business meaning of a price or availability change.

Results

After a completed run, use the Output links to open:

OutputContents
Default datasetOne comparison summary row with added, removed, changed and unchanged counts
OUTPUTJSON comparison under data, with summary counts, added/removed products, changed fields, normalization information and integrity metadata
OUTPUT-CSVCSV change table with change_type, key, field, before_present, before_json, after_present and after_json columns
RUN-STATUSApplication completion state and any billing or error status available for the run

Unchanged products are counted rather than copied into the change table. A product with several changed fields counts once in the summary and has one CSV row per changed field. Each added or removed product has one CSV row containing its record as JSON. JSON-encoded cells preserve value types, and formula-like CSV cells are escaped for spreadsheet use. Use the JSON report for programmatic processing.

Check the application status before using output from a failed or interrupted run. A partial file alone does not establish a completed report or a confirmed charge. Results describe differences in the data you supplied; they do not verify supplier accuracy or export completeness.

Pricing

US$0.50 per completed comparison report, including a complete report showing no changes. The report charge uses one feed-report-completed event after both JSON and CSV have been saved and verified.

There are no Actor startup or dataset-item charges. Input rejected before the completion charge, or a partial delivery that stops before that charge, incurs no Actor event charge. Platform usage for the run is included in the event pricing; it is not added as a separate run-usage charge. Your Apify subscription and any account charges for retained storage, later API access or downloads, and other services remain subject to your Apify plan. Check the Actor's Pricing tab and your account terms before running it.

Starting a new run is a new comparison and can incur another report charge, even with identical inputs. If a run has an unresolved billing status, retain its run reference and request help before repeating it. Billing questions and refund requests are handled through Apify's applicable process; a refund is not automatic.

Data and privacy

Use only public or authorized, non-sensitive catalog data. Do not submit customer records, credentials, access tokens, payment details, health information or other sensitive personal data.

Apify hosts the supplied input, outputs, run metadata and recovery records. Reports contain values from your snapshots. The comparison code does not write raw catalog rows to application logs; diagnostics use fixed error codes and limited row coordinates. The Actor makes no external model calls, web scraping requests or automatic store updates.

Access, sharing, retention and deletion are governed by the run owner's Apify account and resource settings. Use the native Apify account controls to manage or delete the relevant run and storage resources, and export reports you need before retention expires. This Actor does not set a separate automatic deletion timer. Do not post private input, output or download links in public issues. See Apify storage and retention and resource access rights.

Support and terms

Report product problems through this Actor's Issues tab in Apify. Include the run reference, error code and a small synthetic example that reproduces the problem. Do not include real catalog rows, credentials or private download links in a public issue. Use Apify's support channels for account, platform-access or billing assistance.

Use of the Actor is governed by the Apify Standard Actor Contract, alongside the applicable Apify platform terms. This description explains the service's behavior; it does not replace those terms or add an availability guarantee.

Each comparison requires both snapshots. The Actor does not select a previous baseline, create a schedule or send notifications. You can incorporate its reports into your own workflow using Apify's supported tools.