# BIG W Product Scraper (`axlymxp/bigw-product-scraper`) Actor

Scrape BIG W (bigw.com.au) products at scale: price, was-price, savings, deals, GTIN/EAN barcodes, variants, images, specs, ratings and reviews. Search by keyword, browse categories, or pass product URLs. Clean JSON for price monitoring and research. Pay only for results.

- **URL**: https://apify.com/axlymxp/bigw-product-scraper.md
- **Developed by:** [axly](https://apify.com/axlymxp) (community)
- **Categories:** E-commerce, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.00 / 1,000 dataset items

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## BIG W Product Scraper

Extract structured product data from **BIG W** (bigw.com.au), Australia's major
discount department store — by keyword search, whole-category browse, or a list
of product URLs. Every row carries **live pricing and deals**, **barcodes**,
**variants**, **images**, **specifications**, and **Bazaarvoice ratings &
reviews** — as clean JSON, CSV or Excel.

Built on BIG W's own JSON API (no fragile HTML scraping), so results are fast,
complete and reliable.

### Who uses this

- **Price-intelligence & competitive-monitoring teams / brands** — track BIG W
  prices, was-prices, promo badges and stock for a category or brand.
- **Resellers & marketplace sellers** — monitor competitor pricing, spot
  clearance arbitrage, and pull GTIN/EAN for catalogue matching.
- **Market researchers & analysts** — assortment, brand presence, and customer
  sentiment from ratings and reviews.
- **RetailTech / SaaS developers & AI agents** — a stable product + review feed
  to power apps, dashboards and models.

### What you get — output fields

| Field                                          | Type         | Description                                                 |
| ---------------------------------------------- | ------------ | ----------------------------------------------------------- |
| `article_id`                                   | string       | BIG W numeric product id                                    |
| `name`, `brand`                                | string       | Product name and brand                                      |
| `url`, `slug`                                  | string       | Product page URL                                            |
| `gtin`, `ean`, `barcode`                       | string       | Barcodes                                                    |
| `price`                                        | number       | Current price (AUD)                                         |
| `was_price`, `rrp`                             | number       | Previous / recommended retail price                         |
| `save_amount`, `save_percent`                  | number       | Savings in $ and %                                          |
| `price_label`, `promo_badge`                   | string       | e.g. `SPECIAL`, `CLEARANCE`, `20% OFF`                      |
| `unit_price`                                   | string       | Comparative unit price, e.g. `$0.27 / 1 EA`                 |
| `is_clearance`, `on_sale`                      | boolean      | Deal flags                                                  |
| `in_stock`, `listing_status`, `max_quantity`   | mixed        | Availability                                                |
| `sold_by`, `product_channel`                   | string       | BIG W vs Marketplace seller                                 |
| `deliverable`, `collectable`, `pickup`         | boolean      | Fulfilment options                                          |
| `category`, `category_id`, `categories`        | mixed        | Category + full breadcrumb                                  |
| `image`, `images`                              | string/array | Product imagery                                             |
| `specifications`                               | array        | Name/value specs                                            |
| `variants`, `num_variants`                     | array/int    | Per colour/size: code, SKU, barcode                         |
| `rating`, `reviews_count`, `recommended_count` | number       | Rating summary                                              |
| `rating_distribution`                          | array        | Star breakdown                                              |
| `reviews`                                      | array        | Individual reviews (title, text, author, pros/cons, photos) |
| `scraped_at`                                   | string       | ISO-8601 timestamp                                          |

### High-value use cases

1. **Competitive price monitoring** — schedule a daily run over your categories
   and diff `price` / `was_price` / `promo_badge` to detect price moves.
2. **Clearance & deal sourcing** — filter for `is_clearance` / `save_percent` to
   find arbitrage or bargains across the catalogue.
3. **Catalogue matching / PIM** — join to your own catalogue on `gtin` / `ean`
   and enrich with images, specs and variants.
4. **Review & sentiment analysis** — pull ratings and full review text for
   product research or model training.
5. **Assortment & brand tracking** — browse a category to map every product,
   brand and price point BIG W carries.

### Input parameters

| Field                  | Type     | Default     | Description                   |
| ---------------------- | -------- | ----------- | ----------------------------- |
| `searchQueries`        | string\[] | `[]`        | Keywords to search            |
| `categoryIds`          | string\[] | `[]`        | Browse whole categories by id |
| `productUrls`          | string\[] | `[]`        | Product URLs or bare codes    |
| `maxItems`             | integer  | `200`       | Global result cap             |
| `maxPagesPerQuery`     | integer  | `5`         | Pages per query (48/page)     |
| `sort`                 | enum     | `relevance` | relevance / name / price      |
| `onlyInStock`          | boolean  | `false`     | In-stock only                 |
| `minPrice`, `maxPrice` | integer  | –           | Price band (AUD)              |
| `brands`               | string\[] | `[]`        | Restrict to brands            |
| `soldBy`               | enum     | any         | BIG W / Marketplace Seller    |
| `includeFullDetail`    | boolean  | `true`      | Description + variants        |
| `includePricing`       | boolean  | `true`      | was/RRP/savings/promo         |
| `includeReviewStats`   | boolean  | `true`      | Rating summary                |
| `includeReviews`       | boolean  | `false`     | Individual reviews            |
| `maxReviewsPerProduct` | integer  | `20`        | Cap reviews per product       |
| `proxyConfiguration`   | object   | Apify AUTO  | Optional egress               |

> **Tip:** a single BIG W search is capped at 2000 results. To pull an entire
> large category, browse by `categoryIds` (and optionally narrow by `brands` or
> a price band) rather than one broad keyword.

### Example input

```json
{
    "searchQueries": ["coffee machine"],
    "maxItems": 100,
    "onlyInStock": true,
    "includeReviews": true,
    "maxReviewsPerProduct": 20
}
```

### Example output (one row, trimmed)

```json
{
    "article_id": "80247",
    "name": "LEGO DUPLO Classic Deluxe Brick Box 10914 Building Toy",
    "brand": "LEGO",
    "url": "https://www.bigw.com.au/product/.../p/80247",
    "gtin": "5702016617757",
    "price": 55.0,
    "save_amount": 14.0,
    "save_percent": 20.3,
    "price_label": "SPECIAL",
    "promo_badge": "20% OFF",
    "in_stock": true,
    "sold_by": "BIG W",
    "category": "LEGO Duplo",
    "rating": 4.93,
    "reviews_count": 28,
    "variants": [
        { "code": "80247", "barcode": "5702016617757", "uom": "pieces" }
    ],
    "reviews": [{ "rating": 5, "title": "Brilliant", "author": "AlexandraO" }],
    "scraped_at": "2026-07-31T02:00:00Z"
}
```

### Scheduling & integrations

- **Schedule** daily/weekly runs from the Apify Console for fresh price and stock
  snapshots.
- **Webhooks** fire on run completion to push new data into your systems.
- Export to **JSON, CSV, Excel, or XML**, or sync to **Google Sheets, Make,
  Zapier, Airbyte, or S3** via Apify integrations.
- Pull results with the **Apify API** or client libraries.

### Using it from an AI agent (MCP)

This Actor works over the Apify MCP server, so AI assistants (Claude, ChatGPT,
Cursor, etc.) can call it as a tool — e.g. "get current BIG W prices and reviews
for coffee machines" — and receive structured JSON back.

### FAQ

**How many products can I get per run?** As many as you set in `maxItems`. A
single search is capped at 2000 results by BIG W; browse by category (optionally
sliced by brand/price) to cover large sections of the catalogue.

**Is pricing live?** Yes — current price, was-price, RRP, savings and promo
badges come from BIG W's live price API at scrape time.

**Are reviews included?** Ratings summaries are on by default; enable
`includeReviews` to also collect individual review text, authors and photos.

**How fresh is the data?** It is fetched live on each run. Schedule runs to keep
a time series for price/stock tracking.

**Do I need proxies or an unblocker?** No external subscription is required — the
Actor talks to BIG W's official JSON API directly. Apify Proxy is used for a
stable egress IP and can be switched to Australian residential if needed.

**Is this legal?** The Actor collects only publicly available product data. You
are responsible for using the data in line with BIG W's terms and applicable law.

# Actor input Schema

## `searchQueries` (type: `array`):

Keywords to search on bigw.com.au (one search per keyword). Leave empty if you use category IDs or product URLs instead.

## `categoryIds` (type: `array`):

Browse whole categories by numeric category ID (found in a category URL: /.../c/<categoryId>, e.g. 68 = Toys). Returns every product in the category.

## `productUrls` (type: `array`):

Direct BIG W product page URLs (or bare numeric article IDs) to fetch full detail for.

## `maxItems` (type: `integer`):

Global cap across all queries, categories and URLs. The run stops once this many products are pushed.

## `maxPagesPerQuery` (type: `integer`):

Search/category pages per query (48 results per page). BIG W caps any single search at 2000 results — slice by category to go deeper.

## `sort` (type: `string`):

Result ordering for searches and category browses.

## `onlyInStock` (type: `boolean`):

Return only products that are currently in stock.

## `minPrice` (type: `integer`):

Only include products priced at or above this amount (in dollars).

## `maxPrice` (type: `integer`):

Only include products priced at or below this amount (in dollars).

## `brands` (type: `array`):

Restrict results to these brand names (exact names as shown on BIG W, e.g. 'LEGO').

## `soldBy` (type: `string`):

Restrict to BIG W's own stock or third-party Marketplace sellers.

## `includeFullDetail` (type: `boolean`):

Fetch the full product detail (long description, variants with per-colour/size barcodes). One extra request per product.

## `includePricing` (type: `boolean`):

Fetch the live price (current price, was-price, RRP, save amount, promo badge, unit price). One extra request per product.

## `includeReviewStats` (type: `boolean`):

Fetch the Bazaarvoice rating summary (average rating, review count, recommended count, star distribution). One extra request per product.

## `includeReviews` (type: `boolean`):

Fetch individual customer reviews (title, text, rating, author, pros/cons, photos) nested in each product row.

## `maxReviewsPerProduct` (type: `integer`):

When reviews are included, cap how many are fetched per product.

## `reviewSort` (type: `string`):

Order in which reviews are collected.

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

Egress proxy. BIG W's API works from most connections; the default Apify Proxy provides a stable IP. Choose Australian residential if you see soft blocks.

## Actor input object example

```json
{
  "searchQueries": [
    "lego",
    "coffee machine"
  ],
  "categoryIds": [
    "68"
  ],
  "productUrls": [
    "https://www.bigw.com.au/product/lego-duplo-classic-deluxe-brick-box-10914-building-toy/p/80247",
    "80247"
  ],
  "maxItems": 200,
  "maxPagesPerQuery": 5,
  "sort": "relevance",
  "onlyInStock": false,
  "brands": [
    "LEGO"
  ],
  "soldBy": "",
  "includeFullDetail": true,
  "includePricing": true,
  "includeReviewStats": true,
  "includeReviews": false,
  "maxReviewsPerProduct": 20,
  "reviewSort": "submissiontime:desc",
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# 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 = {
    "searchQueries": [
        "lego"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("axlymxp/bigw-product-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 = {
    "searchQueries": ["lego"],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("axlymxp/bigw-product-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "searchQueries": [
    "lego"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call axlymxp/bigw-product-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=axlymxp/bigw-product-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/REJlnshGx4Hecti0j/builds/q7QUbexdBzVlcEHAB/openapi.json
