Product Schema Checker – Rich Results & AI Shopping, Bulk avatar

Product Schema Checker – Rich Results & AI Shopping, Bulk

Pricing

$2.00 / 1,000 page checkeds

Go to Apify Store
Product Schema Checker – Rich Results & AI Shopping, Bulk

Product Schema Checker – Rich Results & AI Shopping, Bulk

Bulk-validate schema.org Product JSON-LD on product pages: price, availability, GTIN, reviews, shipping. 0–100 score + fix hints. $2 per 1,000.

Pricing

$2.00 / 1,000 page checkeds

Rating

0.0

(0)

Developer

Fast Data

Fast Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 hours ago

Last modified

Share

Product Schema Checker – JSON-LD & AI Shopping Readiness

Check any product page for schema.org Product structured data and find out whether it has what Google merchant listings and AI shopping agents (ChatGPT Shopping, Perplexity, Gemini, Copilot) need. You get a 0-100 score, the missing fields and short fix hints for each URL.

What it does

For every URL you give it, the actor:

  1. Fetches the public HTML over plain HTTP. It uses no browser, no login and no bot-protection bypass, so it is fast and cheap.
  2. Extracts all structured data: JSON-LD (including @graph), microdata, RDFa and Open Graph.
  3. Finds the main Product or ProductGroup, including its variants, AggregateOffer and priceSpecification.
  4. Validates the fields Google and AI agents rely on:
    • Required: name, image, offers.price, offers.priceCurrency, offers.availability
    • Recommended: brand, gtin/mpn (+ sku), description, aggregateRating, review, itemCondition, shippingDetails, hasMerchantReturnPolicy (on the offer or on the Organization), url
  5. Returns one flat, AI-friendly row per URL with the score, grade, missing fields and copy-paste fix hints.

Who it's for

  • Shopify, WooCommerce, Magento and other store owners who want their products shown in Google Shopping and AI shopping answers
  • SEO agencies auditing product pages for many clients at once
  • Developers adding a structured-data check to CI or monitoring
  • Competitive research: see how big retailers mark up their products

Why use this instead of the alternatives

  • Bulk. Google's Rich Results Test checks one URL at a time by hand. This actor checks hundreds with one API call.
  • Built for AI shopping readiness. It checks shipping details, return policy and GTINs, which AI agents need to compare products across stores. Generic metadata scrapers don't check these.
  • Flat output. Every field is a column, ready for Sheets, BI tools, n8n or an LLM.
  • Fair price. You pay only for pages where a Product was found and checked. Pages without product markup, 404s, timeouts and bot-challenge pages are free.

Input example

{
"startUrls": [
"https://hydrogen.shop/products/the-full-stack",
"https://www.apple.com/shop/buy-iphone/iphone-16",
"https://www.allbirds.com/products/mens-tree-runners"
],
"maxConcurrency": 5
}

Optional: maxRetries (default 1) and proxyConfiguration, if a site rate-limits data-center IPs. Pages that need JavaScript to render their structured data, or that serve a bot challenge, are reported as error or score 0 and cost nothing when blocked.

Output example

These values come from a real run:

{
"url": "https://www.allbirds.com/products/mens-tree-runners",
"status": "ok",
"httpStatus": 200,
"schemaTypes": ["ProductGroup", "Brand", "Offer", "Product", "AggregateRating"],
"syntaxesFound": ["json-ld", "opengraph"],
"productType": "ProductGroup",
"name": "Men's Tree Runner",
"brand": "Allbirds",
"sku": "MENS_TREE_RUNNERS",
"gtin": null,
"price": 100,
"priceCurrency": "USD",
"availability": "InStock",
"hasShippingDetails": false,
"hasReturnPolicy": false,
"missingRequired": [],
"missingRecommended": ["productIdentifier", "aggregateRating", "review", "shippingDetails", "hasMerchantReturnPolicy"],
"score": 73,
"grade": "C",
"googleMerchantEligible": true,
"fixHints": [
"Only \"sku\" found: add \"gtin\" (or \"mpn\") so Google and AI agents can match the product across stores.",
"Add \"aggregateRating\" with ratingValue and reviewCount (only if reviews are shown on the page).",
"Add at least one \"review\" (only if reviews are shown on the page).",
"Add \"shippingDetails\" (OfferShippingDetails with shippingRate, shippingDestination, deliveryTime) to the Offer.",
"Add \"hasMerchantReturnPolicy\" (MerchantReturnPolicy with applicableCountry, returnPolicyCategory, merchantReturnDays) to the Offer or Organization."
]
}

Other results from the same run: the Shopify Hydrogen demo store snowboard scored 70 (no GTIN, shipping or return policy). Apple's iPhone 16 page scored 68: it has shipping and return policy markup, but the offer has no availability and the product has no brand.

Other output fields: finalUrl, productCount, isProductPage, ogType, ogPrice, mpn, itemCondition, offerCount, variantCount, imageCount, image, description, ratingValue, reviewCount, checkedAt, error.

Scoring

Each required field is worth 12 points (60 in total). The recommended fields add up to 40 points: shipping details 8, return policy 7, GTIN/MPN 6, brand 5, rating 4, description 3, condition 3, review 2, url 2. Grades: A ≥ 90, B ≥ 75, C ≥ 60, D ≥ 40, F below that.

Pricing

Pay per event: $0.002 per checked product page ($2 per 1,000 pages). Pages without Product markup and failed, blocked or unreachable URLs are not charged.

Use via API, n8n or MCP

API (synchronous, returns the items):

curl -X POST "https://api.apify.com/v2/acts/fast_data_asap~product-schema-checker/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"startUrls":["https://www.allbirds.com/products/mens-tree-runners"]}'

n8n / Make / Zapier: use the Apify node or app, choose Run Actor with fast_data_asap/product-schema-checker, and pass startUrls. Then read the dataset items.

MCP (Claude, Cursor, other AI agents): add the server https://mcp.apify.com?tools=fast_data_asap/product-schema-checker. Your agent can then audit product pages on its own.

Limits

The actor reads only publicly available HTML and collects no personal data. Some large retailers block automated HTTP requests or render their markup with JavaScript. Those URLs come back with status: "error" or a score of 0 and are free.