Amazon Australia Product & Reviews Scraper avatar

Amazon Australia Product & Reviews Scraper

Pricing

from $1.50 / 1,000 product results

Go to Apify Store
Amazon Australia Product & Reviews Scraper

Amazon Australia Product & Reviews Scraper

Scrape Amazon Australia (amazon.com.au) products and customer reviews. Search by keyword or paste product, search and category URLs. Returns title, brand, price, list price, rating, review count, star distribution, availability, features, images, categories, specs, best-seller rank and seller.

Pricing

from $1.50 / 1,000 product results

Rating

0.0

(0)

Developer

Abot API

Abot API

Maintained by Community

Actor stats

0

Bookmarked

6

Total users

0

Monthly active users

2 days ago

Last modified

Share

Scrape amazon.com.au products, deals and customer reviews at scale. Search by keyword with filters, filter to Deals & Discounts, or paste product / search / deal links (or bare ASINs). Every product comes back as one flat record with current price, was/original price and savings, ratings, star distribution, images, specifications and - optionally - the customer reviews Amazon publishes on the product page.

What it does

  • Two ways to start
    • Search - one or more keywords, with sort, minimum-rating and price-range filters, walking forward through result pages.
    • URL - paste product pages (/dp/<ASIN>), search pages (/s?k=...), deal / category pages, or bare 10-character ASINs.
  • Deals & Discounts - flip on Deals & discounts only to return just the products currently on a deal, price drop or coupon. Combine it with a keyword to find deals in a category, or leave keywords empty to browse the whole deals grid. Each discounted product carries its was/original price, savings amount, discount percentage and promo label (for example a coupon or a limited-time deal). Amazon Australia surfaces its specials through a single "Deals & Discounts" collection - there is no separate half-price / clearance sub-taxonomy - so this one switch covers the site's promotional view.
  • Full product detail - open each product page for brand, list price, star distribution, availability, feature bullets, description, the full image gallery, category breadcrumb, specifications, best-seller rank and seller.
  • Customer reviews - collect the reviews Amazon publishes on each product page: star rating, title, text, author, date, verified-purchase flag and helpful votes, plus aggregate rating statistics.
  • Resume & recurring updates - turn on Incremental mode to get only NEW, UPDATED, and REAPPEARED products on every scheduled run, or resume one specific interrupted crawl with resumeFromRunId. See "Resume & recurring updates" below.
  • Send results into your apps - optional Notion / Linear / Airtable / Apify export via MCP connectors, without changing the dataset.

Reviews: what you get

Amazon Australia shows the aggregate rating (average score, total ratings, and the 5-star-to-1-star distribution) and a set of top customer reviews to anonymous visitors - this actor captures all of them.

Note: amazon.com.au requires a signed-in account to open its full paginated review list. This actor does not sign in, so review collection returns the top reviews Amazon exposes publicly on the product page (typically the most relevant ones), each with full title, text, rating, author, date, verified-purchase flag and helpful-vote count. The aggregate rating, total rating count and star distribution are always captured in full.

Input

FieldTypeDescription
modeselectsearch (keyword + filters) or url (paste links / ASINs).
queriesstring[]Search keywords (search mode). Each keyword is searched separately. Leave empty with specialsOnly on to browse all deals.
sortByselectrelevance, price_asc, price_desc, newest, avg_rating, best_selling.
specialsOnlybooleanOnly return products on Amazon Australia's Deals & Discounts (deals, price drops, coupons). Default false.
minRatingselectKeep products rated at least 3, 4 or 5 stars (or any).
minPrice / maxPriceintegerKeep products within an AUD price range.
urlsstring[]Product / search / category URLs, or bare ASINs (url mode).
fetchDetailsbooleanOpen each product page for full detail. Default true.
fetchReviewsbooleanAlso collect customer reviews. Default false.
maxReviewsPerProductintegerCap reviews per product (0 = all available). Default 10.
maxItemsintegerMax products for the whole run (0 = unlimited). Default 20.
maxPagesintegerOptional bound on result pages walked per keyword/URL. Empty walks every result page (does not cap products; maxItems does).
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 incrementalMode instead - see "Resume & recurring updates" below.
incrementalModebooleanDaily/recurring monitoring of this same search/URL list. First run returns everything as NEW; later runs return only NEW/UPDATED/REAPPEARED by default. Default false. See "Resume & recurring updates" below.
stateKeystringOptional name for a monitoring campaign, so its incremental state stays stable or is deliberately shared. Auto-derived from your mode/keywords/URLs/sort/filters/detail settings when left empty.
emitUnchangedbooleanIncremental mode only. Also return products unchanged since the last run, marked UNCHANGED. Adds and bills extra rows you already have. Default false.
emitExpiredbooleanIncremental mode only. Also return products from a previous run no longer found, marked EXPIRED, once a run has fully scanned the search/URLs (not capped, not a resume). Adds and bills extra synthetic rows. Default false.
proxyobjectProxy configuration (Australian residential recommended).
mcpConnectorsarrayOptional MCP connectors to export results into.

Example input

{
"mode": "search",
"queries": ["echo dot"],
"sortBy": "avg_rating",
"minRating": "4",
"minPrice": 30,
"maxPrice": 150,
"fetchDetails": true,
"fetchReviews": true,
"maxReviewsPerProduct": 10,
"maxItems": 20,
"proxy": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "AU" }
}

Example input - deals only

{
"mode": "search",
"queries": ["coffee machine"],
"specialsOnly": true,
"fetchDetails": true,
"maxItems": 20,
"proxy": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "AU" }
}

Output

One record per product. Example (values below are illustrative):

{
"asin": "B0EXAMPLE01",
"title": "Example Smart Speaker (3rd Gen) with Voice Assistant - Charcoal",
"url": "https://www.amazon.com.au/dp/B0EXAMPLE01",
"brand": "ExampleBrand",
"price": 79.0,
"listPrice": 99.0,
"currency": "AUD",
"savings": 20.0,
"savingsPercent": 20,
"promoLabel": "Limited time deal",
"isOnSpecial": true,
"rating": 4.5,
"reviewsCount": 1284,
"ratingDistribution": { "5": 72, "4": 15, "3": 6, "2": 3, "1": 4 },
"availability": "In stock",
"inStock": true,
"features": [
"Rich, room-filling sound with clear vocals",
"Ask the voice assistant to play music, set timers and control smart devices"
],
"description": "A compact smart speaker for any room.",
"categories": ["Electronics", "Smart Home", "Smart Speakers"],
"specs": { "Model Number": "EX-3000", "Release Year": "2024", "Connectivity": "Wi-Fi, Bluetooth" },
"bestSellersRank": 12,
"seller": "Example Retail AU",
"shipsFrom": "Amazon AU",
"images": [
"https://m.media-amazon.com/images/I/EXAMPLE01._AC_SL1000_.jpg",
"https://m.media-amazon.com/images/I/EXAMPLE02._AC_SL1000_.jpg"
],
"thumbnailImage": "https://m.media-amazon.com/images/I/EXAMPLE01._AC_SL1000_.jpg",
"reviewsCollected": 8,
"reviewStats": {
"averageRating": 4.5,
"totalRatings": 1284,
"ratingDistribution": { "5": 72, "4": 15, "3": 6, "2": 3, "1": 4 }
},
"reviews": [
{
"reviewId": "REXAMPLE00001",
"rating": 5.0,
"title": "Great value",
"body": "Easy to set up and the sound is excellent for the size.",
"author": "Sample Reviewer",
"date": "2025-02-14",
"reviewedIn": "Australia",
"verifiedPurchase": true,
"helpfulCount": 6,
"variation": "Colour Name: Charcoal",
"reviewUrl": "https://www.amazon.com.au/gp/customer-reviews/REXAMPLE00001"
}
],
"searchMode": "search"
}

Field reference

FieldDescription
asinAmazon product identifier.
title, brand, urlProduct name, brand, canonical product URL.
price, listPrice, currency, savings, savingsPercentCurrent price, was/original (strike-through) price, AUD, and computed savings and discount percentage.
promoLabel, isOnSpecialPromo / coupon / deal label shown on the listing (when present), and a boolean flag set when the product is currently discounted.
rating, reviewsCount, ratingDistributionAverage stars, total rating count, and the 5★→1★ percentage split.
availability, inStockStock text and a boolean.
features, descriptionFeature bullets and long description.
categories, specs, bestSellersRankCategory breadcrumb, specification table, best-seller rank.
seller, shipsFromSeller / dispatch information from the buy box.
images, thumbnailImageFull image gallery and the primary image.
reviews, reviewsCollected, reviewStatsCollected reviews, their count, and aggregate statistics (present when reviews are enabled).

Whenever a value is not published for a product, the field is omitted or null rather than guessed.

Incremental mode only. When incrementalMode is on, every returned record also carries:

FieldDescription
changeTypeNEW | UPDATED | UNCHANGED | REAPPEARED | EXPIRED
changedFieldsTop-level fields that changed since last seen; non-empty only for UPDATED
firstSeenAtWhen this product was first observed by this monitoring campaign
lastSeenAtWhen this product was last observed

Proxy

Amazon Australia serves results to Australian residential connections, so the actor uses an Australian residential exit by default and rotates a fresh exit per request. Apify Proxy is recommended for reliable results.

Resume & recurring updates

There are two different things here — pick the one that matches what you're doing:

NeedUse
A crawl stopped and should continueresumeFromRunId / automatic checkpoint recovery
Run the same search/URLs every day and receive only changesincrementalMode
Keep separate daily campaigns for similar searchesdistinct stateKey values
Run a normal full snapshotleave both off

Resume (resumeFromRunId) continues one specific interrupted or previous large crawl: paste a run ID or dataset ID and this run skips products already collected there, returning only the remaining new products. An automatic same-run checkpoint also protects against platform migrations/Resurrects without any input needed.

Incremental mode (incrementalMode) is for a schedule (for example, daily): the actor remembers the previous run of the same search/URLs by itself, so you never paste a run ID. The first run returns everything as NEW. Later runs return only NEW, UPDATED, and REAPPEARED products by default — duplicates and unchanged products are suppressed (and not charged). Turn on emitUnchanged or emitExpired only when you also want those rows returned (and billed for). State is isolated per mode/keyword/URL/sort/filter/detail setup automatically; set stateKey to name or deliberately share a monitoring campaign.

Scheduled-run example — same search, run daily:

Day 1 (first run ever for this search):

{ "mode": "search", "queries": ["echo dot"], "incrementalMode": true }

→ every product comes back with "changeType": "NEW".

Day 2 (the schedule fires again, identical input):

{ "mode": "search", "queries": ["echo dot"], "incrementalMode": true }

→ products whose price/stock/rank/etc. changed come back as "changeType": "UPDATED" with changedFields listing what changed, brand-new products come back as "changeType": "NEW", products that vanished and came back come back as "changeType": "REAPPEARED" — and products that are still there, unchanged, are not returned at all (suppressed, not charged) unless emitUnchanged is on.

What counts as a change. price, listPrice, savings/savingsPercent, promoLabel and isOnSpecial are real data and always trigger UPDATED — that is the point of monitoring a retailer. A few fields move on Amazon's own schedule regardless of whether the listing itself changed, so they are excluded from change detection (they are still returned on every row, just not compared): average rating, reviewsCount, ratingDistribution and the nested reviewStats (move with every vote cast, independent of the listing), bestSellersRank (Amazon recomputes category rank roughly hourly from live sales), sponsored (which ad auction won this placement on this exact search request), and deliveryDate (an estimate computed from today's date, so it advances daily on its own). The stock count inside availability ("Only 3 left in stock") is normalized away for the same reason, but the surrounding stock state ("In stock" ↔ "Only N left in stock" ↔ "Currently unavailable") still triggers UPDATED — only the fluctuating number is ignored. url is compared in its canonical /dp/<ASIN> form (the trailing search-rank segment, e.g. ref=sr_1_13, is stripped before comparison) since that segment is the product's rank on that search, not the product itself — the raw URL is still returned unchanged on every row.

Notes

  • Prices, ratings and stock are captured as shown on the storefront at scrape time.
  • Filters (minRating, minPrice, maxPrice) are applied to each product's own values, so exact numeric ranges work independently of Amazon's coarse on-site filters.
  • The run periodically checkpoints its progress, so if the platform restarts the run (a server migration, or you use Resurrect) it picks up where it left off instead of starting over, with no duplicate products and no double charges. No input is needed for this; it's automatic.