Supermarket Price Scraper - Woolworths & Sainsbury's
Pricing
from $1.00 / 1,000 results
Supermarket Price Scraper - Woolworths & Sainsbury's
Track grocery prices and discounts at Woolworths (Australia) and Sainsbury's (UK). Search any product term for price, previous price, discount %, unit price, pack size, barcode and stock. Filter to on-sale only - filtered rows are not charged. No login, proxy or browser.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
Abdullah Bilal
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Supermarket Price Scraper
What does Supermarket Price Scraper do?
This Actor collects live grocery prices and discounts from supermarket websites. Give it product search terms — milk, olive oil, nappies — and it returns every matching product with its current price, previous price, discount percentage, unit price, pack size, barcode, stock status, image and product URL.
It currently covers Woolworths (Australia) and Sainsbury's (United Kingdom), reading each chain's own public storefront data. There is no login and no headless browser — just structured JSON over plain HTTP, which keeps runs fast and cheap. Requests route through Apify Proxy, which is enabled by default and needs no configuration from you.
Running on Apify gives you a REST API, scheduled runs, webhooks, and exports to JSON, CSV, Excel and Google Sheets — so a daily price history is a scheduling setting rather than a project.
Why use Supermarket Price Scraper?
- Price monitoring — track what competitors charge for the same products, every day.
- Inflation and cost-of-living research — build a real basket-of-goods time series instead of relying on published indices.
- FMCG and brand analytics — see where your products sit against own-brand alternatives, and when they get discounted.
- Deal and cashback sites — pull current markdowns with a single filtered run.
- Unit-price comparison — every row carries the per-litre or per-kilo price, which is what actually makes products comparable.
How to use Supermarket Price Scraper
- Click Try for free.
- Add your product search terms, one per entry.
- Pick your retailers, or leave the field as-is to search all of them.
- Optional: tick Only discounted products to get just the markdowns.
- Press Start, then download from the Output tab as JSON, CSV, Excel or HTML.
Input
| Field | Description |
|---|---|
searchTerms | Product terms to search. Each is run against every selected retailer. |
retailers | woolworths-au, sainsburys-uk, or both. |
maxProductsPerTerm | Cap per term per retailer. Pagination is automatic. |
onlyOnSale | Return only products marked down from a previous price. |
minDiscountPct | Drop anything discounted by less than this. |
{"searchTerms": ["milk", "coffee", "olive oil"],"retailers": ["woolworths-au"],"onlyOnSale": true,"minDiscountPct": 20}
Output
One dataset item per product. Download as JSON, HTML, CSV, or Excel.
{"retailer": "woolworths-au","retailerName": "Woolworths (Australia)","country": "AU","currency": "AUD","productId": "888140","name": "Woolworths Full Cream Milk 3L","brand": "Woolworths","price": 4.95,"wasPrice": 5.5,"onSale": true,"discountPct": 10.0,"unitPrice": "$1.65 / 1L","packageSize": "3L","barcode": "9300633636999","inStock": true,"url": "https://www.woolworths.com.au/shop/productdetails/888140","searchTerm": "milk","scrapedAt": "2026-09-20T14:00:00+00:00"}
Data fields
| Field | Description |
|---|---|
retailer / retailerName / country / currency | Which chain the row came from |
productId | The retailer's own product code |
name / brand / packageSize | Product identity |
price / wasPrice | Current and previous price |
onSale / discountPct | Whether it is marked down, and by how much |
unitPrice | Price per litre, kilo or unit — the comparable figure |
barcode | EAN / barcode where published |
inStock | Current availability |
url / imageUrl | Product page and image |
searchTerm / scrapedAt | Which query produced the row, and when |
How much does it cost to scrape supermarket prices?
Billing is per product returned. Because the Actor reads each retailer's own JSON over plain HTTP rather than driving a browser, compute per run is very low, and the Apify free tier covers trying it and running small jobs.
Filtered rows are never charged. If you set onlyOnSale or a minimum discount, the products that do not qualify are dropped before anything is written to the dataset.
Tips
- Batch your terms. One run with 50 terms is cheaper and faster than 50 runs.
- Schedule a daily run on the same basket of terms to build a price history — that is where the real value is.
- Use
unitPrice, notprice, when comparing across pack sizes. onlyOnSaleplusminDiscountPctis the cheapest way to watch for genuine markdowns.
FAQ
Which supermarkets are supported? Woolworths (AU) and Sainsbury's (UK) today. The Actor is built so new chains are straightforward to add — request one on the Issues tab and it will be considered.
Why not Coles, Tesco or ASDA? Those chains actively block automated access to their storefronts. Rather than ship something that fails intermittently, only retailers that respond reliably are included.
Do I need a proxy? It is already handled. Both retailers block Apify's server IPs directly, so runs go through Apify Proxy with the default datacenter groups. This is enabled out of the box - you do not need a residential proxy or any setup.
Why is wasPrice sometimes empty?
Not every retailer publishes a previous price, and a product that is not discounted has none. onSale will be false in that case.
Legal and disclaimer
This Actor collects only publicly available product information — the prices and descriptions any shopper can see without logging in. It does not access customer accounts, orders or personal data.
You are responsible for how you use the data, including compliance with applicable law and each retailer's terms. Prices change constantly and may vary by store or delivery area; treat results as a point-in-time snapshot rather than a guaranteed quote.
Support
Need another supermarket, another country, or an extra field? Open a ticket on the Issues tab — retailer requests genuinely shape what gets added next.