WooCommerce Scraper: Products, Prices & Reviews
Pricing
$2.00 / 1,000 products
WooCommerce Scraper: Products, Prices & Reviews
Scrape products from any WooCommerce store: prices, sale prices, variation prices, stock, images, categories and reviews. Search and filter by keyword, category, price or sale. Many stores per run. $2 per 1,000 products.
Pricing
$2.00 / 1,000 products
Rating
5.0
(1)
Developer
Sourabh Kumar
Maintained by CommunityActor stats
0
Bookmarked
31
Total users
2
Monthly active users
16 days ago
Last modified
Categories
Share
WooCommerce scraper: products, prices, variations, reviews & stock
Paste one or more WooCommerce store URLs and get every product as clean data. Prices, sale prices, stock, images, categories, and each size or colour's own price and SKU.
$2 per 1,000 products. No per-run fee. Variation prices and reviews cost nothing extra.
Works on stores in any country and currency. No login, API key, or proxy setup needed.
Real prices for every size and colour
Most WooCommerce scrapers give you one price per product. For anything sold in sizes or colours, that's just the cheapest option.
This one gives you the lowest and highest price on every product. Turn on Variation prices and every size or colour also gets its own price, SKU and stock. A tile sold from a free sample up to £13.68 a piece shows up as exactly that, not as "£0".
It also keeps going when a store switches off its product feed. It reads the product pages instead, so you still get products where other scrapers return nothing.
What you can pull
| Use it for | Give it | You get |
|---|---|---|
| A whole catalog | a store URL | every product with prices, stock, images, categories, tags, brands, attributes |
| Many stores at once | a list of store URLs | one dataset, with each row tagged by store |
| Deals and price bands | on sale only, min and max price | only the products that match, and you pay only for those |
| One category or search | a category slug or a search word | that slice of the catalog |
| Stock checks | a stock status | in stock, out of stock or backordered products, including sold-out items some stores hide |
| Size and colour prices | Variation prices on | each option's own price, SKU, stock and image |
| Customer reviews | Reviews on | the newest reviews per product, with rating, date and verified-buyer flag |
Top use cases
Competitor price monitoring
Put your competitors' stores in one list and schedule a daily run. Each product comes with its price, regular price, sale price and discount percentage, so price drops and new sales show up the next morning. Turn on Variation prices when rivals price sizes differently. The cheapest size alone hides most of the story.
Deal and sale tracking
Switch on On sale only and set a Max price, and a run returns just the discounted products under your budget. The filter runs inside the store, so you only pay for the matches.
Stock and availability alerts
Every row says in stock, out of stock or on backorder, and each size or colour does too with Variation prices on. Stores that hide sold-out items from their catalog still return them here. That's the difference between "we don't sell this" and "it's out of stock right now".
Catalog export and migration
Copy a whole store into a spreadsheet, a product feed, or a new platform. You get SKUs, descriptions, all image URLs, categories, attributes, weight and dimensions in one pass. Descriptions come back as clean text, with no leftover HTML.
Review and sentiment research
Turn on Reviews to pull the newest reviews for every product: reviewer, rating, date, verified-purchase flag and the full text. Good for spotting product problems, or for comparing how two brands are rated.
Market research across a niche
Run a list of stores in the same niche to see what they sell, at what price, and how often it's on sale. Category and tag names make it easy to group products across stores.
How much does WooCommerce Scraper cost?
You pay $2 for every 1,000 products you get back. The Apify Free plan's $5 monthly credit covers about 2,500 products. The $29/month Starter plan covers about 14,500 products a month.
There's no per-run fee. Variation prices and reviews don't change the price. A store that can't be reached costs nothing, because you only pay for products delivered.
Input examples
A whole store
{"storeUrl": "https://coolfacelife.com"}
Several stores in one run, up to 500 products each
{"storeUrl": "https://nalgene.com","storeUrls": ["https://coolfacelife.com", "https://www.mandarinstone.com"],"maxProducts": 500}
Sale items under a price
{"storeUrl": "https://coolfacelife.com","onSaleOnly": true,"maxPrice": 10}
One category, in stock only
{"storeUrl": "https://coolfacelife.com","categories": ["accessories"],"stockStatus": "instock"}
Each size's own price, SKU and stock
{"storeUrl": "https://www.mandarinstone.com","includeVariations": true}
Products with their newest reviews
{"storeUrl": "https://nalgene.com","includeReviews": true,"maxReviewsPerProduct": 5}
| Field | What it does |
|---|---|
storeUrl | One store, e.g. https://example.com. |
storeUrls | More stores for the same run. The same store written twice is scraped once. |
maxProducts | Limit per store. Leave empty for every product. |
search | Only products whose name or description contains this text. |
categories | Only these categories. Use the slug from the category URL (e.g. mens-shirts) or its ID. |
onSaleOnly | Only products on sale. |
minPrice, maxPrice | Price range in the store's own currency. |
stockStatus | any, instock, outofstock or onbackorder. |
includeVariations | Add each size or colour's own price, SKU and stock. |
includeReviews, maxReviewsPerProduct | Add the newest reviews, up to 100 per product (default 10). |
Output examples
One row per product, with a scrapedAt timestamp. These are real rows from live runs. Long lists and descriptions are shortened here, and the notes say what was cut.
A product sold in sizes, with Variation prices on, all 4 sizes shown, with the description, some attributes and some variation fields left out:
{"id": 499641,"name": "Terrazzo Ivory Honed","url": "https://www.mandarinstone.com/product/terrazzo-ivory-honed/","productType": "variable","price": 0,"regularPrice": 0,"salePrice": null,"priceMin": 0,"priceMax": 13.68,"currency": "GBP","onSale": false,"inStock": true,"stockStatus": "instock","categories": [{ "name": "All Terrazzo", "slug": "all-terrazzo" },{ "name": "New arrivals", "slug": "new-arrivals" }],"tags": [{ "name": "High Traffic", "slug": "high-traffic" },{ "name": "Straight Edge Finish", "slug": "straight-edge-finish" }],"attributes": [{ "name": "Size", "terms": ["200x200x12", "200x50x12", "406x406x18", "Sample"] },{ "name": "Usage", "terms": ["Bathroom", "Indoor", "Kitchen", "Living", "Wall & floor"] }],"variations": [{ "id": 499642, "attributes": [{ "name": "Size", "value": "sample" }], "sku": "TCTERIVOSAMP", "price": 0, "inStock": true, "stockStatus": "instock" },{ "id": 500195, "attributes": [{ "name": "Size", "value": "200x50x12" }], "sku": "TCTEIVOSC20X5", "price": 0.66, "inStock": true, "stockStatus": "instock" },{ "id": 500197, "attributes": [{ "name": "Size", "value": "200x200x12" }], "sku": "TCTERIVOSC20X20", "price": 2.84, "inStock": true, "stockStatus": "instock" },{ "id": 500198, "attributes": [{ "name": "Size", "value": "406x406x18" }], "sku": "TCTERIVOSC40X40", "price": 13.68, "inStock": true, "stockStatus": "instock" }],"dataSource": "storeApi","storeUrl": "https://www.mandarinstone.com"}
A product with Reviews on, including weight and dimensions, variations and most categories left out:
{"id": 789703,"name": "32oz Wide Mouth Surrealist Bottles","sku": "Z0127","url": "https://nalgene.com/product/32oz-wide-mouth-surrealist-print-bottles/","shortDescription": "Introducing our Limited Surrealist collection! Your window to adventure. Explore a world where reality blurs and imagination reigns.","price": 18.99,"regularPrice": 18.99,"currency": "USD","inStock": true,"stockStatus": "instock","categories": [{ "name": "Water Bottles", "slug": "bottles" }],"tags": [{ "name": "Limited Edition", "slug": "limited-edition" },{ "name": "New!", "slug": "new" }],"weight": 0.39,"weightUnit": "lbs","length": 3.25,"width": 3.25,"height": 9.5,"dimensionUnit": "in","rating": 5,"reviewCount": 1,"reviews": [{"id": 1460652,"reviewer": "Jared","rating": 5,"verified": true,"date": "2025-02-19T22:48:02Z","text": "This bottle is amazing and the design is amazing and high quality."}],"storeUrl": "https://nalgene.com"}
A store that switched off its product feed, read from the product page. Fields the page doesn't show are null. One of 3 images shown:
{"id": 77963,"name": "Gen 6 180’s 50° / 63mm Yellow EZ’s / Bearings","url": "https://landyachtz.com/shop/all/skate/bundle/gen-6-180s-63mm-yellow-ezs-spaceballs/","sku": "1BU-G618050BKHEZ63BN","productType": "simple","price": 71.38,"regularPrice": 118.97,"salePrice": 71.38,"discountPercent": 40,"currency": "USD","onSale": true,"inStock": true,"stockStatus": "instock","images": ["https://landyachtz.com/wp-content/uploads/2025/11/Bundle-Gen-6-Bear-Trucks-180mm-50-63mm-78a-EZ-Hawgs-Flat-Banana4-Black-90a-bushings4-8mm-Spaceball-Bearings8-1-1.jpg"],"variations": null,"weight": null,"rating": null,"reviews": null,"dataSource": "productPage","storeUrl": "https://landyachtz.com","scrapedAt": "2026-09-28T12:41:36.648Z"}
Anything the store doesn't publish comes back as null, never a guess. A null is honest. A made-up value isn't.
Limitations
- Stores behind a strict "checking your browser" page can't be reached. The run finishes with a message saying so, and you pay nothing.
- Variation prices and reviews need the store's product feed. On stores that switch it off you still get products, but without those two extras.
- Stores read from product pages give fewer fields: no weight, dimensions or variation list. Anything the page doesn't show is
null. - Members-only or hidden prices come back as
null, not zero. - Prices stay in the store's own currency. No currency conversion.
Frequently asked questions
Do I need a login, an API key, or a proxy?
No. It reads what any shopper can see, with nothing to set up. If a store blocks the first attempt, the scraper retries through a proxy on its own.
What if my URL isn't a WooCommerce store?
The run finishes with a clear message saying no products were found, and you aren't charged.
Can I paste a category or product URL?
Paste the store's address, like https://example.com. Any path after it is ignored. To get one category, put its slug in Categories instead.
Does Max products apply to each store or to the whole run?
To each store. With three stores and a limit of 100, you get up to 300 products.
Will I get sold-out products?
Yes. Some stores hide sold-out items from their catalog pages, and this still returns them, marked out of stock. Set Stock status to instock if you only want what's available.
How much does WooCommerce Scraper cost?
WooCommerce Scraper uses pay-per-result pricing. You pay $2 for 1,000 products. The Apify Free plan gives you $5 in usage credits a month, enough for around 2,500 products. If you run regularly, the $29/month Starter plan covers about 14,500 products.
No subscription lock-in. Pause whenever.
Is it legal to scrape WooCommerce stores?
Scraping public data is generally allowed in the US and most of the EU, as long as you don't collect personal data covered by GDPR or CCPA without a lawful basis. This actor only reads what any shopper can see, but how you use the output is on you.
Apify's full breakdown: Is web scraping legal?.
Can I integrate WooCommerce Scraper with other tools?
Push results into Make, Zapier, Slack, Airbyte, GitHub, Google Sheets, Google Drive, and more. Apify treats every actor as a webhook source, so anything that consumes webhooks or pulls from an API works.
Full list: Apify integrations.
Can I use WooCommerce Scraper with the Apify API?
Yes. Every run is available through the Apify REST API:
curl -X POST "https://api.apify.com/v2/acts/sourabhbgp~woocommerce-scraper/runs?token=APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"storeUrl": "https://coolfacelife.com", "maxProducts": 100}'
Docs: Apify API reference.
Can I use WooCommerce Scraper through an MCP Server?
Yes. Apify ships an MCP server that exposes every actor as a tool, so Claude Desktop, Cursor, and any other MCP-capable client can call WooCommerce Scraper. Setup: Apify MCP docs.
Your feedback
Bug, missing field, or odd behavior? Drop a note in the Issues tab. Reports go to a human and fixes usually ship the same week.