WooCommerce Products Scraper: Prices, Stock, Images & SKUs avatar

WooCommerce Products Scraper: Prices, Stock, Images & SKUs

Pricing

from $0.35 / 1,000 product scrapeds

Go to Apify Store
WooCommerce Products Scraper: Prices, Stock, Images & SKUs

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.35 / 1,000 product scrapeds

Rating

0.0

(0)

Developer

dheeraj kumar

dheeraj kumar

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 hours ago

Last modified

Categories

Share

Who it's for: competitor researchers, dropshippers, and market analysts who need a clean, structured export of any WooCommerce store's full product catalog.

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 catalog data directly, with no login, no API keys and no browser, and it doesn't break when the store changes its theme. Maintained against WooCommerce 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.

Monitor mode

Schedule this actor and set Output mode to changesOnly to get a diff instead of a full re-export: the first run records a baseline, and every run after that reports only products that are new, changed (with a changedFields list), or removed since last time. Removed rows carry just the product's key fields. Use Monitor name if you run more than one monitor and want to keep their baselines separate, and Report removed products / Fields to ignore to tune what counts as a change. Default mode (all) is unaffected — it always exports everything, every run. In changesOnly, every new/changed row is billed as a changed row in addition to the normal per-product charge — see Pricing below; a removed row is billed as a changed row only (there's no per-product charge for a product that wasn't actually fetched this run); unchanged rows are free and aren't pushed.

Pricing: pay per event

EventPrice
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 (unsupported, private/B2B shops, network errors) return an error row and aren't charged per product.

Use it from code

from apify_client import ApifyClient
client = 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

  • Works with the large majority of public WooCommerce stores. Stores behind bot challenges, password protection or B2B logins return an error row.
  • Light, paced reads, to be polite to stores.

Integrations

This actor runs on the Apify platform, so it connects to the tools you already use without custom code:

  • Make, Zapier, n8n — trigger a run on a schedule or webhook, and feed exported product rows straight into your workflow using Apify's integrations for each tool.
  • Google Sheets — push exported products to a spreadsheet with the Apify Google Sheets integration, no code required.
  • Slack / email — get notified when a scheduled export finishes (or fails) via Apify's built-in Slack and email integrations.
  • API, Python, and JavaScript clients — call it programmatically with the Apify API or the apify-client / apify-client-js libraries (see "Use it from code" above).
  • MCP / AI agents — expose this actor as a callable tool to Claude, Cursor, or any MCP-compatible agent through the Apify MCP server, so an agent can pull catalog data on its own.

Run it on a schedule

Suggested frequency: weekly for price research snapshots. To track changes, turn on monitor mode and run it daily, and you only get the products that changed.

To set it up: save your input as a Task in Apify Console, then add a Schedule. Send results where you work with Apify integrations: Google Sheets, Slack or email notifications, webhooks, Make / Zapier / n8n, or straight into an AI agent through the Apify MCP server. A run that can't get data is marked failed, so your alerts fire.

FAQ

Is this legal? Is the data public? Yes. It reads only the public catalog data the store shows any visitor — no private or password-protected pages are accessed. You're responsible for using the exported data in line with each store's terms.

Do I need a login or API keys? No. No account, login, or API key is required for the store you're scraping. You only need your own Apify account to run the actor.

How often should I schedule it? This actor is built for one-shot exports (a full catalog pull), not change tracking. Run it whenever you need a fresh snapshot — e.g. weekly for ongoing price research. For scheduled change detection instead, use WooCommerce Catalog Monitor.

What does a run cost? Pay per event: $0.001 per run, $0.0005 per product scraped ($0.50 per 1,000). A 1,000-product store costs about $0.50 per run. Set Maximum charge per run to cap spend.

Does it need a proxy? No. It reads public catalog data efficiently, so no proxy is needed.

What happens if a store blocks it or can't be read? The store is reported as unsupported/failed in an error row and is not charged per product. This includes stores behind bot challenges, password protection, or B2B-only logins.

How do I get support or report a bug? Open an issue on this actor's Issues tab on Apify (apify.com/dheerajitbhu/woocommerce-products-scraper/issues) and we'll follow up there.

  • WooCommerce Catalog Monitor — track a WooCommerce store's catalog over time and get alerted on new/removed products, price changes, and stock flips, instead of a one-shot export.
  • DriftGuard — on Shopify instead of WooCommerce? Catch feed-vs-storefront price and availability drift before Google/Meta/TikTok disapprove your products.
  • AliExpress Scraper — compare store prices with AliExpress supplier prices.
  • Shopify Scraper — competitors on Shopify? Export their products and prices too.

Built and maintained by Integration Yard (dheerajitbhu).

Independent tool. Not affiliated with or endorsed by WooCommerce / Automattic. Use exported data in line with each store's terms.