Shopify & WooCommerce Store Scraper ⚡ Products, Prices, Stock
Pricing
from $1.00 / 1,000 product rows
Shopify & WooCommerce Store Scraper ⚡ Products, Prices, Stock
Extract all products from any Shopify or WooCommerce store: prices, discounts, availability, variants, images, dates. Plus one summary row per store (currency, country, total products, price stats, share on sale / sold out, top brands, theme). No login, no proxies. Pay per product.
Pricing
from $1.00 / 1,000 product rows
Rating
0.0
(0)
Developer
Pulse Lab
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Shopify & WooCommerce Store Scraper – Products, Prices, Stock, Store Info
Give it a list of store URLs and get back every product with prices, discounts, availability, variants and images – plus a one-row summary per store (currency, country, total products, price range, share on sale, share sold out, top brands, theme).
Works with Shopify stores (via the public products.json / meta.json endpoints) and WooCommerce stores (via the public Store API). No login, no API key, no proxies, no HTML scraping of product pages – so it is fast and reliable, and the data is exactly what the store publishes.
What it does
- Detects the platform for each URL: tries Shopify's
products.json, then the WooCommerce Store API, then checks the homepage for platform signals. - Checks
robots.txtof the store and skips stores that disallow the endpoint it would use (reported asBLOCKED_BY_ROBOTS, not charged). - Fetches the catalog page by page (250 products per request on Shopify, 100 on WooCommerce) and normalizes every product into one common row.
- Writes a store summary row: platform, store name, currency, country/city (Shopify), total products and collections, price min / max / average / median, number and share of products on sale, average discount, share sold out, top brands / product types / categories / tags, newest product date, products added in the last 30 days, theme name, shipping countries, Shop Pay installments.
Optional: inventory quantity per variant (Shopify, via each product's .js endpoint), descriptions, and filters for keywords, on sale, available and updated after a date (new products / price changes since your last run).
Use cases
- Competitor price monitoring – run daily with
updatedAfterto catch price drops, new products and sell-outs. - Dropshipping & product research – find what a store sells, which products are discounted, which are sold out, how many variants.
- Lead generation / market research – store summaries tell you size (product count), price positioning, platform and theme.
- Catalog export – pull a clean product list from any store for feeds, spreadsheets or comparison tools.
Input
| Field | Description |
|---|---|
storeUrls (required) | Store homepages or domains. Platform is auto-detected. |
maxProductsPerStore | Max product rows saved per store (default 500, max 20,000). |
keywords | Keep only titles containing one of these words. |
onlyOnSale | Keep only discounted products. |
onlyAvailable | Keep only products with at least one purchasable variant. |
updatedAfter | Keep only products created/updated on or after this date (Shopify only – the WooCommerce Store API has no dates). |
includeDescription | Also store the description (text + HTML). |
includeInventory | Shopify only: fetch exact inventory quantity per variant (one extra request per product). |
includeStoreSummary | Add the store summary row (default on). |
Example:
{"storeUrls": ["allbirds.com", "https://colourpop.com", "kyliecosmetics.com"],"onlyOnSale": true,"maxProductsPerStore": 1000}
Output
Two dataset views:
Products – one row per product (type: "product"):
platform, store, storeName, productId, title, handle, url, brand, productType, tags, categories, currency, price, priceMax, compareAtPrice, onSale, discountPercent, available, variantCount, availableVariantCount, totalInventory, variants[], images[], imageCount, mainImage, rating, reviewCount, createdAt, publishedAt, updatedAt, descriptionText, descriptionHtml, sku, stockStatus, onBackorder, checkedAt
Each entry in variants[] has id, title, sku, price, compareAtPrice, available, options[], inventoryQuantity, inventoryPolicy, grams.
Store summaries – one row per store (type: "store"):
store, status, platform, storeName, url, currency, country, city, province, myshopifyDomain, theme, productCount, collectionCount, productsFetched, productsMatched, priceMin, priceMax, priceAvg, priceMedian, onSaleCount, onSaleShare, avgDiscountPercent, availableCount, soldOutShare, topBrands[], topProductTypes[], topCategories[], topTags[], newestProductAt, latestUpdateAt, productsAddedLast30Days, shipsTo[], shopPayInstallments, checkedAt
status values: OK, PRODUCT_API_DISABLED (platform detected but the public product endpoint is turned off – common for big "headless" brands), BLOCKED_BY_ROBOTS, PLATFORM_NOT_FOUND, ERROR, INVALID_INPUT.
Example product row (Shopify):
{"type": "product","platform": "shopify","store": "gymshark.com","storeName": "Gymshark US","title": "Gymshark Leather Lifting Straps - Spiced Brown","url": "https://gymshark.com/products/gymshark-leather-lifting-straps-equipment-brown-aw25","productType": "Unisex>Accessories>Equipment>lifting_straps","currency": "USD","price": 19.6,"compareAtPrice": 28,"onSale": true,"discountPercent": 30,"available": true,"variantCount": 1,"availableVariantCount": 1,"variants": [{ "id": "39795354009802", "title": "Default Title", "sku": "I1B6R-NC52-OS", "price": 19.6, "compareAtPrice": 28, "available": true }],"imageCount": 3,"createdAt": "2025-01-20T16:04:31.000Z","updatedAt": "2026-10-20T03:09:06.000Z"}
Example store summary row:
{"type": "store","store": "colourpop.com","status": "OK","platform": "shopify","storeName": "ColourPop","currency": "USD","country": "US","productCount": 1063,"collectionCount": 190,"priceAvg": 26.83,"priceMedian": 16,"onSaleShare": 0,"soldOutShare": 3.33,"theme": "Colourpop/Main","shipsTo": ["AD", "AE", "AF", "…", "ZW"]}
Pricing
Pay per event – you only pay for what is found:
- product – one product row saved
- store – one store summary row
Stores that are not Shopify/WooCommerce, have their product endpoint disabled, or disallow it in robots.txt are reported for free. Platform usage is included in the event price.
Limitations (please read)
- Only stores whose public product endpoint is enabled return products. Large brands running custom "headless" storefronts (e.g. Fashion Nova, Tesla Shop) disable it – they come back as
PRODUCT_API_DISABLED. The actor also tries thewww./ non-www.variant of the domain, which is enough for some brands (e.g.gymshark.comworks whilewww.gymshark.comis headless). - Shopify prices are in the store's own currency (from
meta.json); the WooCommerce Store API returns prices with their currency code. No currency conversion is done. totalInventoryand variantinventoryQuantityare filled only withincludeInventory(Shopify). Many stores hide exact quantities;availableis always reliable.- The WooCommerce Store API has no created/updated dates, so
updatedAftercannot filter WooCommerce products;rating/reviewCountexist only for WooCommerce. - This actor respects
robots.txt. If a store disallows the endpoint, nothing is fetched.