Tool tree
See what is genuinely on special at supermarkets and online stores near you. Every price links back to the retailer page it was read from, with the date it was checked. Free to use.
Implementation
gradeNot graded
gradeNot graded
search_grocery_dealsAnswer
Search this week's verified South African grocery specials by keyword and show them on the Deals page.
View tool JSON
{
"name": "search_grocery_deals",
"kind": "answer",
"impl": "imperative",
"description": "Search this week's verified South African grocery specials by keyword and show them on the Deals page.",
"inputSchema": {
"additionalProperties": false,
"type": "object",
"required": [
"query"
],
"properties": {
"query": {
"type": "string",
"minLength": 2,
"maxLength": 80,
"description": "What to look for, as a shopper would say it: \"rice\", \"2l milk\", \"peanut butter\". One product, not a whole list."
}
}
},
"page": "/"
}find_nearby_supermarketsAnswer
Find supermarkets and their specials near a latitude/longitude.
View tool JSON
{
"name": "find_nearby_supermarkets",
"kind": "answer",
"impl": "imperative",
"description": "Find supermarkets and their specials near a latitude/longitude.",
"inputSchema": {
"additionalProperties": false,
"type": "object",
"required": [
"lat",
"lon"
],
"properties": {
"lat": {
"type": "number",
"minimum": -90,
"maximum": 90,
"description": "Latitude in decimal degrees."
},
"lon": {
"type": "number",
"minimum": -180,
"maximum": 180,
"description": "Longitude in decimal degrees."
}
}
},
"page": "/"
}compare_pricesAction
Compare one product's current price across two or more stores, using the visitor's own session.
View tool JSON
{
"name": "compare_prices",
"kind": "act",
"impl": "imperative",
"description": "Compare one product's current price across two or more stores, using the visitor's own session.",
"inputSchema": {
"additionalProperties": false,
"type": "object",
"required": [
"query",
"retailerIds"
],
"properties": {
"query": {
"type": "string",
"minLength": 2,
"maxLength": 80,
"description": "One product to price, e.g. \"peanut butter\"."
},
"retailerIds": {
"type": "array",
"minItems": 2,
"maxItems": 6,
"uniqueItems": true,
"items": {
"type": "string",
"enum": [
"pick-n-pay",
"checkers",
"shoprite",
"woolworths",
"spar",
"boxer",
"food-lovers",
"makro",
"dis-chem",
"clicks",
"usave",
"roots-butchery",
"ok-foods",
"takealot",
"amazon-za",
"loot",
"bobshop",
"game",
"builders",
"fair-price",
"evetech",
"wootware",
"yuppiechef",
"nike",
"adidas",
"puma",
"under-armour",
"new-balance",
"asics",
"superbalist",
"bash",
"sportscene",
"totalsports",
"archive",
"sneaker-factory",
"shelflife",
"sportsmans-warehouse",
"decathlon",
"mr-price",
"pep",
"truworths",
"office-london",
"edgars",
"cape-union-mart",
"old-khaki",
"cotton-on",
"h-and-m",
"zara",
"acdc-express",
"one-up-cash-and-carry",
"africa-cash-and-carry",
"a5-cash-and-carry",
"advance-cash-and-carry",
"big-save",
"bluff-meat-supply",
"check-save",
"checkstar",
"devland",
"diamond-discount-liquors",
"jumbo-cash-and-carry",
"kit-kat-cash-and-carry",
"ma-powertrade",
"obc-better-butchery",
"oxford-freshmarket",
"president-hyper",
"save",
"saverite",
"super-save",
"take-n-pay",
"the-total-store",
"ultra-liquors",
"giant-hyper",
"prestons-liquors",
"west-pack-lifestyle",
"cash-crusaders",
"cell-c",
"cellucity",
"chatz-connect",
"cosmetic-connection",
"hifi-corp",
"hirschs",
"mtn",
"rain",
"telkom",
"vodacom",
"computer-mania",
"matrix-warehouse",
"incredible-connection",
"bt-games",
"teljoy",
"adendorff",
"agrimark",
"beares",
"bradlows",
"brights-hardware",
"buco",
"build-it",
"cashbuild",
"chamberlains",
"coricraft",
"crazy-plastics",
"ctm",
"decofurn",
"furnmart",
"gelmar",
"house-and-home",
"k-carrim",
"laduma-hardware",
"leroy-merlin",
"lewis-stores",
"mica",
"mrp-home",
"ok-furniture",
"russells",
"rochester",
"schulmans-home",
"sheet-street",
"sleepmasters",
"tafelberg-furnishers",
"volpes",
"dial-a-bed",
"discount-decor",
"home-corp",
"homechoice",
"amc-cookware",
"shzen",
"the-bed-shop",
"samsung-za",
"ackermans",
"foschini",
"jet",
"markham",
"mrp-sport",
"spitz",
"sterns",
"avon",
"justine",
"liquor-city",
"autozone",
"babies-r-us",
"baby-city",
"crazy-store",
"temu",
"toys-r-us",
"tupperware",
"aliexpress",
"j-and-e-cash-and-carry",
"three-star-cash-and-carry",
"ok-urban"
]
},
"description": "Two to six shops to compare, by ID."
}
}
},
"page": "/"
}save_dealAction
Save a deal from search_grocery_deals to the visitor's account. Only works when signed in.
View tool JSON
{
"name": "save_deal",
"kind": "act",
"impl": "imperative",
"description": "Save a deal from search_grocery_deals to the visitor's account. Only works when signed in.",
"inputSchema": {
"additionalProperties": false,
"type": "object",
"required": [
"deal"
],
"properties": {
"deal": {
"type": "object",
"description": "A deal from the Trolley Scout feed. Pass it through unchanged where you have it; the fields below are what the account needs to show and re-check it later.",
"required": [
"id",
"retailerId",
"retailerName",
"title",
"productUrl",
"sourceUrl",
"capturedAt"
],
"properties": {
"capturedAt": {
"type": "string",
"format": "date-time",
"description": "When this price was read from the shop."
},
"evidenceText": {
"type": "string",
"description": "The shop’s own words that the price was taken from."
},
"expiresAt": {
"type": "string",
"format": "date-time",
"description": "When the shop says the special ends, if it says."
},
"id": {
"type": "string",
"description": "The deal's ID in the feed."
},
"imageUrl": {
"type": "string",
"description": "A picture of the product."
},
"previousPriceText": {
"type": "string",
"description": "What it cost before, as the shop writes it."
},
"priceText": {
"type": "string",
"description": "The price as the shop writes it, e.g. \"R32.99\"."
},
"productUrl": {
"type": "string",
"description": "The product page on the shop's own site."
},
"retailerId": {
"type": "string",
"enum": [
"pick-n-pay",
"checkers",
"shoprite",
"woolworths",
"spar",
"boxer",
"food-lovers",
"makro",
"dis-chem",
"clicks",
"usave",
"roots-butchery",
"ok-foods",
"takealot",
"amazon-za",
"loot",
"bobshop",
"game",
"builders",
"fair-price",
"evetech",
"wootware",
"yuppiechef",
"nike",
"adidas",
"puma",
"under-armour",
"new-balance",
"asics",
"superbalist",
"bash",
"sportscene",
"totalsports",
"archive",
"sneaker-factory",
"shelflife",
"sportsmans-warehouse",
"decathlon",
"mr-price",
"pep",
"truworths",
"office-london",
"edgars",
"cape-union-mart",
"old-khaki",
"cotton-on",
"h-and-m",
"zara",
"acdc-express",
"one-up-cash-and-carry",
"africa-cash-and-carry",
"a5-cash-and-carry",
"advance-cash-and-carry",
"big-save",
"bluff-meat-supply",
"check-save",
"checkstar",
"devland",
"diamond-discount-liquors",
"jumbo-cash-and-carry",
"kit-kat-cash-and-carry",
"ma-powertrade",
"obc-better-butchery",
"oxford-freshmarket",
"president-hyper",
"save",
"saverite",
"super-save",
"take-n-pay",
"the-total-store",
"ultra-liquors",
"giant-hyper",
"prestons-liquors",
"west-pack-lifestyle",
"cash-crusaders",
"cell-c",
"cellucity",
"chatz-connect",
"cosmetic-connection",
"hifi-corp",
"hirschs",
"mtn",
"rain",
"telkom",
"vodacom",
"computer-mania",
"matrix-warehouse",
"incredible-connection",
"bt-games",
"teljoy",
"adendorff",
"agrimark",
"beares",
"bradlows",
"brights-hardware",
"buco",
"build-it",
"cashbuild",
"chamberlains",
"coricraft",
"crazy-plastics",
"ctm",
"decofurn",
"furnmart",
"gelmar",
"house-and-home",
"k-carrim",
"laduma-hardware",
"leroy-merlin",
"lewis-stores",
"mica",
"mrp-home",
"ok-furniture",
"russells",
"rochester",
"schulmans-home",
"sheet-street",
"sleepmasters",
"tafelberg-furnishers",
"volpes",
"dial-a-bed",
"discount-decor",
"home-corp",
"homechoice",
"amc-cookware",
"shzen",
"the-bed-shop",
"samsung-za",
"ackermans",
"foschini",
"jet",
"markham",
"mrp-sport",
"spitz",
"sterns",
"avon",
"justine",
"liquor-city",
"autozone",
"babies-r-us",
"baby-city",
"crazy-store",
"temu",
"toys-r-us",
"tupperware",
"aliexpress",
"j-and-e-cash-and-carry",
"three-star-cash-and-carry",
"ok-urban"
]
},
"retailerName": {
"type": "string",
"description": "The shop, in words."
},
"savingText": {
"type": "string",
"description": "What the shopper saves, as the shop states it."
},
"sourceUrl": {
"type": "string",
"description": "The page the deal was found on."
},
"title": {
"type": "string",
"description": "The product name."
},
"unitText": {
"type": "string",
"description": "The size or unit, e.g. \"2L\", \"per kg\"."
}
}
}
}
},
"page": "/"
}