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.
| Input | What it controls |
|---|---|
modestring | search: keyword browse with filters, sorting and pagination. urls: walk pasted product, collection or search links (bare SKUs also accepted). |
querystring | Search mode: keyword to browse. An omitted keyword falls back to iphone at runtime. |
categorystring | Search mode: restrict results to one store collection handle, e.g. tvs or laptops. |
sortBystring | Search mode: result order. Server-side sort, not a client-side reorder. |
facetsarray | Search 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. |
minPriceinteger | Search mode: only return products priced at or above this amount in AUD. |
maxPriceinteger | Search mode: only return products priced at or below this amount in AUD. |
Show 16 more inputs
| Input | What it controls |
|---|---|
onPromotionOnlyboolean | Search mode: return only products currently flagged as on promotion by the store. |
startUrlsarray | URLs 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. |
fetchDetailsboolean | Read each product's detail surfaces and fill description, keyFeatures, specs, barcode and options on the row. Off keeps the fast card-only record. |
fetchReviewsboolean | Read 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. |
maxReviewsinteger | Reviews fetched per product when Fetch reviews is on. 0 skips review reads. |
maxItemsinteger | Maximum number of product records to push. This is the only cap that stops a run early. |
maxPagesinteger | Maximum 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. |
resumeFromRunIdstring | Skip products already present in a previous run's dataset (its default dataset id or run id). Cannot be combined with incremental mode. |
incrementalModeboolean | Detect 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. |
stateKeystring | Named baseline for incremental mode. Leave empty to derive the baseline from the run scope automatically. |
emitUnchangedboolean | Incremental mode: also push unchanged products with changeType UNCHANGED. |
emitExpiredboolean | Incremental 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. |
ignoreFieldsForChangesarray | Incremental 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. |
mcpConnectorsarray | Send results into your apps (MCP connectors). Pick one or more managed connectors and the run exports the dataset to them at the end. |
notionParentPageUrlstring | When the Notion connector is selected: the parent page URL the results are written under. |
maxNotifyListingsinteger | Cap 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.
recordTyperecordTyperecordIdrecordIdskuskuhandlehandleurlURL (link)titleTitle (text)brandBrand (text)categorycategorypricePrice (AUD) (number)wasPricewasPricesaveAmountsaveAmountcurrencycurrencyShow 60 more fields
availabilityAvailability (text)ratingRating (number)reviewCountreviewCountonPromotiononPromotionisMarketplaceisMarketplacesoldBysoldByimageUrlimageUrlreleaseDatereleaseDateupdatedAtupdatedAtmodelmodelconditionconditiondeliveryStatusdeliveryStatusproductLifecycleproductLifecycleofferTiersofferTierslimitPerOrderlimitPerOrdersellerIdsellerIddeliveryTagdeliveryTagpriceExGstpriceExGsttaxGsttaxGstdescriptiondescriptionkeyFeatureskeyFeaturesspecsspecsbarcodebarcodeoptionsoptionsratingDistributionratingDistributionrecommendedCountrecommendedCountpackagedDimensionspackagedDimensionsgraphicAttributesgraphicAttributesproductFlagsproductFlagspromotionEndDatepromotionEndDatepriceAfterCashbackpriceAfterCashbackmessagesmessagesartistartisttracklisttracklistactorsactorsdirectorsdirectorsreleaseQuarterreleaseQuarterformatformatfreightPricefreightPricebnplExcludedbnplExcludedfulfilmentfulfilmentcashNCarryStatuscashNCarryStatusfamilyIdfamilyIdvariantIdvariantIdcreatedAtcreatedAtreviews.idreviews.idreviews.nicknamereviews.nicknamereviews.locationreviews.locationreviews.ratingreviews.ratingreviews.titlereviews.titlereviews.textreviews.textreviews.submittedAtreviews.submittedAtreviews.isRecommendedreviews.isRecommendedreviews.prosreviews.prosreviews.consreviews.consreviews.helpfulVotesreviews.helpfulVoteschangeTypechangeTypechangedFieldschangedFieldsfirstSeenAtfirstSeenAtlastSeenAtlastSeenAtExample 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.
