Target AU Scraper – Products, Prices & Reviews
Pricing
from $1.00 / 1,000 product results
Target AU Scraper – Products, Prices & Reviews
Scrape products and customer reviews from Target.com.au. Search by keyword or use product/category URLs with sorting and filters. Returns name, brand, price, OnePass price, ratings, review text and stats, colours, sizes, images, category, stock, and variations.
Pricing
from $1.00 / 1,000 product results
Rating
0.0
(0)
Developer
Abot API
Maintained by CommunityActor stats
0
Bookmarked
4
Total users
1
Monthly active users
6 hours ago
Last modified
Categories
Share
Target Australia Scraper: Products, Prices & Reviews
Target Australia Scraper turns target.com.au into a clean product data API. Search by keyword or paste product, category and search links, and get back one flat record per product with current price, was/original price, savings amount and percent, stock, colour and size variants, images, category breadcrumbs, and, when you switch it on, the full rating breakdown and individual customer reviews. Filter to On sale, Clearance or New arrivals, sort by price or rating, then export to JSON, CSV or Excel, or read the results straight through the API.
Why This Scraper?
- Two ways in. Search by keyword, or paste a mix of product, category and search URLs from target.com.au in one run.
- One flat record, every mode. A pasted product link is resolved through the same product backend as a search result, so it carries the exact same fields, not a stripped-down detail shape.
- Real discounts, never invented. Was-price, savings amount and percent, and the on-special flag are only set when the site itself publishes a genuine strike-through reduction or a clearance classification.
- Specials and offers built in. Scope a search or pasted category/search URL to On sale, Clearance or New arrivals, store-wide or combined with a keyword.
- Ratings and reviews on demand. Switch on detail enrichment to attach the full rating distribution and individual, per-review text to every product, and pay only for the products you enrich.
- Filters and sorting that actually apply. Brand, colour and a price range work the same way in search mode and a pasted category or search URL; a pasted single product URL only respects the price range. Sort by relevance, latest, rating or price.
- Resume a big crawl. Point a new run at a previous run or dataset ID and it returns only the products it hasn't collected yet, so topping up a full-catalogue pull never re-pays for duplicates.
Use Cases
- Price and discount tracking: monitor the was/current price, savings and on-special status of a product line over time.
- Specials and clearance monitoring: pull On sale, Clearance or New arrivals collections on a schedule to catch new markdowns first.
- Catalogue and assortment research: walk a category or a keyword across the whole result set to map brands, price bands and stock levels.
- Voice-of-customer analysis: collect ratings, review text and sub-ratings for a product range to spot recurring praise or complaints.
- Competitive benchmarking: compare price, promo status and review scores for the same products against other retailers you scrape separately.
Data You Get
Sample shape: values are illustrative placeholders, not from a live record.
| Field | Example |
|---|---|
id | "W1234567890" |
name / title | "Sample Linen Shirt" / "Sample Brand Sample Linen Shirt" |
url | "https://www.target.com.au/p/sample-linen-shirt/12345678" |
brand | "Sample Brand" |
price | 45.0 |
wasPrice | 60.0 (null when the product isn't reduced) |
savingsAmount / savingsPercent | 15.0 / 25 (both null when there's no genuine reduction) |
isOnSpecial / promoLabel | true / null (promoLabel is "Clearance" on a clearance line, otherwise null) |
onePassPrice | null (set only when the site publishes a OnePass member price) |
currency | "AUD" |
onSale / clearance | true / false |
description | "A lightweight, breathable everyday shirt." |
features | ["Regular fit", "Button-through front", "Curved hemline"] |
careInstructions | ["Warm delicate machine wash", "Do not bleach"] |
category / breadcrumbs | "Clothing & Accessories > Clothing > Shirts & Tops" / ["Clothing & Accessories", "Clothing", "Shirts & Tops"] |
topLevelCategory | "Women" |
availability / inStock | "NORMAL" / true |
colour | "White" |
image / images | first image URL / full image URL array |
variantCount / variations | 1 / [{ "colour": "White", "price": 45.0, "wasPrice": 60.0, "inStock": true }] |
averageRating / reviewCount | 4.8 / 18 |
reviews | array of { rating, title, body, author, date, verifiedPurchase, helpfulCount, subRatings } (present only when reviews were collected) |
onlineDate | "2026-05-24" |
Every record also carries baseUrl, merchDepartmentCode, productType, groupIds, colourVariantCode, sizeVariantCode, availableOnlineQty, availableStoreQty, and boolean flags for bulkyProduct, targetExclusive, onlineExclusive, onePassExclusive and advFreeDeliveryEligible. When detail enrichment collects reviews, each product also gets reviewStats (the full aggregate: total reviews, recommended/not-recommended counts, helpful-vote count, first/last review dates, sub-rating averages) and ratingDistribution, recommendedCount and reviewsCollected. Products with no reviews simply leave the rating and review fields empty; they are never faked.
How to Use
- Pick a mode:
search(keywords) orurl(paste product, category or search links). - Fill in the fields for that mode, add any filters (brand, colour, price range, specials collection) and a sort order.
- Turn on Fetch ratings and reviews if you want review text and rating breakdowns, and set Max products to control run size and cost.
- Click Start, then download the dataset as JSON, CSV or Excel, or read it through the API.
Search with filters, sorted by price:
{"mode": "search","searchTerms": ["linen shirt"],"brand": "Target Woman","colour": "White","minPrice": 20,"maxPrice": 60,"sortBy": "price-asc","maxItems": 30,"fetchReviews": false}
Store-wide clearance, no keyword:
{"mode": "search","specialsCategory": "clearance","maxItems": 50,"fetchReviews": false}
Paste links and attach reviews:
{"mode": "url","urls": ["https://www.target.com.au/p/sample-ceramic-mug/98765432","https://www.target.com.au/c/kitchen-dining/mugs/W2000000"],"fetchReviews": true,"maxReviews": 20,"maxItems": 40}
Whole catalogue for a keyword, no caps:
{"mode": "search","searchTerms": ["kids toys"],"maxItems": 0,"maxPages": 0,"fetchReviews": false}
Run it from your code
Python:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("abotapi/target-au-scraper").call(run_input={"mode": "search", "searchTerms": ["shirt"], "maxItems": 20})for product in client.dataset(run["defaultDatasetId"]).iterate_items():print(product["name"], product["price"], product["isOnSpecial"])
JavaScript:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });const run = await client.actor('abotapi/target-au-scraper').call({ mode: 'search', searchTerms: ['shirt'], maxItems: 20 });const { items } = await client.dataset(run.defaultDatasetId).listItems();
Or connect it to Make, Zapier, n8n, Google Sheets or webhooks from the Integrations tab.
Caps and full-catalogue runs
Max products (maxItems) stops the whole run once that many products are pushed; 0 means unlimited. With more than one search term or pasted URL, that cap is split evenly across them, so a run doesn't exhaust the budget on the first term alone. Max pages per search (maxPages) is a safety cap on pages walked per term or category; leave it at 0 to walk every page, since the walk already stops on its own once the storefront's own result total is reached or a page repeats.
Resuming a large run
Pass a previous run's ID (or its dataset ID) as Resume from a previous run. The actor reads every product ID already in that dataset, skips them, and this run then returns only the products it hasn't collected before, a delta you can append to the earlier dataset. This is separate from the automatic checkpoint the actor keeps for its own migrations and Resurrects: if a run is interrupted by the platform, resuming it automatically continues from the exact page it left off, without needing resumeFromRunId.
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 product, 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.
- Authorize a connector once under Apify then Settings then API & Integrations (Notion, Linear, Airtable, or Apify).
- Select it in the "Pipe results into your apps" input field. (If the picker is empty, you haven't authorized a connector yet.)
- For Notion, also set
notionParentPageUrlto the page where items 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
| Parameter | Type | Default | Description |
|---|---|---|---|
mode | string | search | search (keywords) or url (paste product, category, or search URLs). |
searchTerms | array | no default (prefill: ["shirt"]) | Keywords to search (search mode). |
urls | array | no default (prefill: ["https://www.target.com.au/search?text=shirt"]) | Product, category or search URLs to walk (URL mode). |
sortBy | string | relevance | relevance, newest, rating, price-asc, price-desc, or brand. |
specialsCategory | string | "" (no promo filter) | Limit to a promotional collection: on-sale, clearance, or new-arrivals. |
brand | string | no default | Filter to one exact brand facet value. |
colour | string | no default | Filter to one exact colour facet value. |
minPrice | integer | no default | Only keep products at or above this price. |
maxPrice | integer | no default | Only keep products at or below this price. |
fetchReviews | boolean | true | Attach ratings, review stats and individual reviews to each product (detail enrichment). |
maxReviews | integer | 20 | Cap on reviews captured per product. 0 disables reviews. |
maxItems | integer | 20 | Total products to return across all searches or URLs. 0 = unlimited. |
maxPages | integer | 0 | Safety cap on pages walked per search term or category. 0 = walk every page. |
resumeFromRunId | string | no default | ID of a previous run (or dataset) of this actor; already-collected products are skipped. |
proxy | object | {"useApifyProxy": true} | Apify Proxy configuration. |
mcpConnectors | array | no default | Optional: send a summary of each product to apps you authorized under Integrations. |
notionParentPageUrl | string | no default | Notion connector only: page under which product pages are created. |
maxNotifyListings | integer | 50 | Cap on items written to each connector per run. |
Output Example
Sample shape: values are illustrative placeholders, not from a live record.
{"kind": "product","id": "W1234567890","name": "Sample Linen Long Sleeve Shirt","title": "Sample Brand Sample Linen Long Sleeve Shirt","url": "https://www.target.com.au/p/sample-linen-long-sleeve-shirt/12345678","baseUrl": "https://www.target.com.au/p/sample-linen-long-sleeve-shirt/12345678","brand": "Sample Brand","price": 45.0,"wasPrice": 60.0,"onePassPrice": null,"currency": "AUD","onSale": true,"isOnSpecial": true,"savingsAmount": 15.0,"savingsPercent": 25,"promoLabel": null,"onlineOnlyPrice": false,"clearance": false,"description": "A lightweight, breathable everyday shirt.","features": ["Regular fit", "Button-through front", "Curved hemline"],"careInstructions": ["Warm delicate machine wash", "Do not bleach"],"category": "Clothing & Accessories > Clothing > Shirts & Tops","breadcrumbs": ["Clothing & Accessories", "Clothing", "Shirts & Tops"],"topLevelCategory": "Women","merchDepartmentCode": "WMN01","productType": "SHIRT","availability": "NORMAL","groupIds": ["W951361"],"colour": "White","colourVariantCode": "WHT","sizeVariantCode": "M","inStock": true,"availableOnlineQty": 25,"availableStoreQty": null,"bulkyProduct": false,"targetExclusive": true,"onlineExclusive": false,"newArrival": false,"onePassExclusive": false,"advFreeDeliveryEligible": true,"onlineDate": "2026-05-24","image": "https://assets.target.com.au/transform/00000000-0000-0000-0000-000000000000/sample_1","images": ["https://assets.target.com.au/transform/00000000-0000-0000-0000-000000000000/sample_1","https://assets.target.com.au/transform/11111111-1111-1111-1111-111111111111/sample_2"],"variations": [{ "variationId": "V1", "colour": "White", "colourVariantCode": "WHT", "sizeVariantCode": "M", "price": 45.0, "wasPrice": 60.0, "savingsAmount": 15.0, "savingsPercent": 25, "inStock": true, "url": "https://www.target.com.au/p/sample-linen-long-sleeve-shirt/12345678", "image": "https://assets.target.com.au/transform/00000000-0000-0000-0000-000000000000/sample_1" }],"variantCount": 1,"searchMode": "search","averageRating": 4.8,"reviewCount": 18,"ratingDistribution": { "5": 15, "4": 3 },"recommendedCount": 17,"reviewsCollected": 1,"reviewStats": {"totalReviews": 18,"averageRating": 4.8,"ratingDistribution": { "5": 15, "4": 3 },"recommendedCount": 17,"notRecommendedCount": 1,"helpfulVoteCount": 9,"firstReviewDate": "2025-11-02T08:00:00.000+00:00","lastReviewDate": "2026-03-19T12:18:09.000+00:00","subRatings": { "Quality": 4.6, "Value For Money": 4.5 }},"reviews": [{"id": "100000001","rating": 5,"title": "Great everyday shirt","body": "Comfortable and true to size.","author": "Sample Reviewer","location": "Victoria","date": "2026-03-19T12:18:09.000+00:00","verifiedPurchase": true,"isRecommended": true,"isRatingsOnly": false,"helpfulCount": 3,"notHelpfulCount": 0,"isSyndicated": false,"syndicatedFrom": null,"pros": null,"cons": null,"subRatings": { "Quality": 5, "Value For Money": 5 }}]}
Plan Requirement
The default automatic proxy pool works out of the box for target.com.au. Since Target serves the Australian market, a residential proxy group is used automatically as a reliability fallback if the automatic pool is refused; you can also select it directly under Connection for heavier runs. You are charged per product returned, plus a smaller charge for each product where detail enrichment (ratings and reviews) actually ran. The Pricing tab shows the current rates for both.
FAQ
How much does it cost?
You pay per product returned to the dataset, plus a separate, smaller charge for each product where detail enrichment ran (Fetch ratings and reviews on and Max reviews above 0), whether or not that product turned out to have any reviews. The Pricing tab shows the current rates. Use Max products to cap the cost of any run.
Is it legal to scrape target.com.au?
This actor collects only publicly available product data. You are responsible for how you use it: follow target.com.au's terms and the laws that apply to you, and get legal advice if you plan commercial redistribution. Product facts like price and stock are generally not protected, but images, descriptions and review text may be subject to third-party rights.
Does turning on reviews always add a charge?
No. Ratings and reviews are only fetched, and only billed, when Fetch ratings and reviews is on and Max reviews per product is above 0. This applies the same way to every mode, including a single pasted product URL: turn the toggle off (or set Max reviews to 0) and no review fetch happens and no enrichment charge is added for that run.
Why did my pasted product URL return nothing?
A single product URL resolves to exactly one record. If a price range (Min price / Max price) is set and that product's price falls outside it, that one product is dropped, so the run legitimately returns zero items. Clear or widen the price range to confirm.
Can I top up a large crawl without paying twice?
Yes. Pass a previous run's ID (or its dataset ID) as Resume from a previous run; the actor skips every product already in that dataset and returns only the new ones. Combine both datasets for the full set.
Why did my run fail instead of returning an empty dataset?
If a result-page fetch is rejected and zero products were collected, the run stops with a clear error message so "no results for these terms" is never confused with "the connection never worked". Resurrect the failed run from the Console in a few minutes; it resumes from the exact page that was rejected, unlike a brand-new run, which starts from the beginning. If some products were already collected before a mid-run rejection, you still get those, with a status message noting the run was only partial.
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 product summaries into Notion, Linear or Airtable.
🔗 Want more e-commerce data?
Pair this actor with these related scrapers from the same team:
| 🛒 Kmart Scraper Scrape products and customer reviews from Kmart.com.au. Search by keyword or use... | 🛒 Harvey Norman Scraper Scrape Harvey Norman Australia products: name, brand, price, was-price / discount... |
| 🛒 Chemist Warehouse AU Scrape chemistwarehouse.com.au products with prices, RRP, discounts, stock, images... | 🛒 Costco AU Scraper Scrape Costco.com.au products with full details and customer reviews. Search by keyword... |
| 🛒 Amazon Australia Product & Reviews Scraper Scrape Amazon Australia (amazon.com.au) products and customer reviews. Search by keyword... | 🛒 BIG W Marketplace Scraper Scrape BIG W Marketplace seller listings from bigw.com.au: name, brand, price, was-price... |
💬 Support & custom scrapers
- 🐞 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 abotapi@proton.me or message Telegram @abotapi.
- ⭐ Enjoying it? A quick review on the actor page helps other users find it.