Myer Scraper - Products, Prices, Variants & Reviews avatar

Myer Scraper - Products, Prices, Variants & Reviews

Pricing

from $1.00 / 1,000 product results

Go to Apify Store
Myer Scraper - Products, Prices, Variants & Reviews

Myer Scraper - Products, Prices, Variants & Reviews

Scrape Myer (myer.com.au) department-store products: name, brand, price, was-price, saving, availability, category, images, attributes, colour & size variants, plus ratings and customer reviews. Search by keyword with brand, price and rating filters, or paste product, search or category URLs.

Pricing

from $1.00 / 1,000 product results

Rating

0.0

(0)

Developer

Abot API

Abot API

Maintained by Community

Actor stats

2

Bookmarked

4

Total users

0

Monthly active users

9 days ago

Last modified

Share

Myer Scraper: Products, Prices & Customer Reviews

Myer Scraper turns Myer's department-store catalogue into a clean, structured dataset. Search by keyword with brand, price and rating filters, browse Myer's own Sale and Clearance views, or paste product, search, category and sale URLs directly. Every product comes back with its price, was-price, saving and promo labels, and optionally the full description, size and colour variants, identifiers, an aggregate rating summary and customer reviews. Export to JSON, CSV or Excel, or pull results straight into your app through the API.

Why This Scraper?

  • Two ways to find products. Search by keyword with filters, or paste product, search, category and sale URLs directly. No need to build URLs by hand.
  • Sale and Clearance built in. Browse one of Myer's own promotional views (All sale, Clearance, or a department sale) as its own target, on its own or alongside a keyword search in the same run, and every result carries its own was-price, saved amount and saving percentage.
  • Full product detail on demand. Switch on detail enrichment to add the full description, attributes, size and colour variants, identifiers, an aggregate rating summary and customer reviews to every product.
  • Filters that actually filter. Brand, price range, minimum rating and stock status narrow the result set before it is collected, so filtered-out products are never returned or charged.
  • Built for monitoring. Resume one interrupted crawl with a run or dataset id, or turn on Incremental mode to track the same search over time and get only what changed on each scheduled run.
  • Nothing invented. Promo labels, ratings and review counts are read from Myer's own feeds; a product's rating and review fields are only included when Myer's feed actually returns them, never fabricated.

Use Cases

  • Price and deal tracking: monitor was-price, saved amount and promo labels across Sale and Clearance to catch new markdowns first.
  • Brand and competitor monitoring: track how a specific brand's range, pricing and stock status move on Myer's storefront over time.
  • Retail and merchandising research: build category-level datasets of pricing, specifications and variant availability across departments.
  • Customer sentiment analysis: collect ratings, review text and star distributions to analyse how a product is received.
  • Deal alert tools: feed a shopper-facing app or bot with newly discounted or restocked products using Incremental mode.

Data You Get

Sample shape: values are illustrative placeholders, not from a live record.

FieldExample
id"700123456"
name / title"Velvet Bloom Hydrating Night Cream 50mL"
brand"Lumora"
urlMyer link to the product, search or category page
sourceUrlThe pasted URL (url mode) or the search / category page of the keyword or specials target (search mode) that produced the row
price68.0
listPrice / wasPrice85.0 / 85.0
savedAmount / savingsPercent17.0 / 20
promoLabel / promoLabels"Reduced to clear" / ["Reduced to clear"]
isOnSale / isClearancetrue / false
currency"AUD"
isAvailable / isBuyabletrue / true
afterPayEligible / hummEligibletrue / false
category / categories"skincare-moisturiser" / ["beauty", "skincare", "skincare-moisturiser"]
shortDescription / longDescription"A rich night cream that visibly plumps skin by morning." / the full product description
specifications{ "Formulation": "Cream", "Skin Type": "Dry, Normal" }
variantssize / colour list with id, ean, price, wasPrice and savingsPercent (detail enrichment on)
colourVariantscard-level colour list with id and colour (listing results only; null or absent for a pasted single product URL)
imageUrl / imagesmain product photo / full image gallery
rating / reviewCount4.69 / 1076
ratingDistribution / recommendedCount{ "5": 812, "4": 210, "3": 40, "2": 9, "1": 5 } / 940
reviewsarray of per-review rating, title, body, author, date and verified-purchase flag (shown truncated to one entry for brevity)
reviewsCollected1 (reviews actually returned this run, capped by Max reviews per product; equals the length of reviews)
changeType"NEW" (also "UPDATED", "UNCHANGED", "REAPPEARED", "EXPIRED"; incremental mode only, see "Resume and recurring updates" below)

Each entry inside reviews[] also carries reviewId, verifiedPurchase, helpfulCount, notHelpfulCount, pros and cons. Each entry inside variants[] also carries size, colour and isBuyable. In incremental mode, every record also carries changedFields (populated only for UPDATED), firstSeenAt and lastSeenAt. Internal identifiers (internalId, seoToken, mfPartNumber), the raw merchCategory and categoryUri strings, metaDescription, supplierColour, hasMoreColours, brandUrl and productExclusive are also included for completeness.

How to Use

  1. Pick a mode: search (keyword and filters) or url (paste product, search, category or sale links).
  2. For search mode, add one or more Search keywords, and optionally a Specials / sale category, brand, price range or minimum rating.
  3. Turn Fetch full product detail + reviews on or off, and set Max products and Max pages to control run size and cost.
  4. Click Start, then download the dataset as JSON, CSV or Excel, or read it through the API.

Search by keyword with filters:

{
"mode": "search",
"queries": ["moisturiser"],
"brand": "Chanel",
"minRating": 4,
"sortBy": "priceAsc",
"maxItems": 50,
"maxPages": 10
}

Browse the Clearance sale, listing fields only (no detail, no surcharge):

{
"mode": "search",
"specialsCategory": "clearance",
"detailEnrichment": false,
"maxItems": 100
}

Paste a product URL and a category URL (replace the placeholder product link with a real one):

{
"mode": "url",
"urls": [
"https://www.myer.com.au/p/<product-slug-and-id>",
"https://www.myer.com.au/c/beauty/skincare"
],
"maxReviewsPerProduct": 10
}

Scheduled run: only new, changed or freshly-expired products for one search (uncapped so a complete scan is possible):

{
"mode": "search",
"queries": ["moisturiser"],
"incrementalMode": true,
"emitExpired": true,
"maxItems": 0
}

Run it from your code

Python:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("abotapi/myer-au-scraper").call(run_input={"mode": "search", "queries": ["moisturiser"]})
for product in client.dataset(run["defaultDatasetId"]).iterate_items():
print(product["name"], product["price"])

JavaScript:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('abotapi/myer-au-scraper').call({ mode: 'search', queries: ['moisturiser'] });
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Or connect it to Make, Zapier, n8n, Google Sheets or webhooks from the Integrations tab.

How Max pages shapes a search or URL walk

maxPages caps the number of pages walked per keyword, specials category, or search/category URL, not an absolute page number, and only applies with the default relevance sort; any other sort order reads the whole listing first before trimming to Max products, so maxPages has no effect there, set maxPages to a real bound when sorting by anything other than relevance. A pasted URL that already names a start page (for example pageNumber=5) counts from that page, so maxPages=2 on a page-5 URL walks pages 5 and 6. If the platform restarts this same run (a migration or a Resurrect), the automatic checkpoint continues the page count from where that run left off; a separate run started with resumeFromRunId gets its own fresh page cap starting at page 1. Use 0 to walk every page: the run still stops on its own once Max products is reached, a page repeats with no new products, or Myer's own result total for that search is reached.

Resume and recurring updates

  • Resume (resumeFromRunId) continues one specific interrupted or previous run: paste its run or dataset id and this run skips products already collected there by id, returning only the remaining new products. This dedup is by product id, so it applies to search, specials category and category/search URL results; a pasted single product URL is always fetched and pushed again even if it was already collected in that earlier run. An automatic same-run checkpoint also protects against platform migrations without any input needed.
  • Incremental mode (incrementalMode) is for scheduling the same search or URL set repeatedly (for example, daily). The first run returns everything as NEW. Later runs return only NEW and UPDATED products by default; unchanged products are suppressed and not charged unless emitUnchanged is on. EXPIRED rows are only produced when emitExpired is on and a run completes a full, uncapped scan of every tracked search or URL (not limited by Max products or Max pages, and not a Resume run); that same scan is also what first marks a product "not present". REAPPEARED can then only occur for a product that a prior complete emitExpired scan already marked "not present" and that is now seen again; it never appears on its own. stateKey names or shares a monitoring campaign; left empty, the actor derives one automatically from your mode, search terms or URLs, and filters, so different searches never mix state. UPDATED is decided by the product's own catalogue data: price, was-price and savings, availability, promo badges, name, brand, category, specifications, descriptions, images and per-variant price and stock (changedFields names what moved). Ratings, review counts, ratingDistribution, reviews and the first promo badge (promoLabel) never drive changeType: they change far more often than catalogue data, so they are excluded from change detection (but still returned normally). The order of promo badges, variants and colour variants is ignored too. EXPIRED is skipped (with a log line) whenever a run is a partial scan: a pasted link starting at a later page, a Max products or Max pages limit, or a run continued from an automatic checkpoint. Use Ignore fields when detecting changes (incremental mode only) (ignoreFieldsForChanges) to exclude more fields, for example imageUrl; a name matches at any nesting depth, and ignored fields are still returned. Changing the list never causes a one-time wave of UPDATED rows, because saved state is compared again with your current list.

Send results into your apps (MCP connectors)

Optionally pipe the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. This is an extra delivery step after the scrape: the Apify dataset is never changed.

What gets written to the connector: a condensed, human-readable summary of each record, not the full JSON. Each item becomes one entry with a title and its key fields flattened to plain text. The complete record always stays in the Apify dataset.

  1. Authorize a connector once under Apify → Settings → API & Integrations.
  2. Select it in the "Pipe results into your apps" input field. (If the picker is empty, you haven't authorized a connector yet.)
  3. For Notion, also set notionParentPageUrl to the page where item pages should be created.

The connection is mediated by Apify's MCP proxy, so this actor never sees your third-party credentials. Leave the field empty to skip.

Input Parameters

ParameterTypeDefaultDescription
modestringsearchsearch (keyword and filters) or url (paste product, search, category or sale URLs).
queriesarrayprefill only: ["perfume"]One or more keywords to search. Each keyword is searched separately, and runs as its own target alongside any Specials category.
specialsCategorystring"" (none)Optional. Browse one of Myer's promotional views (All sale, Clearance, or a department sale) as an extra target in the same run, standalone or alongside Search keywords. Every product from it carries its own was-price and saving fields.
urlsarraydefault: one example per shape (category, category with brand=/sort=, keyword search, product, brand page)Product, search, category or brand (/b/<brand>) URLs to scrape (url mode). A product URL returns that single product; search, category and brand URLs return multiple pages, continuing forward from the page in the URL. m. and bare-host links and legacy /shop/mystore/<dept> links are accepted. A pasted brand= or sort= (price-asc / price-desc) is applied to that URL. Unsupported URL shapes are skipped with a warning in the log.
brandstring(none)Optional. Keep only products whose brand matches this value. Applies to both search and url mode.
sortBystringrelevanceOrdering within each keyword, specials category or URL, approximate rather than exact since enriched products push in the order their detail fetch finishes. Only relevance order respects Max pages; any other sort reads the whole listing first before trimming to Max products.
minPriceinteger(none)Optional. Only keep products priced at or above this amount (AUD).
maxPriceinteger(none)Optional. Only keep products priced at or below this amount (AUD).
minRatinginteger(none)Optional. Only keep products with an average rating at or above this value (1 to 5). Only takes effect when detail enrichment actually ran for that product (search/URL-listing paths need detail enrichment on; a pasted single product URL always has it); otherwise the rating isn't known yet and the filter has no effect.
includeOutOfStockbooleantrueInclude products that are currently unavailable. Turn off to keep only available products.
detailEnrichmentbooleantrueFor each product found via search or a search/category URL, also fetch the product page for full description, attributes, variants, identifiers, ratings and reviews. A pasted single product URL always fetches full detail regardless of this setting.
maxReviewsPerProductinteger20Cap on reviews collected per product when detail is fetched. 0 means as many as available, up to 900 per product; values above 900 are capped at 900. Each enriched product carries one detail-enrichment unit regardless of how many reviews are collected.
maxItemsinteger20Maximum number of products to return across the whole run. Use 0 for unlimited.
maxPagesinteger0Safety cap on result pages walked per keyword, specials category or URL. 0 walks every page. See "How Max pages shapes a search or URL walk" above.
resumeFromRunIdstring(none)Optional. A previous run id or dataset id. Products already in that dataset are skipped by id, so this run returns only the remaining new products; a pasted single product URL is not deduped this way and is always fetched again.
incrementalModebooleanfalseTurn on for recurring monitoring of the same search or URL set. Returns only NEW and UPDATED products by default on repeat runs; see "Resume and recurring updates" above for REAPPEARED / EXPIRED.
stateKeystring(none)Optional, incremental mode only. Names or shares a monitoring campaign's state. Left empty, a key is derived automatically from the run's search/filter setup.
emitUnchangedbooleanfalseIncremental mode only. Also return (and bill) products unchanged since the last run, marked UNCHANGED.
emitExpiredbooleanfalseIncremental mode only. Also return (and bill) products no longer found, marked EXPIRED, but only once a run fully scans the tracked search or URL set (not capped by Max products/Max pages, not a Resume run).
ignoreFieldsForChangesarray[]Incremental mode only. Extra output field names that must not make a product UPDATED (matched at any nesting depth). Ratings, review fields and promoLabel are always ignored. Ignored fields are still returned.
proxyobjectApify ProxyConnection settings.
mcpConnectorsarray(none)Optional: send a summary of each record to apps you authorized under Integrations.
notionParentPageUrlstring(none)Notion connector only: page under which item pages are created.
maxNotifyListingsinteger50Cap on items written to each connector per run. Does not affect the dataset.

Output Example

Sample shape: values are illustrative placeholders, not from a live record. reviews is shown truncated to one entry for brevity; reviewsCollected reflects the shown count.

{
"id": "700123456",
"internalId": "8123456",
"name": "Velvet Bloom Hydrating Night Cream 50mL",
"brand": "Lumora",
"url": "https://www.myer.com.au/p/velvet-bloom-hydrating-night-cream-700123456",
"price": 68.0,
"listPrice": 85.0,
"wasPrice": 85.0,
"savedAmount": 17.0,
"savingsPercent": 20,
"promoLabel": "Reduced to clear",
"promoLabels": ["Reduced to clear"],
"isOnSale": true,
"isClearance": false,
"currency": "AUD",
"isAvailable": true,
"isBuyable": true,
"category": "skincare-moisturiser",
"categories": ["beauty", "skincare", "skincare-moisturiser"],
"shortDescription": "A rich night cream that visibly plumps skin by morning.",
"specifications": { "Formulation": "Cream", "Skin Type": "Dry, Normal" },
"imageUrl": "https://myer-media.com.au/wcsstore/MyerCatalogAssetStore/images/700123456_1_1_720x928.jpg",
"rating": 4.69,
"reviewCount": 1076,
"ratingDistribution": { "5": 812, "4": 210, "3": 40, "2": 9, "1": 5 },
"recommendedCount": 940,
"reviews": [
{
"reviewId": "58231",
"rating": 5,
"title": "Great texture, noticeable results",
"body": "Absorbs quickly and my skin feels firmer after a few weeks.",
"author": "GlowSeeker22",
"date": "2026-03-14T09:15:00.000+00:00",
"verifiedPurchase": true,
"helpfulCount": 4
}
],
"reviewsCollected": 1
}

Plan Requirement

No paid proxy group is needed to start: in testing, Myer served normal pages to datacenter connections, with no challenge or block page. Leave the proxy setting at its default and the run picks the best connection your plan allows, trying them in order. Apify free plans do not include residential proxies or any Apify proxy access; if the selected connection is unavailable to your run, the log shows a boxed warning, the run continues on a backup connection, and the status message says "Served over the backup connection (the default connection was unavailable)." Some pages may still fail there. For large or frequent runs, pick the residential group under Connection, or supply your own proxy URLs. If your account is refused any proxy connection, the run fails instead of finishing empty (see the FAQ).

FAQ

How much does it cost?

You pay a small per-run start fee, plus per product returned, plus a detail-enrichment surcharge for every product whose full detail page was actually fetched and returned. Fetch full product detail + reviews defaults to on, so most runs pay that surcharge on every returned product: each enriched product carries one detail-enrichment unit, regardless of how many reviews are collected. Turn it off in search/URL-listing runs for listing-card fields only, with no surcharge. Pasting a specific product URL in url mode always fetches and returns the full detail plus reviews, and is always charged the surcharge, regardless of that setting. The detail-enrichment charge is made per product right after it is pushed. Reviews per product are capped at 900. Suppressed incremental-mode rows (UNCHANGED with Emit unchanged off) are never charged for either event. The Pricing tab shows the current rates, and Max products caps the size of any run.

This actor collects only publicly available product data. You are responsible for how you use it: follow Myer's terms and the laws that apply to you, and get legal advice if you plan commercial redistribution. Product descriptions, photos and review text may be subject to third-party rights.

Can I get only new or changed products on a schedule?

Yes. Schedule the actor from the Schedules tab with the same search or URLs and turn on Incremental mode. Each run then returns only new and updated products by default, and unchanged ones are not billed.

What's the difference between Resume and Incremental mode?

Resume (resumeFromRunId) continues one specific earlier run so it isn't re-collected or re-charged. Incremental mode is for running the exact same search or URLs again and again on a schedule and only wanting what changed each time; it remembers its own state, so you never paste a run id.

Why did my run finish successfully with an empty dataset instead of erroring out?

It does not: a run that could not load a single page ends as FAILED, never as a successful empty run, so a connection problem is never confused with a genuine "no products found" result. The status message tells you which case it is: "The proxy connection was refused for this account, so no page could be read. Your Apify plan does not include proxy access; a paid plan is required" (check your plan, or your own proxy URLs if you entered any), "No results: residential proxies are unavailable on this run ... and the backup connection could not load the requested Myer pages" (upgrade or supply your own proxy URLs), or "Could not load any results page (the requests failed), so nothing was collected. This is a connection problem, not an empty search" (try again later). A search that loads fine but matches nothing still completes as a normal successful run. A run also stops with an error for an invalid Resume id or dataset, or when Incremental mode already has saved state for that search and Resume was also set.

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.

Link shapeExample
Category pagehttps://www.myer.com.au/c/beauty/skincare
Sub-category pagehttps://www.myer.com.au/c/beauty/skincare/eye-creams
Category page with a start pagehttps://www.myer.com.au/c/beauty/skincare?pageNumber=2
Category page with sort and brandhttps://www.myer.com.au/c/beauty/skincare?pageNumber=1&sort=price-desc&brand=Clarins
Keyword searchhttps://www.myer.com.au/search?query=nike%20shoes
Keyword search with a start pagehttps://www.myer.com.au/search?query=nike%20shoes&pageNumber=2
Keyword search the site redirects to a categoryhttps://www.myer.com.au/search?query=perfume
Product pagehttps://www.myer.com.au/p/chanel-nourish-soften-illuminate
Brand pagehttps://www.myer.com.au/b/chanel
Brand-boutique category pagehttps://www.myer.com.au/c/beauty/featured-beauty-brands/featured-brand-chanel
Legacy department linkhttps://www.myer.com.au/shop/mystore/beauty
Mobile hosthttps://m.myer.com.au/c/beauty/skincare
Bare hosthttps://myer.com.au/c/beauty/skincare

Any other link is skipped with a warning in the log.

Behaviour change: the Myer URLs field now has a default list with one example of each main shape. A URL-mode run started with the field untouched scrapes those examples instead of finding nothing to do; clear the field or paste your own links to scrape only those.

Output views

The dataset has four views in the Console: Products (listing fields), Product detail (description, specifications and variants), Reviews and Changes (incremental mode changeType and changedFields).

Billing

Each run pays one start event. Each product pushed to the dataset is one dataset-item event. Each enriched product also pays the detail-enrichment event: one unit per enriched product regardless of the review count, charged per product right after it is pushed. Reviews per product are capped at 900. Suppressed incremental rows and failed fetches are never charged. Current rates are on the Pricing tab.

🔗 Want more e-commerce data?

Pair this actor with these related scrapers from the same team:

🛒 BIG W Marketplace Scraper
Scrape BIG W Marketplace seller listings from bigw.com.au: name, brand, price, was-price...
🛒 Target AU Scraper
Scrape products and customer reviews from Target.com.au. Search by keyword or use...
🛒 Officeworks Scraper
Scrape Officeworks products by keyword, category, or URL. Extract names, brands, prices...
🛒 Kmart Scraper
Scrape products and customer reviews from Kmart.com.au. Search by keyword or use...
🛒 Chemist Warehouse AU
Scrape chemistwarehouse.com.au products with prices, RRP, discounts, stock, images...
🔌 Appliances Online Scraper
Scrape appliancesonline.com.au by category, keyword, or URL. Extract title, brand, AUD...

👉 Browse all abotapi scrapers

💬 Support

  • 🐞 Found a bug or a missing field? Open a ticket on the Issues tab. We usually reply within hours.
  • 🛠️ Need another site, extra fields or a private build? Email contact@abotapi.com.
  • ⭐ Enjoying it? A quick review on the actor page helps other users find it.