Officeworks Australia Scraper Lite icon

Officeworks Australia Scraper Lite

Scrape Officeworks (officeworks.com.au) products: name, brand, title, price, GST, was/original price, deals and clearance specials, stock by state,…

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

Officeworks Australia Scraper Lite at a glance

Officeworks Australia Scraper Lite is a ready-to-run Apify actor from abotapi for collecting web data. Its documented output includes name, change type (incremental mode), brand, price and was, which you can export as JSON, CSV or Excel or read through the Apify API. It costs $1.00 per 1,000 results on the Apify Free plan, with smaller per-run or optional feature charges listed on Apify.

Runs on
Apify cloud: console, API, schedules and integrations
Data type
Other
Pricing
$1.00 per 1,000 results (Free plan)
Output
Documented below · JSON, CSV, Excel
Inputs
31 options

Scrape Officeworks (officeworks.com.au) products: name, brand, title, price, GST, was/original price, deals and clearance specials, stock by state, images, variants, specifications, ratings and reviews. Search by keyword, specials or filters, or paste product, search or category URLs.

What Officeworks Australia Scraper Lite can do

  • Two ways to find products. Search by keyword with brand, price and rating filters, or paste product, search, category or specials links directly. No need to build URLs by hand.
  • Deals and Clearance, covered natively. Browse Officeworks' own promotional collections instead of (or alongside) a keyword search, with the same filters and sort still applying.
  • Genuine reductions only. Officeworks runs an every-day-low-price model; wasPrice, savingsAmount and savingsPercent are populated only when a product is genuinely reduced below its everyday price, never fabricated.
  • Full product detail on demand. Switch on detail enrichment for the complete description, feature bullets, specifications, identifiers, image gallery and variant matrix, or leave it off for a faster, cheaper listing-only run.
  • Ratings and reviews. Every product already carries the aggregate rating and review count; detail enrichment adds the star-rating distribution and individual customer reviews.
  • Availability by state. See which Australian states a product ships to and whether it is available in-store or online.

Choose what to collect

These inputs let you configure Officeworks Australia Scraper Lite. Open the actor on Apify to enter your values and review the current options.

Supported input fields
InputWhat it controls
modestring · requiredChoose 'search' to use keywords and filters, or 'url' to scrape specific product, search or category URLs you paste below.

Choices: search, url

queriesarrayOne or more keywords to search, for example 'laptop' or 'printer ink'. Each keyword is searched separately.
specialsCategorystringOptional. Scrape one of Officeworks' promotional collections instead of (or alongside) your keywords: Deals (curated featured offers) or Clearance (reduced-to-clear stock). Brand, price, rating filters and sort still apply. Leave empty to skip. Note: Officeworks uses an every-day-low-price model, so most products do not carry a strike-through 'was' price.

Choices: deals, clearance

urlsarrayProduct, search or category URLs to scrape, for example https://www.officeworks.com.au/shop/officeworks/p/some-product-sku, https://www.officeworks.com.au/shop/officeworks/search?q=laptop or https://www.officeworks.com.au/shop/officeworks/c/office-supplies/pens/ballpoint-pens. Multiple URLs supported.
brandstringOptional. Keep only products whose brand matches this value, for example 'HP' or 'Keji'. In url mode, a pasted search or category link that names its own brands (brand boxes ticked on the site, or brand=) uses those instead.
sortBystringOrdering applied to the results by the store's product-search service.

Choices: relevance, newest, nameAsc, priceAsc, priceDesc, ratingAsc, ratingDesc

minPriceintegerOptional. Only keep products priced at or above this amount (AUD).
Show 24 more inputs
More input fields
InputWhat it controls
maxPriceintegerOptional. Only keep products priced at or below this amount (AUD).
minRatingintegerOptional. Only keep products with an average customer rating at or above this value (1 to 5).
includeOutOfStockbooleanInclude products that are not currently available in-store or online. On by default; turn off to keep only available products.
detailEnrichmentbooleanFor each product, also fetch the product page for the full description, feature bullets, specifications, identifiers and image gallery, plus the star-rating distribution and customer reviews. Adds one request per product, which consumes additional platform usage; there is no enrichment event fee. Turn off for a faster, lower-cost run that returns the listing card fields only (name, price, brand, aggregate rating and review count) with no reviews.
maxReviewsPerProductintegerCap on reviews collected per product when detail enrichment is on. Use 0 for all available reviews, up to a hard cap of 1000 per product. Products with no reviews leave the review fields absent.
maxItemsintegerMaximum number of products to return across the whole run. Use 0 for unlimited.
maxPagesintegerOptional safety cap on result pages walked per keyword / URL. A pasted URL that names its own start page counts from that page (maxPages=2 on a page=5 URL walks pages 5-6). A resumed run counts from page 1 of the original run, so the cap is cumulative across resumes, not reset per run. Use 0 to walk every page (the run still stops automatically once Max products is reached, or once a page repeats or the store's own result total is reached).
deliveryPostcodestringFour-digit Australian postcode to check home delivery to, for example 4209. Needed when Check home delivery is on. Leave empty otherwise.
verifyHomeDeliverybooleanFor every returned product, ask the store whether it can be delivered to the delivery postcode right now, and add the delivery type, quantity, estimated arrival dates, click and collect and in-store quantities, and the postcode's delivery zone. The listing fields availableStates / availableOnline are index flags, not a delivery answer. A product whose answer cannot be read gets empty (null) delivery fields, never 'unavailable'. These lookups consume additional platform usage; there is no enrichment event fee. Requires a delivery postcode.
pickupStoreIdstringOptional store code, for example W444, whose click and collect and in-store quantities are reported. Ignored unless Check home delivery live is on. Leave empty to use the store nearest the delivery postcode. Delivery type, quantity and estimated arrival do not depend on the store.
resumeFromRunIdstringOptional. ID of a previous run of this actor (or a dataset ID). Products already in that dataset are skipped, so this run returns only NEW products (a delta). Combine both runs' datasets for the full set. Max products then counts only the new products. For recurring daily monitoring of the same search, use Incremental mode below instead.
incrementalModebooleanTurn this on for daily or recurring monitoring. UPDATED is driven by the product's own data (price, specials and promo label, stock and availability, name, brand, category, images and the other catalogue fields); rating, reviewCount, ratingDistribution, recommendedCount, reviewsCollected and reviews are excluded and never cause UPDATED. 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. State is kept separately for each distinct search/filter setup (or by State key below).
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 your search/filter/detail settings (switching Detail enrichment continues from the same search's saved baseline), different searches then never mix state with each other.
baselineDatasetIdstringOptional. Pick the dataset of an earlier run of this Actor (same search and settings) to use as your starting point, so your first incremental run returns only products that changed since then instead of the whole search again. Pick the dataset unedited: it must be this Actor's own product output. Only used on the first run for a state key; ignored once that state key already tracks products. Cannot be combined with Resume from a previous run. If the dataset is old, everything that changed since is returned as UPDATED or NEW.
earlierHistoryStoreIdstringOptional. Pick the saved-history store of the Officeworks Australia Scraper (named officeworks-com-au-incremental-state) so your first Lite run for a State key, or for the same search settings, continues from the history that scraper already tracked, instead of returning the whole search as NEW. With an automatic key, the history saved under either Detail enrichment setting of the same search is used. The store is only read, never changed. Only used on the first run for a state key; ignored once Lite already tracks products for that key (or, with an automatic key, for the same search under the other Detail enrichment setting), or when Start from an existing dataset or Resume is set.
emitUnchangedbooleanOff by default. Turn on to also return products that have not changed since the last run, marked UNCHANGED. This returns 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 or Max pages capped it, or when Resume was used. This returns extra synthetic rows.
changeScopestringAll fields (default): any change to the product record, except the always-ignored review fields, returns an UPDATED row. Price and availability only: only price changes (price, everyday price, was price, savings, special and clearance flags), stock changes (available online, states with stock, in-store availability) and a size or colour added to or removed from the product family return an UPDATED row; descriptions, images, specifications and other details never do. Selling price and availability only: like Price and availability only, but a price change counts only when the selling price (price) moves; the everyday price, was price, savings and special flags never return a row on their own. Every size or colour is its own product at Officeworks, so its own price and stock are compared on its own row. With Check home delivery live on, a change in whether the product can be delivered to your postcode returns an UPDATED row in every option. Changing this option keeps the saved baseline of your search: it never returns the whole search as NEW again.

Choices: all, priceAndStock, sellingPriceAndStock

compactUpdatesbooleanOff by default. When on, UPDATED rows (and EXPIRED rows) are short: sku, url, name, brand, current price and stock, previousPrice, plus priceChanges (old and new value of each moved price or stock field), variantChanges (a size or colour added to or removed from the family) and, with Check home delivery live on, the delivery answer and deliveryChanges. NEW rows always carry the complete product record. Compact rows carry no product-page content (description, specifications, images, reviews).
expireAfterMissedScansintegerOnly used with Emit expired products. A product is marked EXPIRED only after it has been missing from this many full scans in a row (default 1). Raise it (e.g. 3) so a product that briefly drops out of a search or category listing is not reported as gone. A product that comes back resets the count. Stock and delivery status are reported through the availability and delivery fields, not through EXPIRED.
ignoreFieldsForChangesarrayOptional. Field names to leave out of UPDATED change detection, on top of the built-in handling (rating, reviewCount, ratingDistribution, recommendedCount, reviewsCollected and reviews never trigger UPDATED, since other customers change them without the product changing). Use a top-level name such as colour, or a dotted path such as images.url to ignore a nested field. Ignored fields are still returned, just not compared.
mcpConnectorsarrayOptionally send results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize one under Apify, Settings, API & Integrations, then select it here. Notion gets a rich page-per-item export; other connectors get a best-effort write/digest. Leave empty to skip; 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.

nameName
changeTypeChange type (incremental mode) (text)
brandBrand
pricePrice
wasPriceWas
isOnSpecialOn special
promoLabelPromo
currencyCurrency
ratingRating
reviewCountReviews
categoryCategory
skuSKU
Show 39 more fields
imageUrlImage (image)
urlURL (link)
changedFieldsChanged fields (incremental mode) (array)
firstSeenAtFirst seen (incremental mode) (date)
lastSeenAtLast seen (incremental mode) (date)
gtinGTIN
manufacturerPartNumbermanufacturerPartNumber
productTypeproductType
edlpPriceEDLP price
savingsAmountsavingsAmount
savingsPercentsavingsPercent
gstRateGST rate
descriptiondescription
featuresfeatures
specificationsspecifications
imagesimages
availableStatesavailableStates
isAvailableInStoreisAvailableInStore
availableOnlineavailableOnline
variantCountvariantCount
variantsvariants
reviewsCollectedCollected
recommendedCountrecommendedCount
ratingDistributionRating distribution
reviewsReview list
previousPricePrevious price (number)
priceChangesPrice and stock changes (object)
variantChangesSize / colour changes (array)
otherChangesOther changes (object)
deliveryPostcodePostcode
deliveryZoneZone
deliveryTypeDelivery type
deliveryAvailableCan be delivered
deliveryQuantityDelivery quantity
deliveryEtaFromArrives from (date)
deliveryEtaToArrives by (date)
clickAndCollectQuantityClick and collect qty
inStoreQuantityIn-store qty
deliveryStoreNameStore

Example output

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

{
  "sku": "SAMPLE0001",
  "name": "Sample A4 Display Book 20 Pocket",
  "title": "Sample Brand A4 Display Book 20 Pocket",
  "brand": "Sample Brand",
  "url": "https://www.officeworks.com.au/shop/officeworks/p/sample-a4-display-book-sample0001",
  "price": 12.5,
  "edlpPrice": 12.5,
  "wasPrice": null,
  "savingsAmount": null,
  "savingsPercent": null,
  "isOnSpecial": true,
  "promoLabel": "Deal",
  "isNew": false,
  "currency": "AUD",
  "gstRate": 10,
  "gtin": "9300000012345",
  "manufacturerPartNumber": "SB-DB20",
  "productType": "Display Books",
  "availableStates": [
    "NSW",
    "VIC",
    "QLD"
  ],
  "isAvailableInStore": true,
  "availableOnline": true,
  "isClearance": false,
  "category": "Display Books",
  "categories": [
    "Office Supplies",
    "Folders & Filing",
    "Display Books"
  ],
  "categoryHierarchy": [
    [
      "Office Supplies",
      "Folders & Filing",
      "Display Books"
    ]
  ],
  "variantAxes": {
    "Colour": [
      "Blue",
      "Black"
    ]
  },
  "variantCount": 2,
  "variants": [
    {
      "sku": "SAMPLE0001",
      "url": "https://www.officeworks.com.au/shop/officeworks/p/sample-a4-display-book-sample0001",
      "attributes": {
        "Colour": "Blue"
      },
      "imageUrl": "https://www.officeworks.com.au/images/sample-thumb.jpg"
    }
  ],
  "shortDescription": "A durable display book for everyday filing.",
  "features": [
    "20 pockets",
    "A4 size",
    "Reinforced spine"
  ],
  "specifications": {
    "Brand": "Sample Brand",
    "Pockets": "20"
  },
  "imageUrl": "https://www.officeworks.com.au/images/sample.jpg",
  "images": [
    "https://www.officeworks.com.au/images/sample.jpg"
  ],
  "rating": 4.3,
  "reviewCount": 42,
  "ratingDistribution": {
    "1": 2,
    "2": 2,
    "3": 6,
    "4": 12,
    "5": 20
  },
  "recommendedCount": 35,
  "reviews": [
    {
      "reviewId": "SAMPLE-REVIEW-1",
      "rating": 5,
      "title": "Handy for the office",
      "body": "Good quality and holds up well.",
      "author": "SampleReviewer",
      "date": "2026-03-01T09:00:00.000+00:00",
      "helpfulCount": 2
    }
  ],
  "reviewsCollected": 1
}

Ways to use this data

  • Price monitoring and repricing tools: track price, was-price, savings and specials on a schedule to react to Officeworks' pricing moves.
  • Comparison shopping and catalog aggregators: build a structured Officeworks product catalog with identifiers, categories and images.
  • Review and reputation analytics: collect ratings, review counts and individual reviews to gauge customer sentiment per product or category.
  • Merchandising and market research: monitor the Deals and Clearance collections to track what Officeworks is promoting and when.
  • Availability tracking: watch stock by state and online availability for a specific set of SKUs.

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 Officeworks Australia Scraper Lite return?

The documented output for Officeworks Australia Scraper Lite includes name, change type (incremental mode), brand, price, was, on special, promo and currency. Availability of each field depends on the source page and the selected mode.

How much does Officeworks Australia Scraper Lite cost?

It costs $1.00 per 1,000 results on the Apify Free plan, 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 products, and unchanged ones are suppressed by default.

Why did my run return fewer products than Max products, or a very large batch when Emit expired is on?

Max products stops a run once that many products have been returned; a capped page or a capped run does not go back for more. A run with several keywords or links can also stop a later one early when its first page overlaps products already handled, and an incremental run spends slots on unchanged products it then suppresses; see Multiple keywords and specials in one run and How Max products and Max pages shape a run. Separately, emitExpired is not limited by Max products: once a run fully scans the tracked search, every previously-tracked product no longer found is returned as EXPIRED in one batch, which can be larger than your usual Max products if the tracked search shrank a lot since the last run. See the tips under Resume and recurring updates.

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

If the connection is refused before any data could be read, the run stops with a clear message so "no products found" is never confused with "nothing could be read". Run it again in a few minutes. Separately, starting Incremental mode with Resume when that state key already has tracked products also fails on purpose, with a message telling you to drop Resume or pick a different State key, rather than silently mixing the two.

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.

Ready to collect with Officeworks Australia Scraper Lite?

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