Product JSON-LD Normalizer — Offers, Prices & Variants avatar

Product JSON-LD Normalizer — Offers, Prices & Variants

Pricing

$2.00 / 1,000 results

Go to Apify Store
Product JSON-LD Normalizer — Offers, Prices & Variants

Product JSON-LD Normalizer — Offers, Prices & Variants

Normalize Product, ProductGroup, Offer, and AggregateOffer JSON-LD from one static product page.

Pricing

$2.00 / 1,000 results

Rating

0.0

(0)

Developer

Masatoshi Shimada

Masatoshi Shimada

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

This Apify Actor fetches one public static HTML page and stores exactly one deterministic page result containing normalized Schema.org Product, ProductGroup, Offer, and AggregateOffer JSON-LD.

Input

{
"url": "https://example.com/product/sku-1",
"timeoutSeconds": 15,
"maxResponseBytes": 5242880,
"maxRedirects": 3
}

Only url is required. Unknown fields and non-public destinations are rejected. Every redirect is resolved and SSRF-checked again. The fetcher pins the connection to the checked IP and bounds both compressed and expanded bodies.

Output

A successful fetch pushes exactly one item to the default dataset, including pages with no Product or malformed JSON-LD. Missing values remain null or empty arrays. Prices are parsed without a binary float and emitted as non-exponent decimal strings. Every normalized node and finding includes a deterministic sourcePath.

Finding codes cover malformed JSON-LD, missing products and identifiers, absent or invalid offers, price/currency/availability problems, invalid aggregate ranges, ambiguous scalar fields, and unresolved references.

Supported scope

  • One public HTTP(S) URL and static HTML only
  • application/ld+json top-level objects, arrays, @graph, and embedded hasVariant
  • Product and ProductGroup nodes with embedded Offer or AggregateOffer
  • @type as a string or array

The Actor does not render JavaScript, browse or crawl, use proxies, parse Microdata/RDFa, resolve external @id values, inherit group data into variants, validate live stock, or store raw HTML/JSON-LD. It needs no Secret, API key, paid API, browser, or external service.

Local verification

From this directory with the repository virtual environment available:

..\..\.venv\Scripts\python.exe -m unittest discover -s tests -v
..\..\.venv\Scripts\python.exe -m ruff check .

For a local Actor run, put input in storage/key_value_stores/default/INPUT.json, expose only a local fixture through the test resolver or use an explicitly approved public page, and run apify run. Local tests use fixture HTTP only and cost ¥0.

Release boundary

Human Owner approved Product #2 Public release, Monetization, and $0.002 per successful apify-default-dataset-item on 2026-08-15. Platform activation remains pending candidate build and production verification; this Release Candidate source artifact alone is not a declaration that those settings are active. Paid cloud runs and external spending remain separate approval-gated actions.