WooCommerce Products Scraper: Prices, Stock, Images & SKUs
Pricing
from $0.50 / 1,000 product scrapeds
WooCommerce Products Scraper: Prices, Stock, Images & SKUs
Export every product from any WooCommerce store: name, price, sale price, stock, categories, images, SKU, attributes and URL. Uses the store's public Store API: no login, no browser. Filter by category or keyword.
Pricing
from $0.50 / 1,000 product scrapeds
Rating
0.0
(0)
Developer
dheeraj kumar
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Export the full product catalog of any WooCommerce store as clean JSON, CSV or Excel: name, price, regular and sale price, discount, stock, categories, tags, images, attributes, SKU and product URL.
It reads the store's public WooCommerce Store API (/wp-json/wc/store/v1/products), the same API the store's own cart and checkout use. No login, no API keys, no browser, no HTML parsing that breaks when the theme changes.
What you can use it for
- Competitor price research: export a rival store's whole catalog with current and sale prices.
- Catalog migration and backups: pull products, images, categories and attributes out of a WooCommerce shop.
- Product feeds and market research: build datasets of products, brands and price points across many stores.
- Sale tracking: export only on-sale items, with the discount percent already calculated.
Need to track changes over time instead (new products, price changes, stock flips)? Use WooCommerce Catalog Monitor.
Input
- Store URLs: one or more WooCommerce stores, e.g.
https://example-store.com. - Max products per store (default 1,000): caps reads and cost.
- Categories (optional): category slugs, names or numeric IDs, e.g.
sale,t-shirts. - Search keyword (optional): the store's own product search.
- In-stock only / On-sale only (optional).
- Maximum charge per run (default $5): hard cap; the run stops cleanly before exceeding it.
Example input
{"storeUrls": ["https://offermanwoodshop.com", "https://jococups.com"],"maxProductsPerStore": 1000,"categories": ["sale"],"onSaleOnly": false,"maxChargeUsd": 5}
Output
One row per product (recordType: product), plus one store-summary row per store. Prices are decimals in the store's currency.
Example output
{"recordType": "product","store": "https://offermanwoodshop.com","productId": 43116,"name": "Sale OWS T-Shirts","slug": "ows-t-shirt-2","url": "https://offermanwoodshop.com/store/shop-fashion/ows-t-shirt-2","sku": "AP-OWSTSHIRT-SALE","type": "variable","price": 18.0,"regularPrice": 32.0,"salePrice": 18.0,"onSale": true,"discountPercent": 43.8,"priceRange": null,"currency": "USD","inStock": true,"onBackorder": false,"lowStockRemaining": null,"categories": [{"id": 474, "name": "Sale", "slug": "sale"},{"id": 91, "name": "Shop Fashion", "slug": "shop-fashion"}],"tags": [],"images": ["https://offermanwoodshop.com/wp-content/uploads/2018/08/cropped-redshirt2-scaled-1.jpg"],"attributes": [{"name": "Sizes", "values": ["S", "M", "L", "XL"]},{"name": "Colors", "values": ["Navy", "Royal Blue"]}],"variationCount": 8,"averageRating": 0.0,"reviewCount": 0,"shortDescription": "100% cotton.","description": "Special cut-price on select colors and sizes.","scrapedAt": "2026-10-17T02:12:40+00:00"}
Run it with empty input to see demo rows.
Pricing: pay per event
| Event | Price |
|---|---|
| Run started | $0.001 per run |
| Product scraped | $0.0005 per product ($0.50 per 1,000) |
A 1,000-product store costs about $0.50. Stores that can't be read (no public Store API, private/B2B shops, network errors) return an error row and aren't charged per product.
Use it from code
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("dheerajitbhu/woocommerce-products-scraper").call(run_input={"storeUrls": ["https://jococups.com"],"maxProductsPerStore": 500,})for row in client.dataset(run["defaultDatasetId"]).iterate_items():if row.get("recordType") == "product":print(row["name"], row["price"], row["currency"], row["url"])
Limits
- The store must expose the public WooCommerce Store API. It's on by default; stores behind Cloudflare challenges, password protection or B2B logins return an error row.
- Requests are sequential with small delays, to be polite to stores.
Independent tool. Not affiliated with or endorsed by WooCommerce / Automattic. Use exported data in line with each store's terms.