shoprite.co.za APIshoprite.co.za ↗
Retrieve Shoprite.co.za products, specials, categories, and store data with real-time pricing and availability filtered by store location.
curl -X GET 'https://api.parse.bot/scraper/98bf936f-1cdc-4e00-b994-5c44eb2d1d31/get_all_specials?page=0' \ -H 'X-API-Key: $PARSE_API_KEY'
Scrape all products from the specials page, extracting product name, regular price, special price, deal type, validity, and availability. Returns up to 20 products per page.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number to scrape (0-indexed). |
{
"type": "object",
"fields": {
"page": "integer, current page number",
"products": "array of product objects with code, name, brand, category, url, price, special_price, deal_type, valid_until, availability"
},
"sample": {
"data": {
"page": 0,
"products": [
{
"url": "https://www.shoprite.co.za/p/10478788EA",
"code": "10478788EA",
"name": "Yardley Gorgeous In Gold Ladies Deodorant 90ml",
"brand": "",
"price": "R53.99",
"category": "",
"deal_type": "Now R39.99",
"valid_until": null,
"availability": "Not available at your store",
"special_price": "R39.99"
}
]
},
"status": "success"
}
}About the shoprite.co.za API
The Shoprite.co.za API exposes 8 endpoints covering product search, specials, category browsing, store locations, and cross-retailer price comparison. Each product response includes fields like special_price, deal_type, valid_until, and availability. Use search_products to query the catalogue by keyword, or get_all_specials to paginate through current promotions — both return up to 20 products per page with pricing and deal metadata.
Product and Specials Data
The search_products endpoint accepts a query string and optional page parameter (0-indexed), returning an array of product objects. Each object carries code, name, brand, category, url, price, special_price, deal_type, valid_until, and availability. The get_all_specials endpoint mirrors this response shape but is scoped to the current promotions page — useful for tracking active deals without running a search. Both endpoints paginate at 20 products per page.
Category Browsing
get_all_departments returns the full department tree with id, name, and url for each department. Pass those values directly into get_products_by_category using the category_id and category_name parameters — for example, category_id: '2413' and category_name: 'All-Departments/Food'. Full product detail for any item can then be retrieved via get_product_detail using the product's code field (e.g. '10136301EA'), which adds a description field not present in listing responses.
Store-Aware Pricing
get_store_locator returns all Shoprite branches with id, name, address, town, postal_code, phone, latitude, longitude, and openings (trading hours). Once you have a store_id, call set_preferred_store to set the active store context; subsequent product responses will reflect that store's stock levels and prices. This makes the API suited to location-specific price and availability tracking.
Cross-Retailer Comparison
compare_prices accepts a product query string and returns a comparison array. Each entry includes product_name, shoprite_price, shoprite_special, muncho_price, and muncho_special, enabling side-by-side pricing between Shoprite and Muncho for the same product search term.
- Monitor Shoprite specials daily using
get_all_specialsand alert users whenspecial_pricedrops below a threshold. - Build a grocery price tracker that combines
set_preferred_storewithsearch_productsto show location-specific prices. - Aggregate department catalogues via
get_all_departmentsandget_products_by_categoryfor offline product databases. - Compare Shoprite vs Muncho pricing using
compare_pricesto surface the cheapest option for a given product. - Geocode and map store locations using
latitudeandlongitudefromget_store_locatorfor a store-finder feature. - Track deal validity windows by recording
valid_untilfrom specials and alerting before promotions expire. - Enrich product listings with full descriptions and availability by chaining
search_productswithget_product_detail.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Shoprite have an official public developer API?+
What does `get_product_detail` return that product listing endpoints don't?+
get_product_detail adds a description field — a text description of the product — which is not present in the arrays returned by search_products, get_all_specials, or get_products_by_category. All other fields (code, name, price, special_price, availability) are consistent across endpoints.Does setting a preferred store affect all subsequent product queries?+
set_preferred_store with a valid store_id from get_store_locator changes the store context, and product endpoints will then reflect that store's prices and stock availability. The response confirms the action with a status of 'success' and echoes back the store_id that was set.Which retailers does `compare_prices` cover?+
shoprite_price, shoprite_special, muncho_price, and muncho_special for each result. Other South African grocery retailers are not included in the current response shape. You can fork this API on Parse and revise it to add additional retailer comparison endpoints.