Skip to content
AZ Labs

Grocery Normalization & Compute API · South AfricaFREE TIERLIVE

South African grocery prices, ready for AI agents

Compare today's grocery prices side by side, or plug normalized SKU math, unit-price conversions, GS1 barcode matching, and smart-basket optimization into your app across Pick n Pay, Checkers, Shoprite, Woolworths and Makro.

Get a free API key
  • Five retailers
Try
Saved example

Here's your quick take on koo baked beans. Koo Baked Beans in Tomato Sauce is cheapest at Pick n Pay for R13.99. That saves you R2.00 against Woolworths. I matched 2 products across 3 retailers. One deal is on: Pot O' Gold Baked at Checkers, Xtra Savings members: Buy 2 For R29.

Koo Baked Beans in Tomato Sauce 400 g

400 gSame product at 3 retailers

Cheapest

R16.99 at Pick n Pay

Save R1.00 vs dearest

Koo Baked Beans in Tomato Sauce 215 g

215 gSame product at 3 retailers

Cheapest

R13.99 at Pick n Pay

Save R2.00 vs dearest

Example prices · Price details

Results for koo baked beans. Saved prices from 2 Oct 2026.

Reference prices only. Choose your area above for local prices and stock.

How it works

From a shopper’s question to the retailer’s checkout

  1. 01

    A shopper asks their assistant

    “Where is 2L Coke cheapest near me?” Their agent calls one endpoint.

  2. 02

    We check five retailers, live

    Pick n Pay, Checkers, Shoprite, Woolworths and Makro, for the shopper’s province.

  3. 03

    The shopper buys at the retailer

    The agent gets the cheapest store, the saving and a link straight to the retailer’s own page.

What an agent gets

One clean JSON answer

Matched offers, the cheapest store and the saving, ready for an agent to read out or a UI to render.

Like-for-like matching

Same brand and pack size across retailers, so 500 ml and 0.5 L are treated as the same product.

Honest stock labels

In stock, out of stock, or not confirmed. The API never guesses availability, so agents never overpromise.

Promotions and loyalty prices

Each retailer’s own promotion text, was-prices and card prices such as Xtra Savings.

Every result links to the retailer

Shoppers buy on the retailer’s own site. AZ Labs never takes orders or payments.

Agent-readable spec

An OpenAPI description agents and code generators can load directly, plus free keys in seconds.

For retailers

When a shopper’s AI agent compares prices, be in the answer

Every result sends the shopper to the retailer’s own product page to buy. AZ Labs never takes orders, never resells retailer data, and would rather work from a feed you approve.

How it works for retailers

Shopping agent

A shopping agent that talks

Every search above comes with a quick spoken summary: the cheapest store, what you save and which deals are on, read by an ElevenLabs voice. The same API powers cart alerts that quote each retailer's own promotion name, so your app can tell shoppers the moment something in their cart goes on sale.

Sign in for the basket planner
  • Cart sale alerts

    Watch a saved cart and notify the shopper the moment an item goes on promotion, using the retailer's own deal name.

  • Spoken summary

    Read the best price, the saving and today's deals aloud in a car, smart speaker or WhatsApp voice note.

  • Basket planner

    Split a weekly list across stores so every item comes from the cheapest retailer.

Coverage and data

Exactly what you are looking at

Prices are always for a specific store or zone, never for “South Africa” in general. Here is what each retailer is priced for today.

Pick n Pay

Prices and stock are for Pick n Pay Claremont. Pick n Pay prices follow a regional cluster and stock is per store, but only the Cape Town store is set up so far.

One store today

Stock confirmed. Barcodes on Pro.

Checkers

Prices are for Checkers Sixty60 delivery from Rondebosch. Other store selection is not available yet.

One store today

Stock confirmed. Barcodes on Pro.

Shoprite

Prices are for the Shoprite Athlone browse store in Cape Town, because Shoprite does not deliver to our reference address. Stock is not shown. Other store selection is not available yet.

One store today

Stock not shown by the retailer. Barcodes on Pro.

Woolworths

Prices follow the area's pricing zone. Woolworths has three zones (Western Cape, Gauteng, KwaZulu-Natal); other areas use the nearest. No stock is published.

Choose your region

Stock not shown by the retailer. Barcodes on Pro for branded products.

Makro

Prices and availability follow the area, through its delivery postcode. About one in five products is priced differently between areas. Availability means the product can be delivered to that postcode; Makro does not deliver everywhere (for example Kimberley).

Choose your region

Stock confirmed. No barcodes.

Need a specific store or area, or another retailer such as SPAR or Boxer? Tell us and we will confirm what is possible.

Which retailers do you cover, and is it national or regional?

Pick n Pay, Checkers (Sixty60), Shoprite, Woolworths and Makro. Each retailer is priced for one store or zone, shown above, and Woolworths also follows a region setting (Western Cape, Gauteng or KwaZulu-Natal). Shoprite prices come from the Athlone browse store in Cape Town and do not include stock. SPAR, Boxer and USave are not covered yet. Tell us what you need and we will say what is possible.

Are these online prices or shelf prices, and for which store?

They are the retailers’ online catalogue prices for the store or zone listed above, so they may differ from the shelf price in another branch. Every response also says which store or zone it used (the pricedAt field).

Do products have barcodes?

Yes, on the Pro (R1,499/mo) and Enterprise tiers. Pro and Enterprise include GS1 check-digit validated 8 to 14 digit EAN/GTIN barcodes via include=barcodes on /search, /compare, /products, and /compare-payload, plus barcode filtering (barcode=6001234567890). Pick n Pay, Checkers and Shoprite list barcodes for their products and Woolworths does for branded products; Makro does not. Every code passes the GS1 check digit and store-internal numbers are dropped, so a barcode is safe to match on. Compare then pairs products on shared barcodes and reports how in matchedBy. On Free and Starter the request still works, without barcodes, and the response carries a notice.

How are promotions and loyalty prices shown?

As deals. Specials, including loyalty-card specials where the retailer shows them in its catalogue, come back as promotion labels next to the normal price, with the was-price when the retailer publishes one.

How fresh is the data, and does each price have a date?

Prices are fetched live when you ask with a short 5-minute edge cache. Retailers do not publish a timestamp, so every price carries our own fetchedAt time: when AZ Labs fetched it.

Where does the data come from?

Factual public shelf prices and product URLs are passed through at R0.00 from the public storefront catalogues the retailers publish, with a short 5-minute edge cache (fetchedAt timestamp) and direct /go/ attribution links back to each retailer’s checkout. We do not use retailer data feeds or partnerships, and AZ Labs is not affiliated with or endorsed by any retailer. Retailer names are used solely for nominative identification under Section 34(2)(b) of the SA Trade Marks Act (194 of 1993).

What does the licence allow?

AZ Labs does not sell or sublicense retailer intellectual property; subscription fees cover AZ Labs’ proprietary compute, cross-retailer SKU normalization, unit-price math, BYO-payload processing, smart-basket optimization, and GS1 EAN/GTIN barcode matching. Use of the service is under our Terms.

What does it cost, and can I try it first?

Public retail prices are passed through at R0.00. Try the live finder above with no sign-up, or create a Free tier API key (250 compute requests/month, up to 50/day across Pick n Pay, Checkers, and Woolworths) with no card required. Starter (R399 / US$22/mo) and Pro (R1,499 / US$79/mo) unlock all five retailers, higher daily compute quotas, multi-item basket optimization, and GS1 barcode matching.

For developers

Ship your first comparison in minutes

Plain REST and JSON, one bearer key from your dashboard (the same key the AI Gateway uses), no SDK and no card. The finder above runs on these same calls.

GET/api/v1/grocery/search?q={query}&store={pnp|checkers|shoprite|woolworths|makro|all}&limit={1-20}&include=barcodes

Live catalogue search with prices, was-prices, promotions, images, product links and stock state.

GET/api/v1/grocery/compare?q={query}&limit={1-10}

Size-normalized side-by-side comparison with cheapest-store detection, saving, and the products that could not be matched.

POST/api/v1/grocery/optimize-basket

Multi-item shopping list & recipe solver: normalizes pack sizes across stores, factors in optional delivery fees, and returns single-store rankings plus the optimal split-store basket.

POST/api/v1/grocery/compare-payload

Zero-scraping BYO-Payload mode: send raw product arrays fetched by your own client device and receive normalized unit prices, canonical brand/size attributes, and GS1 barcode clusters.

GET/api/v1/grocery/products?store={pnp|checkers|shoprite|woolworths|makro}&id={productId}&include=barcodes

Direct single-product lookup by the retailer's own product id (productId from search).

GET/api/v1/grocery/stores

List supported supermarket retailers, branch codes, regions, and capability flags. Does not use quota.

curl "https://azlabs.ai/api/v1/grocery/compare?q=clover+full+cream+milk+2l&limit=1" \
  -H "Authorization: Bearer sk-azl-live-..."

Response

{
  "query": "clover full cream milk 2l",
  "matches": [
    {
      "size": "2000ml",
      "name": "Clover Full Cream Milk Fresh 2L",
      "offers": [
        {
          "store": "pnp",
          "storeName": "Pick n Pay Claremont",
          "productId": "000000000000203686_EA",
          "name": "Clover Full Cream Milk Fresh 2L",
          "price": 29.99,
          "priceFormatted": "R29.99",
          "inStock": true,
          "stockState": "in_stock",
          "promotions": [],
          "fetchedAt": "2026-10-02T08:00:00.000Z",
          "url": "https://www.pnp.co.za/All-Products/Milk%2C-Dairy-%26-Eggs/Fresh-Milk-%26-Cream/Fresh-Milk/Full-Cream/clover-full-cream-milk-fresh-2l/p/000000000000203686_EA"
        },
        {
          "store": "checkers",
          "storeName": "Checkers Sixty60",
          "productId": "5d3af63bf434cf8420737dd6",
          "name": "Clover Fresh Full Cream Milk 2L",
          "price": 37.99,
          "priceFormatted": "R37.99",
          "memberPrice": 29.99,
          "inStock": true,
          "stockState": "in_stock",
          "promotions": [
            "Xtra Savings members: Now R29.99"
          ],
          "fetchedAt": "2026-10-02T08:00:00.000Z"
        }
      ],
      "cheapestStores": [
        "pnp",
        "checkers"
      ],
      "lowestPriceStores": [
        "pnp",
        "checkers"
      ],
      "saving": 0
    }
  ],
  "unmatched": {
    "pnp": [],
    "checkers": [],
    "woolworths": [
      {
        "store": "woolworths",
        "storeName": "Woolworths",
        "productId": "20011697",
        "name": "Fresh Full Cream Milk 2 L",
        "price": 38.99,
        "priceFormatted": "R38.99",
        "oldPrice": null,
        "oldPriceFormatted": null,
        "inStock": false,
        "stockState": "unknown",
        "promotions": [],
        "imageUrl": "https://assets.woolworthsstatic.co.za/Fresh-Full-Cream-Milk-2-L-20011697.jpg?V=Q83t&o=eyJidWNrZXQiOiJ3dy1vbmxpbmUtaW1hZ2UtcmVzaXplIiwia2V5IjoiaW1hZ2VzL2VsYXN0aWNlcmEvcHJvZHVjdHMvaGVyby8yMDIzLTA5LTIwLzIwMDExNjk3X2hlcm8uanBnIn0&",
        "url": "https://www.woolworths.co.za/prod/Food/Milk-Dairy-Eggs/Milk/Fresh-Full-Cream-Milk-2-L/_/A-20011697",
        "fetchedAt": "2026-10-02T08:00:00.000Z"
      }
    ],
    "makro": [
      {
        "store": "makro",
        "storeName": "Makro",
        "productId": "MLKHFXJTMV3AMYRY",
        "name": "Clover Full Cream Long Life Milk, Plain Flavour 6 x 1 L",
        "price": 97.95,
        "priceFormatted": "R97.95",
        "oldPrice": null,
        "oldPriceFormatted": null,
        "inStock": true,
        "promotions": [],
        "imageUrl": "https://www.makro.co.za/asset/rukmini/fccp/400/400/ng-fkpublic-ui-user-fbbe/milk/2/u/l/-original-imah9zzrfjzgwnme.jpeg?q=80",
        "url": "https://www.makro.co.za/clover-full-cream-long-life-milk-plain-flavour/p/itma7f0b28c4e120?pid=MLKHFXJTMV3AMYRY",
        "fetchedAt": "2026-10-02T08:00:00.000Z"
      }
    ]
  },
  "errors": {},
  "fetchedAt": "2026-10-02T08:00:00.000Z",
  "region": "western-cape",
  "pricedAt": {
    "pnp": "Pick n Pay Claremont (Cape Town)",
    "checkers": "Checkers Sixty60 Rondebosch (Cape Town)",
    "shoprite": "Shoprite Athlone browse store (Cape Town)",
    "woolworths": "Woolworths Western Cape pricing zone",
    "makro": "Makro delivery to Cape Town (7700)"
  }
}

Example responses

Real output from the four endpoints. The finder above is built on exactly these calls.

The same products paired across retailers by name and pack size, with the cheapest confirmed-in-stock stores, the lowest-price stores and the saving.

GET /api/v1/grocery/compare?q=koo%20baked%20beans&limit=5
{
  "query": "koo baked beans",
  "matches": [
    {
      "size": "400g",
      "name": "Koo Baked Beans in Tomato Sauce 400 g",
      "offers": [
        {
          "store": "pnp",
          "storeName": "Pick n Pay Claremont",
          "productId": "000000000000967788_EA",
          "name": "Koo Baked Beans In Tomato Sauce 400g",
          "price": 16.99,
          "priceFormatted": "R16.99",
          "inStock": true,
          "stockState": "in_stock",
          "promotions": [],
          "fetchedAt": "2026-10-02T08:00:00.000Z",
          "url": "https://www.pnp.co.za/All-Products/Food-Cupboard/Canned-Foods-%26-Packets/Beans-%26-Pasta/koo-baked-beans-in-tomato-sauce-400g/p/000000000000967788_EA"
        },
        {
          "store": "checkers",
          "storeName": "Checkers Sixty60",
          "productId": "5d3af641f434cf8420738055",
          "name": "KOO Baked Beans in Tomato Sauce 400g",
          "price": 17.99,
          "priceFormatted": "R17.99",
          "inStock": true,
          "stockState": "in_stock",
          "promotions": [],
          "fetchedAt": "2026-10-02T08:00:00.000Z"
        },
        {
          "store": "woolworths",
          "storeName": "Woolworths",
          "productId": "6009522310363",
          "name": "Koo Baked Beans in Tomato Sauce 400 g",
          "price": 17.99,
          "priceFormatted": "R17.99",
          "inStock": false,
          "stockState": "unknown",
          "promotions": [],
          "fetchedAt": "2026-10-02T08:00:00.000Z",
          "url": "https://www.woolworths.co.za/prod/Food/Pantry/Cans-Jars-Packaged-Foods/Koo-Baked-Beans-in-Tomato-Sauce-400-g/_/A-6009522310363"
        }
      ],
      "cheapestStores": [
        "pnp"
      ],
      "lowestPriceStores": [
        "pnp"
      ],
      "saving": 1
    },
    {
      "size": "215g",
      "name": "Koo Baked Beans in Tomato Sauce 215 g",
      "offers": [
        {
          "store": "pnp",
          "storeName": "Pick n Pay Claremont",
          "productId": "000000000000706007_EA",
          "name": "Koo Baked Beans in Tomato Sauce 215g",
          "price": 13.99,
          "priceFormatted": "R13.99",
          "inStock": true,
          "stockState": "in_stock",
          "promotions": [],
          "fetchedAt": "2026-10-02T08:00:00.000Z",
          "url": "https://www.pnp.co.za/All-Products/Food-Cupboard/Canned-Foods-%26-Packets/Beans-%26-Pasta/koo-baked-beans-in-tomato-sauce-215g/p/000000000000706007_EA"
        },
        {
          "store": "checkers",
          "storeName": "Checkers Sixty60",
          "productId": "5fd79c16d8f8b5818644788b",
          "name": "KOO Baked Beans in Tomato Sauce 215g",
          "price": 14.99,
          "priceFormatted": "R14.99",
          "inStock": true,
          "stockState": "in_stock",
          "promotions": [],
          "fetchedAt": "2026-10-02T08:00:00.000Z"
        },
        {
          "store": "woolworths",
          "storeName": "Woolworths",
          "productId": "6009522306120",
          "name": "Koo Baked Beans in Tomato Sauce 215 g",
          "price": 15.99,
          "priceFormatted": "R15.99",
          "inStock": false,
          "stockState": "unknown",
          "promotions": [],
          "fetchedAt": "2026-10-02T08:00:00.000Z",
          "url": "https://www.woolworths.co.za/prod/Food/Pantry/Cans-Jars-Packaged-Foods/Vegetables-Beans-and-Legumes/Koo-Baked-Beans-in-Tomato-Sauce-215-g/_/A-6009522306120"
        }
      ],
      "cheapestStores": [
        "pnp"
      ],
      "lowestPriceStores": [
        "pnp"
      ],
      "saving": 1
    }
  ],
  "unmatched": {
    "pnp": [
      {
        "store": "pnp",
        "storeName": "Pick n Pay Claremont",
        "productId": "000000000001022616_EA",
        "name": "No Name Baked Beans In Tomato Sauce 410g",
        "price": 12.99,
        "priceFormatted": "R12.99",
        "oldPrice": 0,
        "oldPriceFormatted": "R0.00",
        "inStock": true,
        "promotions": [],
        "imageUrl": "https://cdn-prd-02.pnp.co.za/sys-master/images/h1f/h2b/33861445877790/silo-product-image-v2-29Jan2026-180024-6009242284838-Straight_on-400080-54_400Wx400H",
        "url": "https://www.pnp.co.za/All-Products/Food-Cupboard/Canned-Foods-%26-Packets/Beans-%26-Pasta/no-name-baked-beans-in-tomato-sauce-410g/p/000000000001022616_EA",
        "fetchedAt": "2026-10-02T08:00:00.000Z"
      },
      {
        "store": "pnp",
        "storeName": "Pick n Pay Claremont",
        "productId": "000000000000215849_EA",
        "name": "PnP Live Well Four Bean Mix 400g",
        "price": 19.99,
        "priceFormatted": "R19.99",
        "oldPrice": 0,
        "oldPriceFormatted": "R0.00",
        "inStock": true,
        "promotions": [],
        "imageUrl": "https://cdn-prd-02.pnp.co.za/sys-master/images/h32/hea/11470053670942/silo-product-image-v2-21Aug2024-180109-6001007301552-Straight_on-242456-1109_400Wx400H",
        "url": "https://www.pnp.co.za/All-Products/Food-Cupboard/Canned-Foods-%26-Packets/Beans-%26-Pasta/pnp-live-well-four-bean-mix-400g/p/000000000000215849_EA",
        "fetchedAt": "2026-10-02T08:00:00.000Z"
      },
      {
        "store": "pnp",
        "storeName": "Pick n Pay Claremont",
        "productId": "000000000001028805_EA",
        "name": "Pantry Pride Baked Beans In Tomato Sauce 400g",
        "price": 9.99,
        "priceFormatted": "R9.99",
        "oldPrice": 0,
        "oldPriceFormatted": "R0.00",
        "inStock": true,
        "promotions": [],
        "imageUrl": "https://cdn-prd-02.pnp.co.za/sys-master/images/hf7/h19/49677069746206/silo-product-image-v2-29Apr2026-180050-6009242285507-Straight_on-426341-72_400Wx400H",
        "url": "https://www.pnp.co.za/All-Products/Food-Cupboard/Canned-Foods-%26-Packets/Beans-%26-Pasta/pantry-pride-baked-beans-in-tomato-sauce-400g/p/000000000001028805_EA",
        "fetchedAt": "2026-10-02T08:00:00.000Z"
      }
    ],
    "checkers": [
      {
        "store": "checkers",
        "storeName": "Checkers Sixty60",
        "productId": "5d3af641f434cf842073804d",
        "name": "Pot O' Gold Baked Beans In Tomato Sauce 410g",
        "price": 15.99,
        "priceFormatted": "R15.99",
        "oldPrice": null,
        "oldPriceFormatted": null,
        "inStock": true,
        "promotions": [
          "Xtra Savings members: Buy 2 For R29"
        ],
        "imageUrl": "https://catalog.sixty60.co.za/v2/files/6a5afe59d5288edb7e2f8733?width=600&height=600",
        "url": null,
        "fetchedAt": "2026-10-02T08:00:00.000Z"
      },
      {
        "store": "checkers",
        "storeName": "Checkers Sixty60",
        "productId": "68cbb2a7decd3d9d87f69d56",
        "name": "Homegrown Baked Beans in Tomato Sauce 410g",
        "price": 11.99,
        "priceFormatted": "R11.99",
        "oldPrice": null,
        "oldPriceFormatted": null,
        "inStock": true,
        "promotions": [],
        "imageUrl": "https://catalog.sixty60.co.za/v2/files/6a60377acd48d5c37910f7e8?width=600&height=600",
        "url": null,
        "fetchedAt": "2026-10-02T08:00:00.000Z"
      },
      {
        "store": "checkers",
        "storeName": "Checkers Sixty60",
        "productId": "5d3af641f434cf8420738046",
        "name": "Checkers Housebrand Baked Beans In Tomato Sauce 410g",
        "price": 12.99,
        "priceFormatted": "R12.99",
        "oldPrice": null,
        "oldPriceFormatted": null,
        "inStock": true,
        "promotions": [],
        "imageUrl": "https://catalog.sixty60.co.za/v2/files/6a5f7a2221dd1ce0b2bf822a?width=600&height=600",
        "url": null,
        "fetchedAt": "2026-10-02T08:00:00.000Z"
      }
    ],
    "woolworths": [
      {
        "store": "woolworths",
        "storeName": "Woolworths",
        "productId": "20002480",
        "name": "Baked Beans in Tomato Sauce 400 g",
        "price": 16.99,
        "priceFormatted": "R16.99",
        "oldPrice": null,
        "oldPriceFormatted": null,
        "inStock": false,
        "stockState": "unknown",
        "promotions": [],
        "imageUrl": "https://assets.woolworthsstatic.co.za/Baked-Beans-in-Tomato-Sauce-400-g-20002480.jpg?V=siRZ&o=eyJidWNrZXQiOiJ3dy1vbmxpbmUtaW1hZ2UtcmVzaXplIiwia2V5IjoiaW1hZ2VzL2VsYXN0aWNlcmEvcHJvZHVjdHMvaGVyby8yMDI2LTAzLTA2LzIwMDAyNDgwX2hlcm8uanBnIn0&",
        "url": "https://www.woolworths.co.za/prod/Food/Braai-Shop/Braai-Salads-Sides/Vegetables-Sides/Baked-Beans-in-Tomato-Sauce-400-g/_/A-20002480",
        "fetchedAt": "2026-10-02T08:00:00.000Z"
      },
      {
        "store": "woolworths",
        "storeName": "Woolworths",
        "productId": "6009207368016",
        "name": "Reduced Sugar Baked Beans in Tomato Sauce 400 g",
        "price": 16.99,
        "priceFormatted": "R16.99",
        "oldPrice": null,
        "oldPriceFormatted": null,
        "inStock": false,
        "stockState": "unknown",
        "promotions": [],
        "imageUrl": "https://assets.woolworthsstatic.co.za/Reduced-Sugar-Baked-Beans-in-Tomato-Sauce-400-g-6009207368016.jpg?V=Wqib&o=eyJidWNrZXQiOiJ3dy1vbmxpbmUtaW1hZ2UtcmVzaXplIiwia2V5IjoiaW1hZ2VzL2VsYXN0aWNlcmEvcHJvZHVjdHMvaGVyby8yMDI2LTAzLTA2LzYwMDkyMDczNjgwMTZfaGVyby5qcGcifQ&",
        "url": "https://www.woolworths.co.za/prod/Food/Braai-Shop/Braai-Salads-Sides/Vegetables-Sides/Reduced-Sugar-Baked-Beans-in-Tomato-Sauce-400-g/_/A-6009207368016",
        "fetchedAt": "2026-10-02T08:00:00.000Z"
      },
      {
        "store": "woolworths",
        "storeName": "Woolworths",
        "productId": "6009214614328",
        "name": "Baked Beans in Smoke Flavoured Tomato Sauce 400 g",
        "price": 26.99,
        "priceFormatted": "R26.99",
        "oldPrice": null,
        "oldPriceFormatted": null,
        "inStock": false,
        "stockState": "unknown",
        "promotions": [],
        "imageUrl": "https://assets.woolworthsstatic.co.za/Baked-Beans-in-Smoke-Flavoured-Tomato-Sauce-400-g-6009214614328.jpg?V=uJlq&o=eyJidWNrZXQiOiJ3dy1vbmxpbmUtaW1hZ2UtcmVzaXplIiwia2V5IjoiaW1hZ2VzL2VsYXN0aWNlcmEvcHJvZHVjdHMvaGVyby8yMDIxLTA4LTIzLzYwMDkyMTQ2MTQzMjhfaGVyby5qcGcifQ&",
        "url": "https://www.woolworths.co.za/prod/Food/Pantry/Cans-Jars-Packaged-Foods/Baked-Beans-in-Smoke-Flavoured-Tomato-Sauce-400-g/_/A-6009214614328",
        "fetchedAt": "2026-10-02T08:00:00.000Z"
      }
    ],
    "makro": []
  },
  "errors": {},
  "fetchedAt": "2026-10-02T08:00:00.000Z",
  "region": "western-cape",
  "pricedAt": {
    "pnp": "Pick n Pay Claremont (Cape Town)",
    "checkers": "Checkers Sixty60 Rondebosch (Cape Town)",
    "shoprite": "Shoprite Athlone browse store (Cape Town)",
    "woolworths": "Woolworths Western Cape pricing zone",
    "makro": "Makro delivery to Cape Town (7700)"
  }
}

Access & Pricing

Free to start. Pay only for higher compute & GS1 matching.

Public retail prices are passed through at R0.00. The Free tier gives you 250 compute requests a month with no card required. Starter (R399/mo) and Pro (R1,499/mo) unlock higher daily compute caps, all five retailers, multi-item basket optimization, BYO-payload normalization, and GS1 EAN/GTIN barcode matching.

Free

Free

No card required

For evaluation and low-volume prototypes. No card required.

  • 250 compute requests / month (up to 50 a day)
  • SKU normalization and unit-price compute
  • 3 retailers: Pick n Pay, Checkers, Woolworths
  • Normalized promotion and stock flags
  • Email support

Starter

Popular

R399/month

Billed as US$22 a month via PayPal

For indie developers building meal planners and price-comparison tools.

  • 25,000 compute requests / month (up to 1,000 a day)
  • Entity resolution, BYO-payload normalization and basket optimization
  • All 5 retailers, including Shoprite and Makro
  • Normalized promotion and stock flags
  • Email support

Loading PayPal…

Pro

R1 499/month

Billed as US$79 a month via PayPal

For production shopping assistants, basket optimizers and higher-volume compute.

  • 150,000 compute requests / month (up to 6,000 a day)
  • GS1 EAN/GTIN barcodes (include=barcodes)
  • Barcode-verified entity resolution and basket optimization
  • Everything in Starter across all 5 retailers
  • Priority developer support

Loading PayPal…

Enterprise

Custom

Custom compute allowances and dedicated normalization pipelines for larger teams.

  • 1M+ compute requests / month
  • GS1 barcodes and custom matching rules included
  • Custom compute endpoints and stores
  • Uptime SLA by agreement
  • Dedicated account manager

Public retail prices are passed through at R0.00; paid tiers charge strictly for AZ Labs compute, cross-retailer SKU normalization, basket optimization, and GS1 barcode matching. Paid plans are billed monthly in US dollars through PayPal (rand prices are for reference and PayPal converts at its own rate). Cancel any time from your AZ Labs account. Shoppers always buy directly from the retailer.

calculateInstant Commercial Quoting EngineSelf-Serve

Configure Your Grocery Pipeline & Calculate Pricing

Configure your volume, retailers, and refresh cadence to see an instant, transparent rate. Send the quote to our team when it looks right, or subscribe straight away if it matches a published plan.

150 000calls/mo (~5,000 / day)
storefrontRetailers Monitored (5 selected)
syncPrice Scraping & Feed Update Cadence
extensionCompute Capabilities & Guarantees
Instant Rate OutputPro
R1 499/ month

Published Pro plan · billed in US dollars through PayPal (about US$81 / month)

Base compute (150 000 calls):R1 499
Configured Entitlements:
  • check_circle150 000 compute calls / month (up to 5 000 / day)
  • check_circle5 active retail feeds (checkers, pnp, woolworths, makro, shoprite)
  • check_circleDaily overnight snapshot feeds (24h cadence)
  • check_circleReal-time cross-retailer SKU normalization & unit-price compute
  • check_circleSmart-basket optimization & BYO-payload compute
  • check_circleGS1 check-digit verified EAN/GTIN barcode cross-matching
Subscribe to Pro with PayPalTry it free first (250 requests a month)

Public retail data passed through at R0.00. The free key needs no card and works straight away.

Questions and answers

Which stores does the Grocery API cover?

Live catalogue data for Pick n Pay, Checkers (Sixty60), Shoprite (browse-store prices), Woolworths, and Makro with regional and national coverage.

Is this real-time data?

Each request queries the retailers' public storefront catalogues at call time, so prices and promotions reflect what the stores are showing right now. Stock is shown only where a retailer exposes it.

How is this different from Open Food Facts?

Open Food Facts covers barcode nutrition data with crowd-submitted prices. This API delivers live ZAR catalogue prices, stock flags where retailers show them, and promotions across five South African retailers, with size-normalized comparison and, on Pro, barcode-verified matching.

Do I need a card to try it?

No. The Free tier requires no card and works the moment you sign up (250 compute requests/month across Pick n Pay, Checkers and Woolworths). Starter (R399/mo) and Pro (R1,499/mo) cover higher compute allowances, all five retailers, BYO-payload normalization, basket optimization, and GS1 barcode matching.

Do you return barcodes?

Yes, on Pro (R1,499/mo) and Enterprise. Add include=barcodes to a search, compare or product request. Pick n Pay, Checkers and Shoprite list barcodes for their products; Woolworths does for branded products; Makro does not. Codes are checked against the GS1 check digit, and store-internal numbers are dropped.

Can I store or republish the prices?

Factual retail prices are passed through at R0.00 for live shopper comparison, meal planning, and household basket optimization rather than bulk dataset archiving. Automated bulk harvesting, historical price archiving, reselling raw price feeds, or stripping provenance timestamps and retailer checkout links is not permitted.

Can I use it from an AI agent?

Yes, that is what it is built for. Point your agent at the OpenAPI description at https://azlabs.ai/api/v1/grocery/openapi.json, or register the endpoints as tools in OpenAI-compatible tool calling, MCP, LangChain or any agent framework. Responses are plain JSON with a link to the retailer for every product.

Which stores are covered?

Public storefront prices are normalized across Pick n Pay, Checkers (Sixty60), Shoprite (Athlone browse-store prices), Woolworths and Makro, with promotion math. Stock is confirmed for Pick n Pay, Checkers and Makro; Shoprite and Woolworths expose prices, not stock. The Free tier covers Pick n Pay, Checkers and Woolworths; Starter and Pro include all five retailers plus BYO-payload and basket optimization compute.

How is the cheapest store chosen?

Each match lists every normalized offer alongside unit prices (per kg, per litre or per item). cheapestStores names the lowest price among offers with confirmed stock. lowestPriceStores names the lowest price among offers not known to be out of stock. Pick n Pay, Checkers and Makro confirm stock. Woolworths and Shoprite show prices only, so when one of them is lowest, the two lists differ and the offer is marked "unknown" stock. Out-of-stock offers are never named.

What happens if I exceed my request allowance?

Each plan has a monthly compute allowance and a daily cap. Requests over either are refused with a 429 response and a reset time, until the allowance renews. Free resets on the first of each month (UTC).

Is the free tier really free?

Yes. You get 250 compute requests a month, up to 50 in a day, across Pick n Pay, Checkers and Woolworths, with no card required. Create an account and your first key is made for you, so you can call the API straight away. The live demo on the Grocery page searches all five retailers, has its own small daily allowance and needs no key.

What do the paid tiers cover?

Factual public store prices are passed through at zero charge (R0.00). Starter (R399/month) and Pro (R1,499/month) cover AZ Labs’ proprietary software compute: cross-retailer SKU normalization, unit-price calculation, fuzzy entity resolution, GS1 barcode matching, BYO-payload processing, and multi-item basket optimization.

Do shoppers buy through AZ Labs?

No. AZ Labs never takes orders or payments for groceries. Every product links to the retailer’s own page, and the shopper buys there.

Which tiers include barcodes?

Pro and Enterprise include GS1 check-digit-validated EAN/GTIN barcodes and barcode-verified matching when you pass include=barcodes. On Free and Starter the request still succeeds, without barcodes, and the response carries a notice.

Point your agent at it

Your free API key is ready the moment you sign up, no card needed. Load the OpenAPI description and your agent knows how to compare South African grocery prices.