Product Price & Stock Audit + JSON-LD Extractor avatar

Product Price & Stock Audit + JSON-LD Extractor

Pricing

$4.00 / 1,000 product page parseds

Go to Apify Store
Product Price & Stock Audit + JSON-LD Extractor

Product Price & Stock Audit + JSON-LD Extractor

Audit catalog prices and stock against public Product JSON-LD. Match SKU/GTIN, flag differences and unknowns, export flat CSV with source evidence. Or extract offers as JSON. $0.004 per parsed page.

Pricing

$4.00 / 1,000 product page parseds

Rating

0.0

(0)

Developer

uras aydinlioglu

uras aydinlioglu

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Share

Compare your catalog's expected price and availability with the Product JSON-LD published on a public product page. Get MATCH, MISMATCH, or UNVERIFIABLE for each catalog row, with SKU/GTIN, expected and observed values, currency, timestamp and an exact source pointer.

For ecommerce teams and feed agencies checking a catalog before or after a price update. This checks published structured data, not the rendered page, checkout or Google Merchant Center approval.

Try before running a batch

Try the free comparison demo and download input examples. The demo compares editable example data in your browser; it does not crawl websites or send your data to us.

Audit mode

Provide catalog with 1–100 rows spanning at most 30 unique URLs. Each row needs a sku or gtin and at least one expected value. Use strings for identifiers to preserve leading zeros.

{
"catalog": [{
"id": "campaign-row-1",
"url": "https://scrapeme.live/shop/Bulbasaur/",
"sku": "4391",
"expectedPrice": "63.00",
"currency": "GBP",
"expectedAvailability": "in_stock"
}]
}

This public demo-store input is a starting example; the page can change. Replace it with your own catalog values. expectedPrice accepts plain nonnegative decimals with up to six decimal places, without currency symbols or thousands separators. currency is required with a price. Stock values: in_stock, out_of_stock, preorder, backorder. Prices compare exactly; currencies are never converted. Use the currently effective sale price when applicable.

What makes a result trustworthy?

  • SKU matching is exact and case-sensitive. GTIN matching preserves digits and normalizes leading-zero padding. When both identifiers are supplied, both must match.
  • Multiple matching products, multiple offers, aggregate price ranges, truncated extraction, missing identifiers and missing fields are reported explicitly. The Actor never guesses which variant or cheapest offer you meant.
  • MATCH means every requested field matched. MISMATCH means at least one definite difference; another field can still be unknown. Check the individual priceStatus and availabilityStatus.
  • Each verifiable offer includes the source script index and JSON Pointer. Network failures are separate from product differences.

Results and CSV

The default dataset contains one row per unique page, with normalized products and an audits array. The run's key-value store contains AUDIT_REPORT (flat JSON), AUDIT.csv (flat spreadsheet-ready report), and SUMMARY (counts by verdict and any spending-limit stop). Open them from the run's Output tab. A spending cap can stop the run before every input is processed; inspect SUMMARY.stopReason.

CSV columns include id, sku, verdict, expectedPrice, observedPrice, priceDelta, both currencies, expected/observed availability, reasons, timestamp and source evidence. Leading formula characters are escaped for safe spreadsheet import.

Extraction mode — existing inputs still work

{"urls":["https://scrapeme.live/shop/Bulbasaur/"],"maxItems":50}

Returns Product names, brand, SKU/GTIN, offers, images and source evidence. maxItems limits products per page (1–50). Both modes can be combined; repeated URLs are fetched once within a run.

Pricing

$0.004 per successfully parsed page with at least one Product record ($4 per 1,000 such pages). One page can contain multiple catalog rows or products, for the same page charge. An audit may be UNVERIFIABLE and still incur this page charge if Product data was extracted. Empty pages, blocked requests and fetch failures have no Actor event charge. Apify platform charges and the price shown for your plan in Console apply. Set a maximum charge before running.

Repeat and automate

Save the input as an Apify Task, then create an Apify Schedule for a recurring audit. Refresh the expected values when your catalog changes; a saved input is a snapshot and does not sync automatically. Read the output through the Apify API or download CSV. Download a Python API runner and JSON examples.

Coverage and limits

Reads public, server-delivered HTML and Product JSON-LD only. No JavaScript rendering, login, proxy bypass, Microdata, checkout verification, geolocation or inventory quantities. A successful comparison does not guarantee Merchant Center approval or agreement with the visible page. Source JSON-LD can itself be stale. Public IPv4 HTTP(S) only; robots.txt is respected. No LLM API key or external AI service is needed.

Help and evidence

Use this Actor's Issues tab to report an unsupported public page. Include a reproducible URL and redacted input/output; never post API tokens or private catalog data. We do not promise a response-time SLA.

Google documents the underlying issue: mismatched product price. This Actor is independent of Google and Apify.