WooCommerce Products Scraper - Prices, Variations & Stock avatar

WooCommerce Products Scraper - Prices, Variations & Stock

Pricing

from $0.48 / 1,000 products

Go to Apify Store
WooCommerce Products Scraper - Prices, Variations & Stock

WooCommerce Products Scraper - Prices, Variations & Stock

Export all products from any WooCommerce store to CSV/JSON: prices, sale prices, variations with SKU and stock, categories, brands, images. Price monitoring. $0.60 per 1,000 products, variations included; non-WooCommerce or blocked sites are free.

Pricing

from $0.48 / 1,000 products

Rating

0.0

(0)

Developer

TinyRex

TinyRex

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

WooCommerce Products Scraper: export products, prices, variations and stock from any WooCommerce store

Export every product from any WooCommerce store to CSV, Excel or JSON. Enter a store domain, a category URL or a product URL and get prices, sale prices, variations (size, color) with their own SKU, price and stock, plus categories, tags, brands, ratings, images and descriptions. It reads the store's public WooCommerce Store API (no browser, no login) and respects robots.txt. $0.60 per 1,000 products, variation details included; non-WooCommerce or blocked sites and products removed by your filters are free.

What you get from the WooCommerce Products Scraper

  • The full catalog of any WooCommerce store: product ID, SKU, title, type, price, max price, regular and sale price, discount %, currency, stock status and stock text ("12 in stock"), rating and review count, categories, tags, brands, attributes, images, weight, dimensions and description.
  • Full variation data at no extra cost: price, regular price, SKU and stock for every variation, nested in the product or as one row per variation (flat, best for spreadsheets and price tracking).
  • Price and new-product monitoring built in: schedule it with Monitoring mode and each run returns only new products, or new products plus price and stock changes with the previous values.

Sample output (JSON)

{
"storeName": "Mandarin Stone",
"productId": 499641,
"url": "https://www.mandarinstone.com/product/terrazzo-ivory-honed/",
"title": "Terrazzo Ivory Honed",
"type": "variable",
"price": 0.66,
"maxPrice": 13.68,
"currency": "GBP",
"inStock": true,
"categories": ["All Terrazzo", "New arrivals"],
"attributes": [{ "name": "Size", "values": ["200x200x12", "200x50x12", "406x406x18"], "usedForVariations": true }],
"variationsCount": 4,
"variations": [{ "id": 500195, "title": "Size: 200x50x12", "sku": "TCTEIVOSC20X5", "price": 0.66, "inStock": true, "stockText": "4094 in stock" }],
"featuredImage": "https://www.mandarinstone.com/app/uploads/2026/08/Terrazzo-Ivory-Honed-scaled.jpg"
}

Download as JSON, CSV, Excel or HTML, or send it to Google Sheets, Make, Zapier, n8n, Slack, webhooks or the Apify API. Each run also writes a STORES report (status per input: ok, not_woocommerce, blocked, disallowed_by_robots, unreachable, not_found, error, plus store name, currency and product counts) and a SUMMARY record to the key-value store.

How to configure the WooCommerce Products Scraper

  1. Add WooCommerce stores, categories or products (one per line): a domain (nalgene.com), a category (https://nalgene.com/product-category/accessories/, custom category URLs work too) or a single product (https://nalgene.com/product/four-wheeling-sticker/).
  2. Optional: a search query (the store's own search, fastest for big stores), keywords, exclude keywords, categories, brands, price range, only in stock, only on sale.
  3. Pick products or variations output, then run, or schedule it with Monitoring mode on.

Example input: in-stock products from two stores

{
"stores": ["https://nalgene.com", "https://www.mandarinstone.com/collections/all-terrazzo/"],
"outputMode": "products",
"onlyInStock": true,
"maxProductsPerStore": 500
}
SettingDefaultNotes
storeshttps://nalgene.com, mandarinstone.comStore domain, category URL or product URL
maxProductsPerStore1000 = all products; newest first
outputModeproductsproducts (variations nested) or variants (one row per variation)
searchemptyUses the store's own product search
keywords / excludeKeywordsnoneMatch title, SKU, categories, tags or brands
categories / brandsnonePartial match (name or slug)
minPrice / maxPrice0 (no limit)In the store currency
onlyInStock / onlyOnSalefalseIn-stock only / discounted only
includeVariationstrueVariation price, SKU and stock; costs nothing extra
descriptionFormattexttext, html, both or none
monitorMode / stateKeyoff / defaultnew or changes; use one state key per schedule
maxConcurrency5Stores in parallel; lower it if a store rate-limits
proxyConfigurationno proxyTurn on Apify Proxy if a store blocks or rate-limits

Common use cases

  • Competitor price monitoring: track a rival WooCommerce shop's prices, sale prices and stock daily and get only the changes.
  • Supplier and dropshipping catalogs: pull a supplier's full catalog with SKUs, variations and images into a spreadsheet or your own store.
  • Ecommerce market research: catalog size, price ranges, brands and categories across many independent shops.
  • Lead generation for WooCommerce agencies and plugin makers: find shops by niche, size or catalog quality, then reach out.

Pricing (pay per product, failures free)

  • Product (product): $0.0006 per product saved to your dataset ($0.60 per 1,000; per variation row in variation mode), $0.00054 on Silver and $0.00048 on Gold. Variation details in product mode are included.
  • Free: sites that are not WooCommerce, blocked sites, stores whose robots.txt disallows the API, unreachable sites and filtered-out products.

Set a maximum cost per run and the Actor stops gracefully when it is reached. See the Pricing tab for current tier discounts.

Limitations

  • Works with WooCommerce stores whose public Store API is available (WooCommerce 6+; most stores). Some stores disable it, protect it with bot checks, or disallow it in robots.txt; these are skipped and not charged.
  • Only data the store shows publicly is available. Sales numbers, cost prices and exact stock quantities (unless the store shows them) are not.
  • The Store API does not expose product dates; use monitoring mode to detect new products.
  • Prices are shown as the store shows them to a guest visitor (tax display and currency follow the store settings).

Use with AI agents (MCP)

This Actor works as a tool for AI agents through the Apify MCP server at https://mcp.apify.com. Connect Claude, Cursor, VS Code, n8n or any other MCP client to https://mcp.apify.com?tools=tinyrex/woocommerce-products-scraper and ask, for example: "Get all products and variation prices from nalgene.com". Results come back as structured JSON at the same pay-per-product price; failed inputs stay free.

📘 Step-by-step guide with Python, JavaScript, curl and MCP examples: How to export products from any WooCommerce store to CSV or JSON

FAQ

How do I export all products from a WooCommerce store? Enter the store domain and set Max products per store to 0. The Actor reads the store's public Store API and gives you every product as CSV, Excel or JSON, with variations nested or as separate rows. You don't need admin access or API keys.

Can I scrape a WooCommerce store I don't own? Yes, for public product data. The Actor reads the Store API that WooCommerce provides for storefronts and follows each store's robots.txt. It does not log in and does not access customer or order data. Use the data in line with the store's terms and your local law.

How do I track a competitor's WooCommerce prices? Set Monitoring mode to New products and price/stock changes, schedule the Actor daily, and connect an integration (email, Slack, Google Sheets). The first run is the baseline; later runs return only new products and changes, with previousPrice and previousInStock.

How do I know if a website runs WooCommerce? Just add it: other sites are reported as not_woocommerce in the STORES record and are free. For a long domain list, run the Tech Stack Detector with its onlyIfUses filter set to WooCommerce first.

How fast is it? In our test, 24 stores with 2,637 products took about 4 minutes; most of the time is spent waiting for the stores' servers. Speed depends on store size and hosting.

My store isn't recognized. Check the STORES record for the reason. If the status is not_woocommerce but the store runs WooCommerce, open an issue with the URL and we will take a look.