WooCommerce Products Scraper
Pricing
from $5.00 / 1,000 products
WooCommerce Products Scraper
Scrape every product from any WooCommerce store using just the store domain, no login, no API keys, no category URLs required. Uses the public WooCommerce Store API, which is enabled by default on all WooCommerce 4.0+ stores.
Pricing
from $5.00 / 1,000 products
Rating
0.0
(0)
Developer

Trove Vault
Actor stats
1
Bookmarked
2
Total users
1
Monthly active users
20 hours ago
Last modified
Categories
Share
WooCommerce All Products Scraper
⚠️ This actor only works with WordPress sites that have the WooCommerce plugin installed and active. A plain WordPress site without WooCommerce will not return any products. If you are unsure whether a store runs WooCommerce, look for a
/wp-json/wc/path in the browser's network tab, or check the site's tech stack using a tool like BuiltWith.
Scrape every product from any WooCommerce store using just the store domain — no login, no API keys, no category URLs required. Uses the public WooCommerce Store API (/wp-json/wc/store/v1/products), which is enabled by default on all WooCommerce 4.0+ stores.
Unlike Shopify, WooCommerce exposes customer ratings, review counts, backorder status, and low stock alerts directly in the public API — making this actor especially useful for competitive intelligence and product analytics.
What it scrapes
Each product record includes:
| Field | Description |
|---|---|
name | Product name |
store | Source domain |
url | Direct link to the product page |
sku | Stock Keeping Unit identifier |
type | Product type (simple, variable, grouped, external) |
featuredImage | URL of the main product image |
imageCount | Total number of product images |
currency | ISO 4217 currency code (e.g. USD, EUR, GBP) |
price | Current selling price (sale price if on sale) |
regularPrice | Full price before any discount |
salePrice | Discounted price — null if not on sale |
onSale | true if a sale price is currently active |
available | true if in stock and purchasable |
isOnBackorder | true if the product is on backorder |
lowStockRemaining | Units left when stock is low — null otherwise |
averageRating | Average customer rating (0–5) — null if no reviews |
reviewCount | Total number of customer reviews |
variationCount | Number of product variations |
categories | Category names the product belongs to |
tags | All tags applied to the product |
attributes | Attribute names used for variations or filtering (e.g. Size, Color) |
shortDescription | Brief product summary (HTML stripped) |
description | Full product description (HTML stripped) |
How to use
-
Add one or more WooCommerce store domains in the
Store Domainsinput field. Any format works:mystore.comhttps://mystore.comwww.mystore.com
Not sure if a store uses WooCommerce? Try opening
https://yourdomain.com/wp-json/wc/store/v1/productsin your browser — if it returns a JSON array, it's a WooCommerce store and this actor will work. If it returns a 404 or an error page, the store either doesn't run WordPress or doesn't have WooCommerce active.Example store you can use to test:
porterandyork.com(premium meat & seafood, confirmed working) -
Optionally set Max Products to limit results per store (default: unlimited).
-
Optionally enable Apify Proxy if a store blocks datacenter IPs.
-
Run the actor and download results as JSON, CSV, or Excel.
Input
{"domains": ["mystore.com", "anotherstore.com"],"maxProducts": 500,"proxyConfiguration": {"useApifyProxy": false}}
| Parameter | Type | Default | Description |
|---|---|---|---|
domains | string[] | required | WooCommerce store domains to scrape |
maxProducts | integer | 0 (unlimited) | Maximum products to scrape per store |
proxyConfiguration | object | disabled | Apify Proxy settings |
How it works
- For each domain, the actor probes the WooCommerce Store API to verify the store is reachable and accessible.
- If the probe fails, a specific error is logged and the store is skipped — the actor never fails the entire run because of one inaccessible store:
- Server unreachable — DNS or network error
- HTTP 401 / 403 — store is password-protected or the endpoint is restricted
- Not a WordPress site —
/wp-json/not found - WooCommerce not installed — WordPress found but Store API unavailable
- Products endpoint 404 — WooCommerce detected but products endpoint missing
- Products are fetched in pages of 100 (the Store API maximum) with a short delay between pages.
- All fields are extracted and pushed to the Apify dataset.
Limitations
- Requires WooCommerce Store API to be enabled (default in WooCommerce 4.0+). Some stores may have it disabled or restricted.
- Password-protected stores (HTTP 401 / 403) cannot be scraped.
- Prices are returned in the store's configured currency. Multi-currency plugins may affect accuracy.
- Variable products report the minimum price from the API; individual variant prices require the REST API with authentication.
Changelog
2026-03-02 — v0.1.0
- Initial release
- 23 fields per product: name, URL, SKU, type, image, price, ratings, review count, backorder status, low-stock alerts, categories, tags, attributes, and descriptions
- Full fallback logic for 5 distinct failure modes (server unreachable, auth-protected, not WordPress, WooCommerce disabled, products endpoint 404)
- Multi-store support: scrape multiple WooCommerce stores in a single run
Related actors
- Shopify All Products Scraper — same concept for Shopify stores; adds variant-level pricing and compare-at prices.