Product Page Scraper – Price, Stock & GTIN from Any Store
Pricing
from $1.00 / 1,000 product extracteds
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
9 days ago
Last modified
Categories
Security
Limited permissionsShare
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
- 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.
- 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
- 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.
- Shopify
- It returns one normalised row per URL. Rows record the
extractionMethodand the detectedplatform.
Use cases
- Price monitoring and competitor tracking: schedule a daily run with
monitor: trueto 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 examplehttps://store.com/sitemap_products_1.xml. Product URLs are selected withurlPattern.datasetId: the output of another Actor, with the field name indatasetUrlField.
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:
blockedrobots-disallowedno-product-datanot-foundunsupported-siteinvalid-urlerror
Pricing
| Event | Price |
|---|---|
| Product extracted | $0.001 |
| Price or stock change (monitor mode, extra) | $0.001 |
| Actor start | $0.00005 |
| Failed / blocked / unsupported URL | free |
How this compares with similar Actors in the Apify Store (prices as listed on 2026-10-28):
| Actor | Price | Monitor mode | Variants |
|---|---|---|---|
| This Actor | $0.001 / product | yes | yes (JSON-LD, Shopify, WooCommerce) |
| apify/e-commerce-scraping-tool | $0.006 / product (free tier) to $0.0005 (Diamond) + $0.0005 / search | no | partial |
| fetch_cat/ecommerce-product-page-scraper | $0.005 start + $0.00039 / item | no | – |
| lofomachines/universal-ecommerce-scraper | $0.01 start + $0.004 / item | no | – |
| scrapebench/shopify-change-tracker | $0.01 / change | yes | Shopify 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?
- Set
monitor: trueand amonitorKey. - Create a schedule in Apify Console, for example daily.
- Each run writes only new and changed products. Turn off
onlyChangesto get every product. - 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.
Related Actors
- Shopify Products Monitor – whole Shopify catalogues with change detection
- WooCommerce Products Scraper – whole WooCommerce catalogues via the Store API
- Shopify Store Analyzer – store-level insights
- Website Change Monitor – text and price changes on any page
- URL Metadata & Schema.org Extractor – all metadata of any URL