JB Hi-Fi AU Scraper icon

JB Hi‑Fi AU Scraper

Scrape JB Hi-Fi Australia (jbhifi.com.au) products from the public storefront. Extract product listings, categories, prices, stock availability and…

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

JB Hi-Fi AU Scraper at a glance

JB Hi-Fi AU Scraper is a ready-to-run Apify actor from abotapi for collecting web data. Its documented output includes recordtype, recordid, sku, handle and url, which you can export as JSON, CSV or Excel or read through the Apify API. It costs $2.00 per 1,000 results on the Apify Free plan and from $1.40 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
Web data
Region
Oceania
Pricing
$2.00 per 1,000 results (Free plan), from $1.40 on paid plans
Output
Documented below · JSON, CSV, Excel
Inputs
23 options

Scrape JB Hi-Fi Australia (jbhifi.com.au) products from the public storefront. Extract product listings, categories, prices, stock availability and customer reviews. Supports product search and category browsing.

What JB Hi-Fi AU Scraper can do

  • One actor instead of three. Rival JB Hi-Fi actors split keyword discovery, product parsing and review parsing across three separate actors, each charging separately for the same data. This actor covers keyword search, product records and reviews in a single run.
  • Card-complete rows. Each result ships 45+ fields straight from the store's own search index: pricing including the GST breakdown, was-price and save amount, delivery and click-and-collect status, store stock counts, release dates, promotion and clearance tags, and the marketplace seller.
  • Real search powers. Facet filters (brand, seller, category, merchandising tags), minimum and maximum price, an on-promotion switch and four server-side sort orders narrow results at the source, not in post.
  • Reviews without a second actor. Enable Fetch reviews and every product row carries its customer reviews as a nested list, with a one-row-per-review output tab for spreadsheets.
  • Built for schedules. Resume past runs, or run incremental mode so a scheduled recurring run pushes only what is new or changed.

Choose what to collect

These inputs let you configure JB Hi-Fi AU 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
modestringsearch: keyword browse with filters, sorting and pagination. urls: walk pasted product, collection or search links (bare SKUs also accepted).

Choices: search, urls

querystringSearch mode: keyword to browse. An omitted keyword falls back to iphone at runtime.
categorystringSearch mode: restrict results to one store collection handle, e.g. tvs or laptops.
sortBystringSearch mode: result order. Server-side sort, not a client-side reorder.

Choices: relevance, price-asc, price-desc, rating-desc

facetsarraySearch mode: repeatable facet tokens that narrow results server-side. Token shape is name:value, e.g. Brand:Apple, Sold by:Hobbyco, Category:Desktops, tag:Red Hot Deal, banner:Clearance.
minPriceintegerSearch mode: only return products priced at or above this amount in AUD.
maxPriceintegerSearch mode: only return products priced at or below this amount in AUD.
Show 16 more inputs
More input fields
InputWhat it controls
onPromotionOnlybooleanSearch mode: return only products currently flagged as on promotion by the store.
startUrlsarrayURLs mode: product pages, collection pages and search-result links (one per line). Bare product SKUs are also accepted. The preloaded examples carry one live example of every accepted shape.
fetchDetailsbooleanRead each product's detail surfaces and fill description, keyFeatures, specs, barcode and options on the row. Off keeps the fast card-only record.
fetchReviewsbooleanRead customer reviews for each product (requires a known SKU). Reviews attach to the product row as a nested list; a Reviews output tab unwinds them to one row per review.
maxReviewsintegerReviews fetched per product when Fetch reviews is on. 0 skips review reads.
maxItemsintegerMaximum number of product records to push. This is the only cap that stops a run early.
maxPagesintegerMaximum result pages walked per search or collection scope. 0 means no page cap: the walk runs to the scope's natural end and Max items remains the only limit that stops a run early.
resumeFromRunIdstringSkip products already present in a previous run's dataset (its default dataset id or run id). Cannot be combined with incremental mode.
incrementalModebooleanDetect changes against a saved baseline keyed to this run's scope. New and changed products are pushed with changeType NEW or UPDATED; unchanged products are suppressed. The comparison covers every record field except the ignored list below.
stateKeystringNamed baseline for incremental mode. Leave empty to derive the baseline from the run scope automatically.
emitUnchangedbooleanIncremental mode: also push unchanged products with changeType UNCHANGED.
emitExpiredbooleanIncremental mode: push products seen in a previous complete scan but absent from this one with changeType EXPIRED. Skipped when the run was capped, resumed or a page read failed.
ignoreFieldsForChangesarrayIncremental mode: field names whose changes never mark a row UPDATED (in-store availability counts change without the product changing). The built-in defaults are inStockStoreCount plus the bookkeeping fields.
mcpConnectorsarraySend results into your apps (MCP connectors). Pick one or more managed connectors and the run exports the dataset to them at the end.
notionParentPageUrlstringWhen the Notion connector is selected: the parent page URL the results are written under.
maxNotifyListingsintegerCap on how many records the connector export writes per run.

Fields in the output

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

recordTyperecordType
recordIdrecordId
skusku
handlehandle
urlURL (link)
titleTitle (text)
brandBrand (text)
categorycategory
pricePrice (AUD) (number)
wasPricewasPrice
saveAmountsaveAmount
currencycurrency
Show 60 more fields
availabilityAvailability (text)
ratingRating (number)
reviewCountreviewCount
onPromotiononPromotion
isMarketplaceisMarketplace
soldBysoldBy
imageUrlimageUrl
releaseDatereleaseDate
updatedAtupdatedAt
modelmodel
conditioncondition
deliveryStatusdeliveryStatus
productLifecycleproductLifecycle
offerTiersofferTiers
limitPerOrderlimitPerOrder
sellerIdsellerId
deliveryTagdeliveryTag
priceExGstpriceExGst
taxGsttaxGst
descriptiondescription
keyFeatureskeyFeatures
specsspecs
barcodebarcode
optionsoptions
ratingDistributionratingDistribution
recommendedCountrecommendedCount
packagedDimensionspackagedDimensions
graphicAttributesgraphicAttributes
productFlagsproductFlags
promotionEndDatepromotionEndDate
priceAfterCashbackpriceAfterCashback
messagesmessages
artistartist
tracklisttracklist
actorsactors
directorsdirectors
releaseQuarterreleaseQuarter
formatformat
freightPricefreightPrice
bnplExcludedbnplExcluded
fulfilmentfulfilment
cashNCarryStatuscashNCarryStatus
familyIdfamilyId
variantIdvariantId
createdAtcreatedAt
reviews.idreviews.id
reviews.nicknamereviews.nickname
reviews.locationreviews.location
reviews.ratingreviews.rating
reviews.titlereviews.title
reviews.textreviews.text
reviews.submittedAtreviews.submittedAt
reviews.isRecommendedreviews.isRecommended
reviews.prosreviews.pros
reviews.consreviews.cons
reviews.helpfulVotesreviews.helpfulVotes
changeTypechangeType
changedFieldschangedFields
firstSeenAtfirstSeenAt
lastSeenAtlastSeenAt

Example output

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

{
  "recordType": "product",
  "recordId": "0000000000000",
  "sku": "000000",
  "handle": "sample-brand-soundbar-300",
  "url": "https://www.jbhifi.com.au/products/sample-brand-soundbar-300",
  "title": "Sample Brand SoundBar 300",
  "brand": "SAMPLE BRAND",
  "category": "AUDIO",
  "currency": "AUD",
  "price": 299,
  "priceExGst": 271.82,
  "taxGst": 27.18,
  "availability": "InStock",
  "canBuyOnline": true,
  "rating": 4.6,
  "reviewCount": 12,
  "onPromotion": false,
  "isMarketplace": false,
  "imageUrl": "https://cdn.shopify.com/s/files/1/0024/9803/5810/files/sample.jpg",
  "changeType": "NEW",
  "firstSeenAt": "2026-10-24T12:00:00Z",
  "lastSeenAt": "2026-10-24T12:00:00Z"
}

Ways to use this data

  • Who: Price trackers monitoring JB Hi-Fi AU catalogues for drops, promotions and clearance events.
  • Who: Marketplace analytics teams following seller (Sold by) coverage and marketplace share.
  • Who: Affiliate and comparison sites that need clean product records with prices, availability and images.
  • Who: Review aggregators collecting customer reviews joined to their products.

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 JB Hi-Fi AU Scraper return?

The documented output for JB Hi-Fi AU Scraper includes recordtype, recordid, sku, handle, url, title, brand and category. Availability of each field depends on the source page and the selected mode.

How much does JB Hi-Fi AU Scraper cost?

It costs $2.00 per 1,000 results on the Apify Free plan and from $1.40 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 schedule recurring runs?

Yes. Use incremental mode with a fixed State key: each scheduled run classifies products as NEW, UPDATED, UNCHANGED or EXPIRED against the saved baseline and pushes only what changed by default. Resume from run id is the alternative when you simply want to skip what a previous run already delivered.

Why does a run finish with 0 items?

A run that finished with a clear status but no records usually means the keyword or filters genuinely matched nothing; try the same keyword on the site. A run that fails with a connection message means the store could not be reached that minute; retries and Residential under Connection usually resolve it.

Can I use the results with AI tools?

Yes. The dataset is plain JSON and works with any Apify MCP connector or vector pipeline; select a connector under the MCP section and the run exports automatically.

Ready to collect with JB Hi‑Fi AU Scraper?

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