# WooCommerce Scraper — Products, Prices & Stock from Any Store (`intelscrape/woocommerce-products-scraper`) Actor

WooCommerce Scraper: export products from any WooCommerce store through its public Store API: name, SKU, price, sale price, discount, currency, stock, rating, reviews, categories, attributes and images, plus a store summary with price range, sale share and contacts. No API key. Pay per product.

- **URL**: https://apify.com/intelscrape/woocommerce-products-scraper.md
- **Developed by:** [IntelScrape](https://apify.com/intelscrape) (community)
- **Categories:** E-commerce, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## WooCommerce Scraper — Products, Prices & Stock from Any Store

![WooCommerce Scraper — Products, Prices & Stock from Any Store](https://api.apify.com/v2/key-value-stores/hRabN9WfDGrT4nSvV/records/woocommerce-products-scraper-banner.png)

🇨🇳 **WooCommerce 商品采集器**：通过公开的 Store API 导出任意 WooCommerce 店铺的商品：名称、SKU、价格、促销价、折扣、币种、库存、评分、评论、分类、属性和图片，并生成店铺汇总（价格区间、促销比例和联系方式）。无需 API 密钥，按商品付费。

🇸🇬 **Pengikis WooCommerce**: eksport produk daripada mana-mana kedai WooCommerce melalui Store API awamnya: nama, SKU, harga, harga jualan, stok, penilaian dan kategori, serta ringkasan kedai dengan hubungan. Tiada kunci API.

#### 🤖 NEW: Connect This To Your AI!

Use this actor from Claude, ChatGPT, Cursor or any MCP client through the **[IntelScrape MCP Server](https://apify.com/intelscrape/skip--trace)**, or call it directly over the Apify API.

#### 🏆 Featured Bots by IntelScrape

- [Skip Trace Pro](https://apify.com/intelscrape/skip-trace-pro)
- [TruePeopleSearch Scraper](https://apify.com/intelscrape/truepeoplesearch-scraper)
- [TikTok Email Scraper](https://apify.com/intelscrape/tiktok-scraper)
- [Amazon Product Reviews Scraper](https://apify.com/intelscrape/amazon-product-review-scraper)
- [Website Contact Scraper](https://apify.com/intelscrape/contact-info-scraper)
- [Skip Trace MCP Server](https://apify.com/intelscrape/skip--trace)

⚡ Works with n8n, Make, Zapier, Google Sheets and the Apify API.

![price](https://img.shields.io/badge/price-%240.50%20per%201K%20products-blue) ![billing](https://img.shields.io/badge/billing-pay%20per%20product-green) ![API key](https://img.shields.io/badge/API%20key-not%20required-brightgreen) ![source](https://img.shields.io/badge/source-Store%20API-orange)

**Exact product, price and stock data from any WooCommerce store via its public Store API, plus a store summary with emails and socials.**

> **Honest coverage & billing:** Stores that disable or block the Store API cannot be read. You pay only for results actually delivered, and a built-in cost guard stops the run at your max-charge limit.

🌍 Built for teams in the **US, China and Singapore**, and anyone who needs this data in a spreadsheet or pipeline.

⭐ Found it useful? Please leave a review; it helps others find it.

⚖️ **Lawful business use only.** Collect public data only, and comply with the source site's terms, copyright and data-protection laws (GDPR, CCPA, China PIPL, Singapore PDPA).

*Examples below are illustrative; names and values may be fictional or out of date.*

### What is WooCommerce Scraper?

WooCommerce powers millions of online stores, more than any other ecommerce platform, and almost all of them expose a public Store API that their own storefront uses. **WooCommerce Scraper** reads that API directly, so instead of parsing fragile HTML you get exact prices, sale prices, stock status, ratings and categories for every product, fast and accurately, plus a store summary with contacts for outreach.

### What does it do?

- **Any WooCommerce store** with the Store API enabled (the default since WooCommerce 6)
- **Product data**: ID, name, SKU, type, URL, price, regular price, sale price, discount %, currency and price range for variable products
- **Stock**: in-stock flag, stock text, low-stock count, purchasable
- **Reviews**: average rating and review count
- **Catalogue**: categories, tags, brands, attributes with values, variation count, images
- **Filters**: search term, category and on-sale only
- **Store summary (on by default)**: total products, price range and median, sale and out-of-stock share, top categories, emails, phones and socials

### Why choose us over cheaper scrapers?

- **Honest output**: limits are documented, missing data is labeled, never invented
- **Clean, consistent schema** ready for Excel, Sheets, BI tools or an LLM
- **No account risk**: no logins, no cookies, no API keys
- **Pay per result** with a built-in cost guard; no subscription, failed items are never charged
- **Fast and light**: no residential proxy, so runs finish in seconds and stay cheap
- **Maintained by IntelScrape** and fixed fast when the source changes

### Who is it for?

- **Price monitoring**: track competitor prices and discounts daily
- **Dropshipping & sourcing**: compare suppliers' catalogues and stock
- **Market research**: price distributions and catalogue size across a niche
- **Lead generation**: build lists of WooCommerce merchants with contacts
- **Agencies**: audit a client's catalogue for missing SKUs, images or stock
- **Data feeds**: build product feeds for comparison sites or AI

### How to use it

#### In Apify Console (no code)

1. Click **Try for free** / **Start**. The form is prefilled with a working example.
2. Change the inputs (see examples below).
3. Click **Start**, then export the results as **JSON, CSV, Excel, XML or HTML**, or open them in Google Sheets.
4. Optional: **Schedule** the actor to run hourly, daily or weekly.

#### Via API

```bash
curl -X POST "https://api.apify.com/v2/acts/intelscrape~woocommerce-products-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"stores": ["https://woocommerce.com"], "maxProductsPerStore": 100, "storeInfo": true}'
```

Or use the official [Apify JavaScript](https://docs.apify.com/api/client/js/) and [Python](https://docs.apify.com/api/client/python/) clients:

```python
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("intelscrape/woocommerce-products-scraper").call(run_input={"stores": ["https://woocommerce.com"], "maxProductsPerStore": 100, "storeInfo": true})
for item in client.dataset(run["default_dataset_id"]).iterate_items():
    print(item)
```

#### With AI agents (MCP)

Add Apify's MCP server (`https://mcp.apify.com`) or the [IntelScrape MCP Server](https://apify.com/intelscrape/skip--trace) to Claude Desktop, Cursor, ChatGPT or any MCP client, then ask in plain language, e.g. *"Run intelscrape/woocommerce-products-scraper with the default input and summarise the results."*

### Input examples

**One store, 100 products with summary (default)**

```json
{
  "stores": ["https://woocommerce.com"],
  "maxProductsPerStore": 100,
  "storeInfo": true
}
```

**Sale items across stores**

```json
{
  "stores": ["store-one.com", "store-two.co.uk"],
  "onSaleOnly": true,
  "maxProductsPerStore": 1000
}
```

**Search a catalogue**

```json
{
  "stores": ["https://example-woo-store.com"],
  "search": "hoodie"
}
```

### Output fields

| Field | Description |
|---|---|
| `store / productId / name / slug / url / sku / type` | Identity |
| `price / regularPrice / salePrice / onSale / discountPct / currency / priceRange` | Pricing (in currency units) |
| `inStock / stockStatus / lowStockRemaining / purchasable` | Availability |
| `averageRating / reviewCount` | Reviews |
| `categories / tags / brands / attributes / variationCount` | Catalogue |
| `imageUrl / imageCount / shortDescription / description` | Content |
| `type = store-info rows` | storeTitle, totalProducts, productsScraped, currency, minPrice, medianPrice, maxPrice, onSaleShare, outOfStockShare, topCategories, emails, phones, socials |

#### Sample output

```json
{
  "store": "https://woocommerce.com",
  "productId": 18734006952099,
  "name": "Restaurant Menu",
  "url": "https://woocommerce.com/products/restaurant-menu/",
  "price": 29,
  "regularPrice": 29,
  "onSale": false,
  "currency": "USD",
  "inStock": true,
  "averageRating": 0,
  "categories": ["WooCommerce extensions"]
}
```

### Pricing (pay per event)

| Event | When it is charged | Price |
|---|---|---|
| **Actor start** | once per run | $0.005 |
| **Product** | per product row | $0.0005 |
| **Store summary** | per store summary + contacts row (on by default; turn off to skip) | $0.003 |

#### Cost examples

| Run | Cost |
|---|---|
| Default run: 100 products + summary | $0.058 |
| 20 stores × 500 products | $5.065 |
| Daily sale check, 5 stores × 50 sale items | $0.14 |

Platform usage is included in these prices. Set **Max charge per run** in the run options to cap spend; the actor stops cleanly when the limit is reached and keeps everything collected so far.

### Tips for best results

- Not sure a site runs WooCommerce? Run our Tech Stack Detector first and filter ecommerce = WooCommerce.
- Use onSaleOnly for cheap daily discount monitoring.
- Prices are returned in currency units (e.g. 79.00), already converted from minor units.
- Schedule daily and compare price/regularPrice over time.

### FAQ

#### How does it work without scraping HTML?

WooCommerce stores ship a public Store API (used by their own cart and blocks). The actor reads it, which is faster and more accurate than parsing pages.

#### What if the store disables the API?

The store is logged as unavailable and not charged.

#### Does it work for Shopify?

No, Shopify is a different platform; see our Shopify Store Leads actor.

#### Are variable product prices included?

Yes, as a min/max price range plus the default price.

#### Can I get reviews text?

This actor returns rating and count; review text is not part of the product endpoint.

#### Do I need a key?

No.

### Honest limits

- Stores that disable or block the Store API cannot be read.
- Some stores hide prices for logged-out users; those prices come back empty.
- Review text and order data are not available.
- Very large catalogues are capped by maxProductsPerStore.

### Related IntelScrape bots

- [Tech Stack Detector](https://apify.com/intelscrape/tech-stack-detector): CMS, analytics & frameworks per domain
- [Shopify Store Leads](https://apify.com/intelscrape/shopify-owner-email): Shopify store owner emails
- [WordPress Theme & Plugin Detector](https://apify.com/intelscrape/wordpress-detector): themes, plugins & versions
- [Website Contact Scraper](https://apify.com/intelscrape/contact-info-scraper): emails, phones & socials from sites
- [Open Graph Scraper](https://apify.com/intelscrape/open-graph-scraper): link previews & meta tags
- [Skip Trace MCP Server](https://apify.com/intelscrape/skip--trace): IntelScrape tools for AI agents

### Legal

This actor collects publicly available data only. You are responsible for using the results lawfully and in line with the source's terms and applicable privacy laws (GDPR, CCPA, PIPL, PDPA). Process personal data only with a legitimate purpose. IntelScrape is not affiliated with, endorsed by or sponsored by the data source; all trademarks belong to their owners.

# Actor input Schema

## `stores` (type: `array`):

Store homepages or domains, one per line.

## `maxProductsPerStore` (type: `integer`):

Cap per store.

## `search` (type: `string`):

Optional: only products matching this text.

## `category` (type: `string`):

Optional: limit to a category.

## `onSaleOnly` (type: `boolean`):

Return discounted products only.

## `includeDescription` (type: `boolean`):

Add the long product description (bigger rows).

## `storeInfo` (type: `boolean`):

Add one row per store: total products, price range, sale and out-of-stock share, top categories, emails, phones and socials. Charged per store.

## `proxyConfiguration` (type: `object`):

Not needed normally. The actor switches to Apify Proxy automatically if the source starts rate-limiting.

## Actor input object example

```json
{
  "stores": [
    "https://woocommerce.com"
  ],
  "maxProductsPerStore": 100,
  "search": "",
  "category": "",
  "onSaleOnly": false,
  "includeDescription": false,
  "storeInfo": true,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "stores": [
        "https://woocommerce.com"
    ],
    "storeInfo": true
};

// Run the Actor and wait for it to finish
const run = await client.actor("intelscrape/woocommerce-products-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "stores": ["https://woocommerce.com"],
    "storeInfo": True,
}

# Run the Actor and wait for it to finish
run = client.actor("intelscrape/woocommerce-products-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "stores": [
    "https://woocommerce.com"
  ],
  "storeInfo": true
}' |
apify call intelscrape/woocommerce-products-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,intelscrape/woocommerce-products-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/ZZIK158XNmRhQ1n86/builds/qsUmrOfdLzMLTcJgH/openapi.json
