Skip to main content
Glama

BasketWatch

Find products by ingredients and nutrition

find_products
Read-onlyIdempotent

Find products that meet ingredient, nutrition, alcohol or offer conditions, optionally sorted. For questions like "biscuits without palm oil", "nut-free snacks at Tesco", "vegan chocolate", "cereal with the least sugar", "high protein yoghurt", "bread with the fewest ingredients", "alcohol-free beer", "low salt soup" or "cheapest olive oil at Aldi". Every product comes with its nutrition, ingredients, ingredient count and today's price. Fibre and saturated fat are not recorded.

Ingredient words. exclude_ingredients are ingredients a product is free
of; include_ingredients ones it contains. These words are expanded to the
label terms they cover: palm oil, nuts (includes peanuts), peanuts, gluten,
milk (dairy), eggs, soya, sesame, mustard, celery, fish, crustaceans,
molluscs, shellfish, sulphites, lupin, gelatine, alcohol, added sugar,
sweeteners, pork, meat, vegetarian (meat, fish, gelatine and other
animal-derived ingredients) and vegan (vegetarian plus milk, eggs, honey and
other animal products). Any other word is matched as written, e.g.
"coconut" or "oats".

With no store, results alternate across the stores (each store's best
match, then each store's next), and matched_by_store gives each store's
full count.

A product whose ingredient list or nutrition is not on record, or whose
ingredient list on record is incomplete, is left out, never assumed to
pass: left_out_unknown counts them, left_out_by_reason gives the reasons,
and caveats lists known gaps (Aldi's ingredient lists are often cut short,
so Aldi products are not offered as free from anything). Claims printed in
a product's NAME, such as "gluten free", "lactose free", "alcohol free" or
"vegan", are matched through query; exclude_ingredients also checks the
ingredients. Alcohol strength is recorded for most SuperValu and Dunnes
drinks but few at Tesco and Aldi; "alcohol free" and "0.0" in query match
drinks named that way.

Answers come from the ingredient lists and nutrition the retailers publish.
"Free from" means none of the listed ingredients names it; not every
"may contain" warning is covered. Results carry a note that this is information
only. Each product returned costs one credit.

Args:
    query: product words, e.g. "biscuits", "crisps", "dark chocolate".
        Needed unless category is given.
    store: aldi, tesco, supervalu or dunnes. Leave out to search all four.
    category: an aisle name to narrow by, e.g. "Breakfast Cereals".
    exclude_ingredients: ingredients a product has to be free of, e.g.
        ["palm oil"], ["nuts", "sesame"], ["vegan"].
    include_ingredients: e.g. ["oats"].
    max_sugar_g, max_salt_g, max_fat_g, max_carbs_g, min_protein_g:
        grams per 100g or 100ml, e.g. max_sugar_g=5.
    max_kcal: kilocalories per 100g or 100ml.
    max_abv, min_abv: alcohol by volume, percent.
    max_ingredients: at most this many listed ingredients, e.g. 5. A
        compound ingredient's own bracketed list counts as one.
    on_offer: only products on promotion or with a Clubcard price.
    sort_by: price, unit_price (per kg or litre), sugar, salt, fat, carbs,
        protein, kcal, abv or ingredients (fewest first). Products that
        are the kind of thing searched for rank ahead of name-only matches
        (name_match_only), so "chocolate" sorted by price does not lead
        with chocolate-flavour popcorn.
    descending: true for highest first, e.g. most protein.
    limit: most products to return (default 10, max 50).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNo
queryNo
storeNo
max_abvNo
min_abvNo
sort_byNo
categoryNo
max_kcalNo
on_offerNo
max_fat_gNo
descendingNo
max_salt_gNo
max_carbs_gNo
max_sugar_gNo
min_protein_gNo
max_ingredientsNo
exclude_ingredientsNo
include_ingredientsNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
noteYes
as_ofNoPrice date, YYYY-MM-DD
caveatsNoLimits of this answer: pass them on
matchedNoProducts that passed every filter
productsNo
consideredNoProducts the search looked at
left_out_unknownNoLeft out because the ingredients, nutrition or value a filter or sort needs is not on record for them, or the ingredient list is incomplete
matched_by_storeNoHow many products passed at each store (more than are returned)
left_out_by_storeNo
left_out_by_reasonNoWhy products were left out, with counts

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

Score is being calculated.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources