BIG W Marketplace Scraper - Products, Sellers & Reviews avatar

BIG W Marketplace Scraper - Products, Sellers & Reviews

Pricing

from $1.00 / 1,000 product results

Go to Apify Store
BIG W Marketplace Scraper - Products, Sellers & Reviews

BIG W Marketplace Scraper - Products, Sellers & Reviews

Scrape BIG W Marketplace seller listings from bigw.com.au: name, brand, price, was-price, saving, condition, category, images, specs, GTIN/EAN/MPN, rating and customer reviews. Search by keyword with brand, category, price and rating filters, or paste product / search URLs.

Pricing

from $1.00 / 1,000 product results

Rating

0.0

(0)

Developer

Abot API

Abot API

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

BIG W Marketplace Scraper: Products, Specials & Reviews

BIG W Marketplace Scraper turns bigw.com.au into a clean, structured product feed. Get third-party marketplace-seller listings (and optionally BIG W's own range) with price, was-price, discount, offer labels, stock, images, specifications, identifiers and category, plus customer reviews with an aggregate rating summary. Search by keyword with brand, category, price, rating and specials filters, or paste product and search links directly, then export to JSON, CSV or Excel, or pull the results straight into your app through the API. All prices are in Australian dollars (AUD).

Why This Scraper?

  • Two ways to find products. Search by keyword with rich filters, or paste product and search URLs directly. No need to build search parameters by hand.
  • Marketplace-seller focus. Defaults to third-party BIG W Marketplace sellers only, with an option to also include BIG W's own range for a full-catalogue view.
  • Real specials detail. Was-price, discount amount and percent, the site's own offer label (such as "1/2 Price" or "35% OFF"), clearance flags and per-unit pricing, all left empty rather than invented when the site shows no offer.
  • Full listing depth. Images, specifications, variant and colour/size matrices, GTIN/EAN/MPN identifiers, fulfilment and stock detail come back on every record.
  • Reviews on demand. Attach customer reviews and an aggregate rating summary per product, capped to the number you need, and pay only when you turn it on.
  • Unlimited catalogue walking by default. Pagination has no artificial cap: a search or URL walk stops only once the storefront's own result count is reached or a page repeats with nothing new.
  • Built for schedules. Incremental mode returns only new and changed products on recurring runs, and a run that is refused fails loudly instead of returning an empty dataset.

Use Cases

  • Price and deal tracking: monitor specials, clearance and price drops across BIG W Marketplace sellers for repricing or deal-alert tools.
  • Marketplace seller research: compare third-party sellers against BIG W's own range by brand, category or price band.
  • Catalogue and comparison feeds: pull structured product data (identifiers, images, specifications, variants) into your own catalogue, price-comparison site or feed.
  • Review and reputation analysis: collect customer reviews and rating distributions to score sellers or products over time.
  • Recurring monitoring: schedule the actor against a fixed search or product list and get only what changed since last time.

Data You Get

Sample shape: values are illustrative placeholders, not from a live record.

FieldExample
articleId"7700001111"
gtin / ean / mpn"9312345678901" / "9312345678901" / "SC-SHELF-01"
name / title"Sample Garage Shelving Unit" / "SampleCo Sample Garage Shelving Unit"
brand"SampleCo"
sellerType / sellerName"Marketplace Seller" (also "BIG W") / "Sample Seller Co"
isMarketplace / productChanneltrue / "MARKETPLACE"
price / wasPrice45.0 / 60.0
saving / savingsPercent15.0 / 25
isOnSpecial / priceLabeltrue / "Special"
rrp / unitPrice65.0 / {"price": 2.25, "unit": "100 G"}
currency"AUD"
condition / listingStatus"NEW" / "ACTIVE"
inStock / maxQuantitytrue / 5
category / categories / categoryPath"Home & Garden" / ["Home & Garden", "Storage"] / "Home & Garden > Storage > Shelving"
imageUrl / imagesimage link / full gallery array
variants / colours / sizesvariant matrix array / ["Black", "White"] / ["Small", "Large"]
specifications{"Material": "Steel", "Assembly required": "Yes"}
description"A sample product description."
urllink to the product page
fulfilment{"logisticType": "DIRECT_SHIP", "delivery": true, "collection": false}
rating4.5
reviews / reviewStatsreview array / {"reviewCount": 40, "averageRating": 4.5} (when reviews are on)
changeType / changedFields / firstSeenAt / lastSeenAt"UPDATED" / ["price", "wasPrice"] / timestamps (incremental mode only)

A product with no offer active still returns wasPrice, saving, savingsPercent and priceLabel as empty rather than fabricated. Products with no reviews return an empty reviews array once reviews are turned on.

How to Use

  1. Pick a mode: search (keyword and filters) or url (paste product or search links).
  2. Fill in the fields for that mode, and switch on Fetch customer reviews if you want them.
  3. Set Max products to control run size and cost, then click Start.
  4. Download the dataset as JSON, CSV or Excel, or read it through the API.

Search by keyword with a specials filter:

{
"mode": "search",
"queries": ["garage shelving"],
"specialsCategory": "special",
"marketplaceOnly": true,
"maxItems": 20
}

Paste a product link and a search link:

{
"mode": "url",
"urls": [
"https://www.bigw.com.au/product/sample-item/p/1234567",
"https://www.bigw.com.au/search?text=kettle"
]
}

Search with a price range and reviews:

{
"mode": "search",
"queries": ["kettle"],
"minPrice": 20,
"maxPrice": 150,
"fetchReviews": true,
"maxReviewsPerProduct": 10,
"maxItems": 30
}

Recurring monitoring of one search:

{
"mode": "search",
"queries": ["shelving"],
"incrementalMode": true,
"emitExpired": true,
"stateKey": "shelving-watch",
"maxItems": 0
}

Run it from your code

Python:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("abotapi/bigw-marketplace-scraper").call(run_input={"mode": "search", "queries": ["garage shelving"]})
for product in client.dataset(run["defaultDatasetId"]).iterate_items():
print(product["name"], product["price"], product["currency"])

JavaScript:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('abotapi/bigw-marketplace-scraper').call({ mode: 'search', queries: ['garage shelving'] });
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Or connect it to Make, Zapier, n8n, Google Sheets or webhooks from the Integrations tab.

Max products, Max pages, sort order and Resume

Max pages defaults to 0 (walk every page): a search or URL walk stops naturally once the storefront's own result total is reached or a page repeats with no new products, so there is no artificial page cap unless you set one. Max products caps the overall run.

Resume (resumeFromRunId): pass a prior run's ID (or dataset ID) and this run seeds its de-duplication set from that run's dataset, so it skips products already collected there and returns only a delta. This works reliably for pasted product links. For a search or pasted search link it is much weaker than it sounds: a listing walk stops at the first page whose products were all already collected, and the previously collected products count for that check. So if the earlier run collected every product on the first page of a search, the resumed run stops on that first page and returns nothing more from it, even when later pages hold products the earlier run never reached. For recurring top-ups of a search, use Incremental mode instead.

Sort orders other than Relevance / Newest first read the listing first (up to Max products, rounded up to whole pages) and push only once it is sorted. "Highest rated" is sorted by this actor, not by the site, so with a Max products cap it returns the highest-rated products among the first pages of the relevance listing, not the highest-rated products overall.

Incremental mode (recurring monitoring)

Turn on incrementalMode to run the same search or URL list on a schedule and get only what changed. Every product is classified against the last run of the same search/filter setup:

  • NEW: not seen before.
  • UPDATED: a real catalogue field changed (changedFields lists which). Price, was-price, saving, specials flags, stock, condition, listing status, fulfilment and the variant/colour/size matrix all count; the aggregate rating and the reviews/reviewStats fields are driven by other customers and deliberately excluded from change detection, so a new review alone never trips UPDATED.
  • UNCHANGED: nothing changed (suppressed, not returned or billed, unless emitUnchanged is on).
  • REAPPEARED: was gone, is back.
  • EXPIRED: was tracked, no longer found. Only produced when emitExpired is on and the run judges that it reached the end of every keyword/URL in this search, with no resumeFromRunId and without hitting Max products or Max pages. That judgement can be wrong in the cases listed below, so a live product can be reported EXPIRED.

State is scoped automatically to your exact mode/queries/urls/filters, so two different searches never share a baseline, unless you pin stateKey yourself to share one on purpose. emitUnchanged and emitExpired are off by default because they return, and bill, rows you already have.

A few edge cases worth knowing before you rely on this for billing-sensitive monitoring:

  • Max products does not cap EXPIRED rows. Once a run qualifies as a complete scan, every tracked product missing from that scan is emitted as EXPIRED in one batch, with no reference to Max products at all. A tightly-capped run with emitExpired on can therefore return far more rows (and cost more) than Max products suggests.
  • With Max products set, most products on each page are never checked. The remaining Max products budget is applied to each page's products before unchanged ones are filtered out, so on every page only as many unseen products as Max products still allows are compared at all (for example 20 of a 48-product page); the rest of that page is skipped for this run. A genuinely NEW or UPDATED product sitting later on the same page is then not returned. Worse, UNCHANGED rows are not returned, so they do not use up Max products, the run usually reaches the end without hitting the cap, and with emitExpired on every tracked product skipped this way is returned and billed as EXPIRED even though it is still live (then billed again as REAPPEARED on the next run). The same happens on sorted runs, where products beyond Max products are cut before they are checked. For incremental monitoring, set Max products to 0.
  • Bootstrapping incremental mode from resumeFromRunId re-bills once. If you turn on incrementalMode for the first time on a run that also uses resumeFromRunId, the products seeded from the resumed run are billed once more, as UPDATED (with every field listed in changedFields), on the next scheduled run that reaches them, even if nothing about them changed. After that, normal UNCHANGED suppression applies. The bootstrap run itself is also subject to the resume limitation above, so it may return little or nothing from a search.
  • A run interrupted by a platform migration (or resurrected after a failure) is not safe for incremental billing. The run's progress checkpoint stores only which products were pushed and the page reached; the incremental baseline is saved only when the run finishes cleanly. After the restart: every product classified before the interruption keeps its old baseline, so it is billed again as NEW or UPDATED on the next ordinary run; with emitExpired on, those same products look missing to the restarted run and are returned and billed as EXPIRED although they are live; Max products counts only products pushed after the restart, so each restart can add up to another full Max products of returned and billed rows; and products that were being processed at the moment of the interruption can be dropped, while the restarted run can skip the first page of the search it was on or stop at the page it was on, leaving the rest of that search unread (which it then still counts as a complete scan).
  • A shared stateKey mixes completeness across searches. If you deliberately point two differently-configured searches at the same stateKey, a run that fully scans only one of them marks products that only the other search finds as EXPIRED, even though they are still live. Use distinct stateKey values per search unless you specifically want this.
  • Very similar keywords or URLs in one run can end each other's walk early. If earlier keywords or URLs in the same run already collected every product on a later keyword's first page, that keyword stops after that page and is treated as fully walked, even if it has more results further on. Those unread products are then missing from the run and, with emitExpired on, returned as EXPIRED if they were tracked.
  • A pasted search URL that starts on a later page. URL mode walks forward only from the page number in the link you paste, yet reaching the end still counts as a complete scan, even though earlier pages were never visited. Tracked products that move to an earlier page are reported EXPIRED, and if the listing later has fewer pages than your starting page the run reads nothing and reports every tracked product as EXPIRED. Paste search links starting at page 1 (or use Search mode) if you use emitExpired.

Send results into your apps (MCP connectors)

Optionally pipe the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. This is an extra delivery step after the scrape: the Apify dataset is never changed.

What gets written to the connector: a condensed, human-readable summary of each record, not the full JSON. Each item becomes one entry with a title and its key fields flattened to plain text. The complete record always stays in the Apify dataset.

  1. Authorize a connector once under Apify, Settings, Integrations (Notion, Linear, Airtable, or Apify).
  2. Select it in the "Pipe results into your apps" input field. (If the picker is empty, you haven't authorized a connector yet.)
  3. For Notion, also set notionParentPageUrl to the page where items should be created.

The connection is mediated by Apify's MCP proxy, so this actor never sees your third-party credentials. Leave the field empty to skip.

Input Parameters

ParameterTypeDefaultDescription
modestringsearchsearch (keyword and filters) or url (paste product/search links).
queriesarray(none)Keywords to search, one per entry (for example "piano keyboard"). Each keyword is searched separately. Leave empty to browse the whole marketplace.
urlsarray(none)Product or search URLs to scrape (for example a /p/<id> product link or a /search?text=... link). Multiple URLs supported.
marketplaceOnlybooleantrueKeep only third-party marketplace-seller listings; turn off to include BIG W's own range.
brandstring(none)Keep only products whose brand matches this value.
categorystring(none)Restrict results to a BIG W category id (the trailing number in a category URL).
specialsCategorystring"" (Any)Show only products in one of BIG W's specials views: on special/reduced, clearance, flash deal, lowest price in 7 or 14 days, or new arrivals.
dealstring(none)Advanced: filter by a raw BIG W deal label if the selector above doesn't list it. Combined with it when both are set.
sortBystringrelevancerelevance, priceAsc, priceDesc, ratingDesc, nameAsc, or newDesc.
minPriceinteger(none)Only keep products priced at or above this amount (AUD).
maxPriceinteger(none)Only keep products priced at or below this amount (AUD).
minRatinginteger(none)Only keep products with an average customer rating at or above this value (1 to 5).
includeOutOfStockbooleantrueInclude out-of-stock products; turn off to keep only in-stock ones.
fetchReviewsbooleanfalseAlso collect customer reviews and an aggregate rating summary per product.
maxReviewsPerProductinteger20Cap on reviews collected per product when fetchReviews is on. 0 = all available.
maxItemsinteger20Maximum number of products to return across the whole run. 0 = unlimited.
maxPagesinteger0Safety cap on result pages walked per keyword/URL. 0 = unlimited: the walk still stops naturally at the storefront's own end of results.
resumeFromRunIdstring(none)ID of a previous run (or dataset) of this actor. Already-collected products are skipped, so this run returns only new ones (a delta). For searches, see the Resume note in How to Use.
incrementalModebooleanfalseReturn only new and changed products on scheduled runs of the same search.
stateKeystring(none)Name a monitoring campaign to keep its state stable, or share state across differently-configured runs on purpose.
emitUnchangedbooleanfalseAlso return (and bill) products unchanged since the last run, marked UNCHANGED.
emitExpiredbooleanfalseAlso return (and bill) products no longer found, marked EXPIRED. Only produced after a complete scan (see Incremental mode above).
proxyobjectApify ProxyConnection settings.
mcpConnectorsarray(none)Optional: send a summary of each record to apps you authorized under Integrations.
notionParentPageUrlstring(none)Notion connector only: page under which records are created.
maxNotifyListingsinteger50Cap on items written to each connector per run.

Output Example

Sample shape: values are illustrative placeholders, not from a live record.

{
"articleId": "7700001111",
"gtin": "9312345678901",
"ean": "9312345678901",
"mpn": "SC-SHELF-01",
"barcodes": null,
"name": "Sample Garage Shelving Unit",
"title": "SampleCo Sample Garage Shelving Unit",
"brand": "SampleCo",
"sellerType": "Marketplace Seller",
"sellerName": "Sample Seller Co",
"productChannel": "MARKETPLACE",
"isMarketplace": true,
"condition": "NEW",
"listingStatus": "ACTIVE",
"url": "https://www.bigw.com.au/product/sample-item/p/7700001111",
"price": 45.0,
"wasPrice": 60.0,
"rrp": 65.0,
"saving": 15.0,
"savingsPercent": 25,
"isOnSpecial": true,
"unitPrice": { "price": 2.25, "unit": "100 G" },
"currency": "AUD",
"priceLabel": "Special",
"priceLabelType": "PERCENT_OFF",
"clearance": false,
"onlineOnlyPromotion": false,
"promotions": [],
"paymentOptions": ["Afterpay", "Zip"],
"rating": 4.5,
"description": "A sample product description.",
"imageUrl": "https://www.bigw.com.au/medias/sample-image.jpg",
"images": ["https://www.bigw.com.au/medias/sample-image.jpg"],
"category": "Home & Garden",
"categories": ["Home & Garden", "Storage"],
"categoryPath": "Home & Garden > Storage > Shelving",
"variants": null,
"colours": ["Black", "White"],
"sizes": null,
"specifications": { "Material": "Steel", "Assembly required": "Yes" },
"maxQuantity": 5,
"deliverable": true,
"collectable": false,
"limitedFreeShipping": false,
"inStock": true,
"fulfilment": { "logisticType": "DIRECT_SHIP", "dsv": false, "delivery": true, "collection": false },
"searchMode": "search",
"source": "bigw.com.au"
}

Plan Requirement

The default proxy setting works out of the box, and the connection rotates and escalates automatically when one is refused. For large or frequent runs, the residential proxy group gives more headroom; pick it under Connection.

FAQ

How much does it cost?

You pay per product returned, plus an optional review-enrichment charge only when Fetch customer reviews is on. The Pricing tab shows the current rates. Use Max products to cap the cost of any run.

This actor collects only publicly available product and review data. You are responsible for how you use it: follow BIG W's terms and the laws that apply to you, and get legal advice if you plan commercial redistribution. Product facts (price, brand, specifications) are generally not protected, but images, descriptions and review text may be subject to third-party rights.

Can I get only new or changed products on a schedule?

Yes. Schedule the actor from the Schedules tab and turn on Incremental mode. Each run then returns only new, updated and reappeared products, and unchanged ones are not billed. Set Max products to 0 for these runs, and read the caveats in How to Use before relying on this for exact billing on capped, resumed, migrated or overlapping runs.

Why did marketplaceOnly change what I expected?

Marketplace sellers only is on by default, so a plain keyword search returns third-party seller listings only, not BIG W's own range. Turn it off to see both, or combine it with Specials / offers to browse deals across the whole catalogue.

Why did my run fail instead of returning an empty dataset?

If the site refuses every request, the run stops with a clear message so "no matches today" is never confused with "nothing could be read". Run it again in a few minutes. If only some keywords or URLs could be read, you still get what was found.

Can I use it with AI agents or MCP?

Yes. Call it from any Apify integration or MCP client, and use the connector field to push results into Notion, Linear or Airtable.

๐Ÿ”— Want more e-commerce data?

Pair this actor with these related scrapers from the same team:

๐Ÿ›’ Myer Scraper
Scrape Myer (myer.com.au) department-store products: name, brand, price, was-price...
๐Ÿ›’ Harvey Norman Scraper
Scrape Harvey Norman Australia products: name, brand, price, was-price / discount...
๐Ÿ›’ Officeworks Scraper
Scrape Officeworks products by keyword, category, or URL. Extract names, brands, prices...
๐Ÿ›’ Kmart Scraper
Scrape products and customer reviews from Kmart.com.au. Search by keyword or use...
๐Ÿ›’ Costco AU Scraper
Scrape Costco.com.au products by keyword or product, search and category URLs. Extract...
๐Ÿ›’ Amazon Australia Product & Reviews Scraper
Scrape Amazon Australia (amazon.com.au) products and customer reviews. Search by keyword...

๐Ÿ‘‰ Browse all abotapi scrapers

๐Ÿ’ฌ Support

  • ๐Ÿž Found a bug or a missing field? Open a ticket on the Issues tab. We usually reply within hours.
  • ๐Ÿ› ๏ธ Need another site, extra fields or a private build? Email contact@abotapi.com.
  • โญ Enjoying it? A quick review on the actor page helps other users find it.