The Warehouse NZ Scraper icon

The Warehouse NZ Scraper

Scrape The Warehouse New Zealand search results, category pages, and direct product URLs. Extract prices, availability, brand, images, breadcrumbs,…

Start using this actor on Apify ↗Need a custom scraper?Contact us ↗

The Warehouse NZ Scraper at a glance

The Warehouse NZ Scraper is a ready-to-run Apify actor from abotapi for collecting ecommerce data. Its documented output includes id, url, title, brand and change type (incremental mode), which you can export as JSON, CSV or Excel or read through the Apify API. It costs $1.80 per 1,000 results on the Apify Free plan and from $1.00 on paid plans, with smaller per-run or optional feature charges listed on Apify.

Runs on
Apify cloud: console, API, schedules and integrations
Data type
Ecommerce, Developer Tools, Automation
Region
Oceania
Pricing
$1.80 per 1,000 results (Free plan), from $1.00 on paid plans
Output
Documented below · JSON, CSV, Excel
Inputs
20 options

Scrape The Warehouse New Zealand search results, category pages, and direct product URLs. Extract prices, availability, brand, images, breadcrumbs, attributes, product details, and optional customer reviews. Supports search mode, URL mode, sorting, pagination, and MCP connector export.

What The Warehouse NZ Scraper can do

  • Two ways to find products. Search by keyword across the whole catalog, or paste search, category, or product URLs when you already know where you're going.
  • Specials, not just full price. Browse The Warehouse's own Specials collections, including a dedicated Mega Toy Sale, and get isOnSpecial plus an offer end date on every match the site itself asserts one for.
  • Pagination on autopilot. Each query, URL, or Specials category walks its own result pages and stops once the storefront reports no next page or Max products is reached, no manual page counting.
  • Detail-page enrichment on demand. Turn on Fetch product details to add description, structured attributes, breadcrumbs (falling back to the listing category path when the product page has none) and full image galleries beyond the search snippet, and pay the enrichment fee only for products that actually reach the dataset.
  • Normalized customer reviews. Collect ratings, review text, verified-purchaser badges and vote counts in one consistent shape, capped per product.
  • Built for monitoring. Incremental mode classifies every product NEW, UPDATED, UNCHANGED, REAPPEARED or EXPIRED across scheduled runs, and Resume skips products an earlier run already saved (see its known limitation under How to Use).

Choose what to collect

These inputs let you configure The Warehouse NZ Scraper - Products, Prices, Stock & Reviews. Open the actor on Apify to enter your values and review the current options.

Supported input fields
InputWhat it controls
modestring · requiredUse search mode for keyword search. Use URL mode when you already have The Warehouse search, category, or product URLs.

Choices: search, url

queriesarrayOne or more keywords to search. Each query is searched separately.
specialsCategorystringOptional. Browse one of The Warehouse's own Specials collections directly, instead of a keyword search. These are real storefront category pages badged "Specials" on-site; matching products are returned with isOnSpecial=true and, when the site shows one, an offer end date. The Warehouse never shows a struck-through original/was price anywhere on the site, so no wasPrice field is produced -- isOnSpecial and offerEndsAt are the real signals the site itself asserts. When set, this replaces keyword search for the run.

Choices: , specials, specials_electronics_gaming, specials_home_garden, specials_health_beauty, specials_food_pets_household, mega_toy_sale

sortBystringMaps directly to the storefront search sort rules. URL mode preserves whatever sort is already encoded in the pasted URL.

Choices: relevance, price_asc, price_desc, top_rated, newest, best_sellers, name_asc, name_desc

urlsarraySearch, category, or product URLs. Left untouched, URL mode scrapes one example of each supported shape. Pagination starts from the page encoded in the URL when present and walks forward.
fetchDetailsbooleanOpen each product page for description, brand, structured attributes, breadcrumbs, image gallery and availability.
includeUnavailablebooleanKeep products marked unavailable or out of stock. Turn off to return only likely in-stock products when the page exposes availability.
Show 13 more inputs
More input fields
InputWhat it controls
maxItemsintegerMaximum matching products to save. Leave empty or set 0 for unlimited. This is the run's only default cap.
maxPagesintegerLeave empty or set 0 for unlimited; the run walks the whole result set for each query/URL, stopping naturally when the storefront reports no next page or a page repeats no new products, or at Max products if that's reached first. Set a number only when you want an explicit page cap below that natural stop.
fetchReviewsbooleanAlso collect product reviews when the page exposes a review API or inline review markup. Each started block of 10 delivered reviews bills one detail-enrichment unit.
maxReviewsPerProductintegerCap on reviews collected per product when Fetch customer reviews is on (maximum 1000; 0 uses the default of 20). Each started block of 10 delivered reviews bills one detail-enrichment unit.
resumeFromRunIdstringPaste a previous run ID or dataset ID to continue a large walk-all pull: product URLs already saved by that run are loaded before scraping starts and skipped, so this run only appends new products. For recurring monitoring of the same search, use Incremental mode below instead. Leave empty for a normal fresh run.
incrementalModebooleanTurn this on for daily or recurring monitoring. The first run returns all matching products as NEW. Later runs normally return only NEW, UPDATED, and REAPPEARED products. Turn on "Emit unchanged" or "Emit expired" only when you also want those products returned (and billed). UPDATED means a product's own data changed: price, price range, specials flag and offer end date, availability, title, brand, description, images (compared without their changing CDN query parameters), attributes, features and similar fields; the fields that changed are listed in changedFields. Ratings, rating counts, review counts and review text never trigger UPDATED, and neither does scrapedAt or the source page a product was listed on (sourceUrl). You can exclude more fields with "Ignore fields when detecting changes". EXPIRED is only produced after a run that scanned the whole search (no Max products or Max pages cap, no pasted URL that starts mid-listing, no Resume). State is kept separately for each mode/query/URL/specials/sort/detail/review/availability setup; use State key when you want to name or deliberately share a monitoring campaign. To continue one specific interrupted run instead, use Resume from a prior run above.
stateKeystringOptional. Name this monitoring campaign to keep its state stable, or to deliberately share state across differently-configured runs. Leave empty to let the actor derive a key automatically from the search/URL, specials, sort, and detail/review/availability settings, different searches then never mix state with each other.
emitUnchangedbooleanOff by default. Turn on to also return products that have not changed since the last run, marked UNCHANGED. This returns, and bills, extra rows you already have, so leave it off unless you specifically want the full snapshot every run.
emitExpiredbooleanOff by default. Turn on to also return products that were present in a previous run but are no longer found, marked EXPIRED. Only produced once a run has fully scanned the tracked search, not when Max products capped it or when Resume was used. This returns, and bills, extra synthetic rows, so leave it off unless you need expiry tracking.
ignoreFieldsForChangesarrayExtra output fields that must never make a product count as UPDATED. Use a field name such as "description", or a dotted path for a nested field such as "attributes.Colour". Ignored fields stay in the output and are left out of changedFields. Already ignored by default: scrapedAt, ratingValue, ratingCount, reviewCount, reviews, rawProduct, and the query-string part of image URLs. Only used when Incremental changes is on.
mcpConnectorsarrayOptionally send the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize a connector once under Apify → Settings → Integrations, then select it here. Notion gets a page per item; other connectors receive a best-effort write or digest. Leave empty to skip, this never changes the dataset output. Supported: Notion (https://mcp.notion.com/mcp), Linear (https://mcp.linear.app/sse), Airtable (https://mcp.airtable.com/mcp), Apify (https://mcp.apify.com).
notionParentPageUrlstringURL (or id) of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors.
maxNotifyListingsintegerCap on items written to each connector per run. Does not affect the dataset.

Fields in the output

The documented dataset includes the fields below. Availability can depend on the source page and selected mode.

productIdID
urlURL (link)
titleTitle
brandBrand
changeTypeChange type (incremental mode)
pricePrice
currencyCurrency
availabilityAvailability
conditionCondition
categoryCategory
skuSKU
gtinGTIN
Show 27 more fields
mpnMPN
isOnSpecialOn Special
offerEndsAtOffer Ends
specialsCategorySpecials Category
ratingValueRating
ratingCountRatings
reviewCountReviews
imageCountImages
scrapedAtScraped
changedFieldsChanged fields (incremental mode)
firstSeenAtFirst seen (incremental mode)
lastSeenAtLast seen (incremental mode)
descriptionDescription
breadcrumbsBreadcrumbs
categoryPathCategory path
attributesAttributes
featuresFeatures
imagesImages
sellerNameSeller
marketplaceProductMarketplace product
reviews.ratingRating
reviews.titleReview title
reviews.bodyReview
reviews.authorAliasAuthor
reviews.publishedAtPublished
reviews.verifiedPurchaserVerified purchaser
reviews.isRecommendedRecommended

Example output

An example from this actor’s documentation. Values are illustrative; this is not a fresh live result.

{
  "url": "https://www.thewarehouse.co.nz/p/sample-two-slice-toaster/R0000001.html",
  "productId": "R0000001",
  "sku": "SKU000001",
  "gtin": "9400000000001",
  "mpn": "MPN-0001",
  "title": "Sample Two Slice Toaster",
  "brand": "Sample Home",
  "description": "Sample product description text describing the item.",
  "category": "homegarden-appliances-kitchen",
  "breadcrumbs": [
    "homegarden",
    "homegarden-appliances",
    "homegarden-appliances-kitchen"
  ],
  "price": 49.99,
  "priceMax": 59.99,
  "priceText": "$49.99",
  "currency": "NZD",
  "availability": "IN_STOCK",
  "condition": "New",
  "image": "https://www.thewarehouse.co.nz/dw/image/sample/R0000001.jpg",
  "images": [
    "https://www.thewarehouse.co.nz/dw/image/sample/R0000001.jpg"
  ],
  "imageCount": 1,
  "ratingValue": 4.5,
  "ratingCount": 120,
  "reviewCount": 18,
  "categoryPath": [
    "homegarden",
    "homegarden-appliances",
    "homegarden-appliances-kitchen"
  ],
  "marketplaceProduct": false,
  "sellerName": null,
  "reviews": null,
  "attributes": {
    "Colour": "Red",
    "Wattage": "800W"
  },
  "isOnSpecial": true,
  "offerEndsAt": "2026-10-05",
  "specialsCategory": null,
  "features": [
    "Auto shut-off",
    "Removable crumb tray"
  ],
  "scrapedAt": "2026-09-29T02:00:00.000Z"
}

Ways to use this data

  • Price and stock monitoring: track price changes, specials and availability for a watchlist of products over time.
  • Retail and market research: benchmark New Zealand general-merchandise pricing and promotions across categories.
  • Catalog and assortment analysis: build a dataset of products, brands and category paths for a specific department.
  • Review analytics: collect ratings and review text for products you sell or compete with.
  • Deal and specials tracking: monitor The Warehouse's Specials collections and the Mega Toy Sale for markdowns worth alerting on.

Before you run

Start with a small input and check the resulting records against your expected fields. Source content and actor options can change; the current Apify listing is the reference for availability and pricing.

Questions about this actor

What data does The Warehouse NZ Scraper return?

The documented output for The Warehouse NZ Scraper includes id, url, title, brand, change type (incremental mode), price, currency and availability. Availability of each field depends on the source page and the selected mode.

How much does The Warehouse NZ Scraper cost?

It costs $1.80 per 1,000 results on the Apify Free plan and from $1.00 on paid plans, with smaller per-run or optional feature charges listed on Apify. The Apify listing shows the current rate for every plan.

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 records, and unchanged ones are not billed unless you turn that on too.

What's the difference between Resume and Incremental mode?

Resume (resumeFromRunId) continues one specific interrupted run you already started. Incremental mode is for running the same search or URL set again and again (for example, daily) and getting only what changed. They solve different problems and can be used together to bootstrap monitoring from an existing large pull, but only when no Incremental state exists yet for that search: if it already does, a run with both set fails straight away with a message telling you to remove Resume or set a different State key.

Why did a later keyword, or a resumed run, return fewer products than expected?

Two known limitations, described under "How Max products and Max pages shape a run" and "Resume and recurring updates". First, when one run covers several keywords or URLs, a later one stops as soon as a page holds only products an earlier one already returned, so its deeper pages are skipped. Second, a resumed run starts every search again from page 1 and stops at the first page it already saved. With Emit expired on, products a multi-keyword run did not reach are marked EXPIRED even though they are still listed, and come back as REAPPEARED on a later run. Run overlapping keywords or URLs as separate runs, extend a large pull with a URL that points at a later results page, and treat EXPIRED as "not seen this run" rather than proof of delisting.

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

This actor fails outright only when it cannot start a meaningful scrape at all: no search keywords or URLs supplied, a pasted Resume run/dataset ID that this Apify account cannot read, or Resume combined with Incremental mode for a search that already has saved Incremental state. If the site blocks or challenges some requests, you still get every product that was reached; run it again to fill in the rest. Note that a run in which every request was blocked finishes with an empty dataset rather than failing, so check the run log if you get zero products for a search you know has results.

Ready to collect with The Warehouse NZ Scraper?

Run it on Apify with your own input and export the results as JSON, CSV or Excel.