Product Page Scraper – Price, Stock & GTIN from Any Store avatar

Product Page Scraper – Price, Stock & GTIN from Any Store

Pricing

from $1.00 / 1,000 product extracteds

Go to Apify Store
Product Page Scraper – Price, Stock & GTIN from Any Store

Product Page Scraper – Price, Stock & GTIN from Any Store

Extract price, currency, stock, SKU, GTIN, brand, rating, images and variants from any online store's product URLs (Shopify, WooCommerce, Magento, BigCommerce, custom). Monitor mode reports price and stock changes. HTTP only, robots.txt respected, $0.001 per product.

Pricing

from $1.00 / 1,000 product extracteds

Rating

0.0

(0)

Developer

Cemal Atakli

Cemal Atakli

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 days ago

Last modified

Categories

Security

Limited permissions

Share

Paste product page URLs from any online store and get clean product JSON: name, brand, price, currency, sale and regular price, availability (InStock / OutOfStock / PreOrder), SKU, GTIN / EAN / UPC, MPN, rating, review count, images, category, seller and variants. The Actor works on Shopify, WooCommerce, Magento, BigCommerce, PrestaShop, Shopware, Wix, Squarespace and custom shops.

Turn on monitor mode and schedule the Actor to get price drops, price rises and stock changes since the last run.

It costs $0.001 per product. Failed URLs are free.

What it does

  1. It fetches each product URL with plain HTTP. There is no browser and no residential proxy. robots.txt is always respected, and each store gets one request at a time, at least 1 s apart.
  2. It reads the structured data the store publishes for Google Shopping:
    • schema.org Product JSON-LD (including ProductGroup / hasVariant and AggregateOffer)
    • microdata
    • RDFa
    • OpenGraph product: tags
  3. It enriches the result from the store's own public product JSON:
    • Shopify /products/<handle>.js: every variant with options, SKU, barcode (GTIN), price, compare-at price and availability.
    • WooCommerce Store API: price range, stock and variations.
  4. It returns one normalised row per URL. Rows record the extractionMethod and the detected platform.

Use cases

  • Price monitoring and competitor tracking: schedule a daily run with monitor: true to get only the products whose price or stock changed.
  • MAP enforcement for brands: check retailer product pages against your minimum advertised price.
  • Dropshipping and catalogue sync: pull supplier prices, stock, GTINs and images into your store or spreadsheet.
  • Comparison sites and affiliate feeds: normalise product data from many small shops into one schema.
  • AI agents: give an agent clean product JSON from a URL instead of raw HTML.

Input example

{
"productUrls": [
"https://www.allbirds.com/products/mens-tree-runners",
"https://mercantile.wordpress.org/product/blue-wordpress-flannel-button-down/",
"https://www.sparkfun.com/sparkfun-redboard-qwiic.html"
],
"includeVariants": true,
"monitor": false,
"maxItems": 100
}

There are two other ways to supply URLs:

  • sitemapUrls: for example https://store.com/sitemap_products_1.xml. Product URLs are selected with urlPattern.
  • datasetId: the output of another Actor, with the field name in datasetUrlField.

Output example

{
"url": "https://www.sparkfun.com/sparkfun-redboard-qwiic.html",
"status": "ok",
"name": "SparkFun RedBoard Qwiic",
"brand": null,
"sku": "DEV-15123",
"gtin": null,
"mpn": "DEV-15123",
"price": 21.95,
"currency": "USD",
"salePrice": null,
"regularPrice": null,
"availability": null,
"image": "https://www.sparkfun.com/media/catalog/product/.../15123-SparkFun_RedBoard_Qwiic-01a.jpg",
"seller": "SparkFun Electronics",
"platform": "magento",
"extractionMethod": "json-ld",
"variantCount": 0,
"variants": [],
"charged": true,
"fetchedAt": "2026-10-28T12:05:10Z"
}

Each variant has these fields: variantId, sku, gtin, name, options (e.g. {"Size": "M", "Color": "Red"}), price, regularPrice, currency, availability, url and image.

Monitor mode adds these fields: changeStatus (new, price-down, price-up, stock-change or unchanged), previousPrice, priceChange, priceChangePercent, previousAvailability and availabilityChanged.

A URL that cannot be extracted becomes a free row with a status explaining why:

  • blocked
  • robots-disallowed
  • no-product-data
  • not-found
  • unsupported-site
  • invalid-url
  • error

Pricing

EventPrice
Product extracted$0.001
Price or stock change (monitor mode, extra)$0.001
Actor start$0.00005
Failed / blocked / unsupported URLfree

How this compares with similar Actors in the Apify Store (prices as listed on 2026-10-28):

ActorPriceMonitor modeVariants
This Actor$0.001 / productyesyes (JSON-LD, Shopify, WooCommerce)
apify/e-commerce-scraping-tool$0.006 / product (free tier) to $0.0005 (Diamond) + $0.0005 / searchnopartial
fetch_cat/ecommerce-product-page-scraper$0.005 start + $0.00039 / itemno–
lofomachines/universal-ecommerce-scraper$0.01 start + $0.004 / itemno–
scrapebench/shopify-change-tracker$0.01 / changeyesShopify only

Supported and unsupported sites

The Actor supports independent online stores and brand shops.

Large retailers and marketplaces whose terms forbid automated extraction are refused, and the refusal is free. The list includes:

  • Amazon, Walmart, eBay, Etsy, Target, Best Buy
  • AliExpress, Alibaba, Temu, Shein
  • Costco, Home Depot, Zalando, Wayfair, Flipkart, Mercado Libre, Shopee, Trendyol

Use their official APIs or affiliate feeds instead.

Some stores block datacenter IPs. Those URLs come back as blocked and are not charged.

You are responsible for having the right to collect and use the data from the sites you enter.

FAQ

Which stores work best? Any store that publishes schema.org Product data, which most stores do for Google Shopping rich results. Shopify and WooCommerce stores also return full variant lists.

Does it render JavaScript? No. It is HTTP only, which makes it fast and cheap. Pages that only build product data in the browser return no-product-data and are free.

How do I track price changes?

  1. Set monitor: true and a monitorKey.
  2. Create a schedule in Apify Console, for example daily.
  3. Each run writes only new and changed products. Turn off onlyChanges to get every product.
  4. Add an Apify webhook or integration to send changes to Slack, email, Google Sheets or n8n.

Why is the currency different from what I see? Some stores switch currency by visitor location. The Actor reports the price and currency the store served to the Apify server.

How fast is it? Up to 10 stores are fetched in parallel by default (maxConcurrency), and each store gets one request about every second.

Use with AI agents (Apify MCP)

Add the Actor to Claude, Cursor or any MCP client through the Apify MCP server (gazidev/product-page-extractor). An agent can call it with a list of product URLs and get normalised JSON back. Every row has price, currency, availability and gtin in the same place, whatever the store platform.