Developers
Build on it.
A free, keyless JSON API over every price on this site, the same one the pages read. Search a product, pull its history, list the stores in a town, compare the chains.
https://api.supertracker.nz/api/v1 - Auth
- none
- Format
- JSON, any origin
- Limits
- 300/min · 10,000/day
- Endpoints
- 25
Start here
Four calls cover most questions. The first one opens in a browser.
# Find the product; every result carries a product_id and one offer per chain.
curl "https://api.supertracker.nz/api/v1/search?q=anchor+blue+milk+2l"
# Today's price at every chain, plus alternatives, for one product id.
curl "https://api.supertracker.nz/api/v1/products/285"
# Every national price span since it was first seen, per chain (columnar).
curl "https://api.supertracker.nz/api/v1/products/285/history"
# The stores in one town, with each store's price level against its own chain.
curl "https://api.supertracker.nz/api/v1/stores?town=Tokoroa" Documentation
The same reference three ways: for people, for machines, and for models.
- Interactive reference Every endpoint with its parameters, responses and a try-it panel. Start here. https://api.supertracker.nz/docs
- OpenAPI 3.1 document The machine-readable contract: generate a client, validate responses, feed it to a tool. https://api.supertracker.nz/openapi.json
- llms.txt The index for language models; the whole reference as Markdown is at /llms-full.txt. https://api.supertracker.nz/llms.txt
- MCP server The same endpoints as tools for chat apps and agents. Setup guide. https://api.supertracker.nz/mcp
- Nightly exports Parquet and CSV of every table. The bulk path. About the data. https://api.supertracker.nz/data/latest/manifest.json
The shape of things
- Money is integer cents, NZD.
priceis the shelf price; whenpromo_priceis set,promo_kindsays who gets it: 1 special (everyone), 2 club price (loyalty card), 3 multibuy (multibuy_qtyformultibuy_pricein total), 4 clearance. - Days are New Zealand dates,
YYYY-MM-DD; timestamps are UTC. - A listing is one chain's product; a product is the same item across chains. Ids are integers and stable. A listing carries
product_idonce it has been matched. - Series are columnar: parallel arrays (
from[],to[],price[]) rather than arrays of objects. A span runs from the day a price appeared to the day it changed. - National prices are the median across a chain's stores; store prices are exact.
- Images are paths on the API host to 720 px AVIFs; put
_tbefore.aviffor the 200 px thumbnail. - Errors are JSON:
{ "error": { "status": 404, "message": "No such product" } }.
Fair use
Each address may make 300 requests a minute and 10,000 a day. Every response carries RateLimit-* headers so a client can pace itself; going over gets a 429 with Retry-After.
The API is for looking things up. If you want everything, it is already packaged: the nightly exports are the same tables as Parquet and CSV, with no limit at all. Crawling the history endpoints one id at a time will hit the daily budget long before it finishes; the exports never will.
Data is CC BY 4.0: attribute Super Tracker (supertracker.nz) and acknowledge the source retailers. Prices are as advertised online by each supermarket; in-store may differ. The food-price index is a nowcast, not an official statistic.
Endpoints
Read live from the API's own description. A path without an id opens the live JSON; the others open in the reference.