Checkers & Shoprite Scraper: Prices, Specials & Xtra Savings
Pricing
from $4.00 / 1,000 products
Checkers & Shoprite Scraper: Prices, Specials & Xtra Savings
Scrape Checkers and Shoprite (Shoprite group, Sixty60) products by search term, category or URL: prices, specials, Xtra Savings member prices with dates, multi-buys, barcodes, stock and unit prices, by region. For SA grocery price monitoring. Failed pages are free.
Pricing
from $4.00 / 1,000 products
Rating
0.0
(0)
Developer
Zaiq
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
6 days ago
Last modified
Categories
Share
Get product prices, specials and Xtra Savings member prices from Checkers (checkers.co.za) and Shoprite (shoprite.co.za), the Shoprite group's online stores and Sixty60 delivery, as structured data. Search by keyword, open a category or product list, or give product links; choose one or more South African regions to see each region's own prices and stock. Every request goes through South African home internet connections.
What it does
- Searches the catalogue like the site's search box, reads categories, promotion product lists (
?plid=) and single products, and finds products by barcode (EAN-13). - Returns, for every product: price, was-price, Xtra Savings member price with its start and end date, every promotion (fixed price, rand off, percentage off, multi-buys such as "Buy 3 For R12") with dates, barcode(s), brand, pack size, unit price per kg, litre or item, stock status and the number in stock at the serving store, image, product link and the store that served it.
- Regions: prices, stock and ranging follow the stores that deliver to an address, and they differ between regions. Pick cities (Cape Town, Johannesburg, Pretoria, Durban, Gqeberha and others) or any latitude,longitude; each product is returned once per region.
- Checkers or Shoprite: both sites run on the same platform with their own prices and deals. Pick the brand with Store brand.
- Specials only: returns just the products the site lists under its deals filter.
- Weighed products (meat, poultry) are marked
soldByWeightwith the price per kg and the pack's weight range.
Who uses it
- Price comparison and basket-tracking sites that follow grocery prices and specials across South African chains.
- FMCG brands and their agencies checking shelf prices, Xtra Savings deals and stock of their products by region.
- Retail and economic analysts tracking food inflation from real shelf prices, with unit prices.
- Shoppers and community groups watching specials on a list of everyday products.
Example
Three products checked in four regions on Checkers on 4 October 2026 (product links as input, region option on):
| Product | Cape Town | Johannesburg | Durban | Polokwane |
|---|---|---|---|---|
| Jacobs Krönung Freeze Dried Instant Coffee 200g | R204.99 (Xtra Savings R156.99) | R209.99 (R159.99) | R219.99 (R159.99) | R209.99 (R159.99) |
| Clover Full Cream Milk 1L | R21.99 | R22.99 | R21.99 | R22.99 |
| Clover Fresh Full Cream Milk 2L | R37.99 (Xtra Savings R29.99) | R37.99 (R29.99) | R37.99, no member deal | R37.99 (R29.99) |
The same jar of coffee cost R15 more in Durban than in Cape Town, and the milk deal was not on in Durban. Stock at the serving store ranged from 170 (Cape Town) to 1,625 (Polokwane) for the 1L milk.
Other test runs the same day, all through South African residential connections:
- 20 everyday search terms (milk, bread, coffee, washing powder, nappies and so on), 60 products each: 1,200 products in 28 seconds, no failed or blocked requests.
- A whole department (Milk, Dairy & Eggs, 797 products on the site): 350 products, paged without gaps.
- Specials only for coffee and chocolate: 72 products, 33 with an Xtra Savings member price; 10 of them out of stock.
- Shoprite in Johannesburg, "5kg chicken" and two other searches: 112 products.
Input
{"banner": "checkers","searchTerms": ["milk", "coffee"],"startUrls": [{ "url": "https://www.checkers.co.za/department/bakery/bread-rolls-wraps-and-bagels-2-670437dc7a8738098af92e28" }],"regions": ["cape-town", "johannesburg"],"maxItemsPerSource": 100,"specialsOnly": false}
| Field | What it does |
|---|---|
banner | checkers (default) or shoprite. URLs must be from the chosen site. |
searchTerms | Words to search for. A barcode (EAN-13) finds that product. |
startUrls | Category (/department/...), product list (/search?plid=...), search (/search?Search=...) or product (/product/...-10392555EA) links, or a bare article number with its unit (10392555EA). |
regions | Cities whose stores' prices to read; empty means the site's default (no address). |
customLocations | Any other delivery location as latitude,longitude, for example -33.5779,18.4967. |
maxItemsPerSource | Products per search term or URL (default 100). A product link gives one. |
maxItems | Products in total for the run; 0 means no total limit. |
specialsOnly | Only products on promotion. |
sort | relevance (default), price_low, price_high or name. |
proxyConfiguration, maxConcurrency | Advanced: South African residential connections by default; requests at once (default 6). |
Output
One row per product (per region when regions are chosen). This row is from the example above, with the description shortened:
{"retailer": "Checkers","productId": "10164411EA","sku": "10164411","barcode": "8711000521045","name": "Jacobs Krönung Freeze Dried Instant Coffee 200g","brand": "Jacobs","size": "200 g","sizeValue": 200.0,"sizeUnit": "g","packCount": 1,"soldByWeight": false,"price": 209.99,"currency": "ZAR","wasPrice": null,"promoPrice": null,"onSpecial": true,"savings": null,"unitPrice": 1049.95,"unitPriceUnit": "kg","loyaltyPrice": 159.99,"loyaltyProgram": "Xtra Savings","loyaltyValidFrom": "2026-09-22T22:00:00Z","loyaltyValidUntil": "2026-10-11T21:59:59Z","promotions": [{"text": "Now R159.99","type": "fixed_discount","memberOnly": true,"promoUnitPrice": 159.99,"minQuantity": 1,"validFrom": "2026-09-22T22:00:00Z","validUntil": "2026-10-11T21:59:59Z","description": null}],"inStock": true,"stockStatus": "In stock","stockQuantity": 205,"category": null,"categories": null,"imageUrl": "https://catalog.sixty60.co.za/v2/files/6a5afe761c9cd2b4cf594e3a?width=600&height=600","url": "https://www.checkers.co.za/product/jacobs-kronung-freeze-dried-instant-coffee-200g-10164411EA","rating": null,"reviewCount": null,"seller": "Checkers","deliveryEstimate": "Sixty60 delivery (about 60 minutes)","store": {"key": "johannesburg","name": "Johannesburg","storeId": "5e9d72dbb54e17eeda08baf3","fulfilment": "sixty-min-delivery"},"position": 1,"sourceType": "product","sourceValue": "https://www.checkers.co.za/product/jacobs-kronung-freeze-dried-instant-coffee-200g-10164411EA","scrapedAt": "2026-10-04T16:18:13Z","barcodes": ["8711000521045", "5901480000519"],"catalogueId": "5d3af63ef434cf8420737f0c","maxPerOrder": 10,"description": "Unlock the magical aroma of Jacobs Krönung Freeze Dried Instant Coffee 200g, ...","promotionFlag": false}
priceis the shelf price for everyone;loyaltyPriceis the best single-item Xtra Savings price, with its dates;promoPriceis the best single-item promotion open to every shopper. Multi-buys stay inpromotionswithminQuantityand the price per item they work out to (promoUnitPrice).unitPriceis per kg, per litre or per item (unitPriceUnit), worked out from the pack size; for weighed products it is the site's price per kg.stockQuantityis the number the site reports for the serving store;inStockis false when the site says the product is unavailable there.categoryis filled for products found through a category link; search results do not carry a category.- All prices are in rand, as the site shows them, VAT included.
- The run's key-value store has
RUN-SUMMARY: products per search term or URL, how many the site reported, errors and approximate traffic.
Use it from code, automations and AI agents
- API: run it and get the results in one call:
POST https://api.apify.com/v2/acts/zaiq~checkers-scraper/run-sync-get-dataset-items?token=YOUR_TOKENwith the input as JSON. The API tab on this page has ready-made Python, JavaScript and cURL examples. - Python (
pip install apify-client):
from apify_client import ApifyClientclient = ApifyClient("YOUR_TOKEN")run = client.actor("zaiq/checkers-scraper").call(run_input={'searchTerms': ['milk', 'coffee'], 'startUrls': [{'url': 'https://www.checkers.co.za/department/bakery/bread-rolls-wraps-and-bagels-2-670437dc7a8738098af92e28'}], 'maxItemsPerSource': 20})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
- No code: connect it to Google Sheets, Zapier, Make or n8n from the Integrations tab, schedule runs in Apify Console, and get a webhook when a run finishes.
- AI agents (MCP): add it as a tool to Claude, Cursor or any MCP client through Apify's MCP server:
https://mcp.apify.com?tools=zaiq/checkers-scraper.
Pricing
$5.00 per 1,000 products ($0.005 per product row). Apify's platform usage is included.
Each product row is one charged event; a product in several regions is one row per region. Failed, blocked and empty pages, retries and duplicates are free. Your spending limit is respected: the run stops cleanly before going over it.
Limits
- Prices, promotions and stock are what the website shows for online orders from the stores serving each region. In-store shelf prices can differ.
- Without a region, the site's default store is used (no delivery address).
- Personalised offers that appear only after signing in to an Xtra Savings account are not included; nothing here signs in.
- Search results without a category link have no category path; ratings are only present when the site has reviews.
- A promotion page (
/merchandised-page/...) holds several product lists; use one of its?plid=list links. - Use the data in line with the retailer's terms and South African law. This Actor is not affiliated with or endorsed by Shoprite Holdings, Checkers or Shoprite.
FAQ
How current are the prices? Each run reads the site live; scrapedAt is the time of reading.
Why do prices differ between regions? The site prices and stocks each product per serving store. Pick several regions to compare them in one run.
Can I look up a product by barcode? Yes. Put the EAN-13 in Search terms; the row also lists every barcode the product carries.
Does it work for Shoprite? Yes. Set Store brand to Shoprite; searches, categories, products, regions and Xtra Savings deals work the same way.
What happens when the site blocks a request? It is tried again from another South African home connection. Requests
that still fail are free and are listed in RUN-SUMMARY.