Product Page Scraper: Price, Stock, Brand from Any Shop
Pricing
$2.00 / 1,000 products
Product Page Scraper: Price, Stock, Brand from Any Shop
Extract product name, price, currency, stock status, brand, SKU, GTIN, rating and image from product pages of almost any online shop, using the structured data shops publish for Google (schema.org). Category pages, price-change tracking for monitoring. $2 per 1,000 products.
Pricing
$2.00 / 1,000 products
Rating
0.0
(0)
Developer
SwiftKit
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Give it product pages from almost any online shop and get clean product rows: name, price, currency, stock status, brand, SKU, GTIN/barcode, MPN, rating, review count, image, category, description and seller. Turn on price tracking and schedule it to see what got cheaper, more expensive or went out of stock since the last run.
How it works: most shops publish structured product data in their pages (schema.org JSON-LD, the same data Google uses for shopping results). The tool reads that first, then microdata, then Open Graph product tags. No site-specific scraping, so it works across Shopify, WooCommerce, Magento, BigCommerce, custom shops and big retailers that publish the data.
- Category pages: turn on "Find product links" and paste a category or search page; product links on it are collected and extracted
- Price tracking: previous price, change, % change and "availability changed" per product
- Polite by design: respects robots.txt, a few pages at a time, and stops at bot checks or waiting-room pages instead of trying to get around them
Who it's for
- Ecommerce teams: watch competitors' prices and stock on the products that matter.
- Brands and distributors: check how retailers price and list your products (GTIN matching).
- Affiliates and comparison sites: keep prices and availability up to date.
- Analysts: price and rating snapshots across shops.
Input
| Option | Default | What it does |
|---|---|---|
| Product or category pages | – | URLs from any shop |
| Find product links on category pages | off | Follow product links on listing pages |
| Max products | 200 | Stop after this many |
| Track price changes | off | Compare with the previous run |
| Price history name | default | Separate histories |
| Include description | on | Plain-text description |
| Respect robots.txt | on | Skip disallowed pages |
| Pages at once | 4 | Concurrency |
Output
A real result:
{"url": "https://www.zappos.com/p/crocs-classic-clog-black/product/7153812/color/3","status": "ok","name": "Classic Clogs","brand": "Crocs","price": 49.99,"currency": "USD","availability": "InStock","rating": 5,"source": "json-ld","site": "zappos.com"}
With price tracking on, rows also have previousPrice, previousCheckAt, priceChange,
priceChangePct and availabilityChanged.
| status | Meaning |
|---|---|
ok | Product extracted. |
no_product_data | The page has no structured product data. Not charged. |
blocked_by_bot_protection | The shop showed a bot check or waiting room. Not charged. |
blocked_by_robots_txt | The shop asks bots not to visit. Not charged. |
unreachable | The page didn't load (e.g. 403/404). Not charged. |
Use it from your AI agent (MCP)
Claude, Cursor and other MCP clients can call this tool directly through Apify's MCP server. Add it as an MCP server / connector:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=swiftkit/product-pages","headers": { "Authorization": "Bearer <YOUR_APIFY_TOKEN>" }}}}
Then just ask, for example: "What do these three product pages charge, and are they in stock? …". Each call is billed like a normal run.
Pricing
You pay per product extracted. Every other status is free. See the Pricing tab.
Limits, honestly
- Works when the shop publishes structured data in its HTML (most do, because Google rewards it).
Shops that build pages only with JavaScript, or that block bots (many large retailers), return
no_product_dataorblocked. That's the shop's choice, and the tool respects it. - When a page lists several variants, the price is the lowest variant price (and
priceMaxthe highest). - Shops may show prices in the visitor's local currency. Runs come from Apify's servers (mostly the US), so you usually see USD for international shops.
- Reviews' text and reviewer names are not collected.
- You're responsible for how you use the data; respect each shop's terms.
More tools from SwiftKit
- Shopify Store Products: every product of a Shopify store in one run
- Website Change Monitor: watch any page for text changes
- Tech Stack Detector: which ecommerce platform a shop runs on
Questions?
Open an issue on the Issues tab.