PAK'nSAVE & New World API
PAK'nSAVE and New World are New Zealand's Foodstuffs supermarkets, and both price every product per store: across six PAK'nSAVE stores on the same day, 37 of 39 bread products and 9 of 11 butter products had different prices (one sliced bread was $3.49 in Napier and $4.02 at Wairau Road).
🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.
Every call therefore reads one store, given by store_id or part of its name; without one the API uses PAK'nSAVE Royal Oak or New World Remuera (Auckland) and says so. `search` returns products for a search term or a category with the price, the Clubcard price kept apart from the price, multi-buys such as "2 for $5.00", the unit price ("$2.33/1L"), price per kg with average piece weight for produce and meat, online and in-store availability, dietary tags and every category the product sits in. `deals` lists everything on a deal at a store, `product` returns one product with its barcode, ingredients, allergens, nutrition panel, images and the deal's start and end dates, `categories` gives the store's category tree and `stores` the 58 PAK'nSAVE and 149 New World stores with address, island, hours and coordinates. Pass banner=newworld for New World.
What a PAK'nSAVE / New World field actually contains
Fields that read differently from how they look. Every row was measured against live responses and the rendered site on 2026-10-15.
| Field | What it holds |
|---|---|
| store_id, store_name, store_defaulted | The store the prices belong to. store_defaulted is true when you did not pass a store; the answer still names the store used. |
| price | What anyone pays for one unit now, in NZD. When a single-unit deal is on ("$5.00, Limit 4"), price is the deal price and regular_price the price without it (Hubbards granola: 5.00 and 7.05). For goods sold by weight it is the price per kg (price_unit "kg"). |
| member_price | The New World Clubcard price, never the price: Paseo toilet tissue 8 x 270 sheets showed price 10.19 and member_price 7.59 (limit 12). null when there is no card price; PAK'nSAVE deals carried none in our sample. |
| multi_buy | A deal on several units, kept apart from the single price: Nippy's flavoured milk 375 ml price 2.79 with multi_buy quantity 2, price 5.00 ("2 for $5.00"). card_required says when it needs a Clubcard; mix_and_match when assorted products count together. |
| unit_price | The site's comparison price: price per quantity and unit, for example 2.33 per 1 L or 0.47 per 100 sheets. |
| sold_by, weight | unit, weight or unit_or_weight (bananas can be bought by the piece or by the kg); weight gives the average piece weight, minimum order and step in grams. |
| categories | Every placement of the product in the shop, as "Department > Aisle > Shelf" paths. A flavoured milk sits under both Hot & Cold Drinks and Fridge, Deli & Eggs. |
| total, total_capped, total_on_promotion | The shop shows at most the first 1,000 products of any result; total_capped is true when the count stops there. For deals, total_on_promotion is the store's own count of deals (2,904 at PAK'nSAVE Royal Oak). |
| barcode, plu | barcode is the EAN of packed goods; weighed goods carry a short store code instead, returned as plu. |
Neither shop publishes a was-price or a stock count to visitors: availability is online / in store only. Ratings are not included.
Real request and response JSON
Captured from the indexed primary action, search, on .
{
"method": "POST",
"url": "https://api.reefapi.com/paknsave/v1/search",
"headers": {
"x-api-key": "$REEF_KEY",
"content-type": "application/json"
},
"body": {
"query": "milk"
}
}{
"ok": true,
"meta": {
"api": "paknsave",
"endpoint": "search",
"mode": "live",
"latency_ms": 2081.3,
"record_count": 50,
"bytes": 35307,
"cache_hit": false,
"total": 95,
"store_defaulted": true,
"banner": "paknsave",
"upstream_requests": 1,
"charged_credits": 2,
"version": "0.1.0",
"request_id": "9f138a23d6a14740",
"queue_ms": 1.2,
"fetched_at": "2026-10-15T17:02:57.626Z"
},
"data": {
"banner": "paknsave",
"store_id": "e1925ea7-01bc-4358-ae7c-c6502da5ab12",
"store_name": "PAK'nSAVE Royal Oak",
"store_region": "NI",
"store_defaulted": true,
"query": "milk",
"category": null,
"brand": null,
"dietary": null,
"on_promotion": null,
"sort": "relevance",
"total": 95,
"total_is_exact": true,
"total_capped": false,
"page": 1,
"page_size": 50,
"last_page": 2,
"has_more": true,
"returned": 50,
"products": [
{
"rank": 1,
"product_id": "5201490-EA-000",
"title": "Pams Value Standard Milk",
"name": "Standard Milk",
"brand": "Pams Value",
"size": "3l",
"price": 6.98,
"regular_price": null,
"price_limit": null,
"currency": "NZD",
"on_promotion": false,
"member_price": null,
"member_price_program": null,
"member_unit_price": null,
"member_price_limit": null,
"multi_buy": null,
"price_unit": "each",
"unit_price": {
"price": 2.33,
"quantity": 1,
"unit": "L",
"per": "1L",
"text": "$2.33/1L"
},
"sold_by": "unit",
"weight": null,
"available_online": true,
"available_in_store": true,
"promotions": [],
"categories": [
"Fridge, Deli & Eggs > Milk > Fresh Milk"
],
"dietary": [
"Non-GMO"
],
"origin": null,
"restricted": false,
"liquor": false,
"tobacco": false,
"store_id": "e1925ea7-01bc-4358-ae7c-c6502da5ab12",
"url": "https://www.paknsave.co.nz/shop/product/5201490_ea_000pns"
},
{
"rank": 2,
"product_id": "5201479-EA-000",
"title": "Pams Value Standard Milk",
"name": "Standard Milk",
"brand": "Pams Value",
"size": "2l",
"price": 4.69,
"regular_price": null,
"price_limit": null,
"currency": "NZD",
"on_promotion": false,
"member_price": null,
"member_price_program": null,
"member_unit_price": null,
"member_price_limit": null,
"multi_buy": null,
"price_unit": "each",
"unit_price": {
"price": 2.35,
"quantity": 1,
"unit": "L",
"per": "1L",
"text": "$2.35/1L"
},
"sold_by": "unit",
"weight": null,
"available_online": true,
"available_in_store": true,
"promotions": [],
"categories": [
"Fridge, Deli & Eggs > Milk > Fresh Milk"
],
"dietary": [
"Non-GMO"
],
"origin": null,
"restricted": false,
"liquor": false,
"tobacco": false,
"store_id": "e1925ea7-01bc-4358-ae7c-c6502da5ab12",
"url": "https://www.paknsave.co.nz/shop/product/5201479_ea_000pns"
},
{
"rank": 3,
"product_id": "5201487-EA-000",
"title": "Pams Value Lite Milk",
"name": "Lite Milk",
"brand": "Pams Value",
"size": "2l",
"price": 4.69,
"regular_price": null,
"price_limit": null,
"currency": "NZD",
"on_promotion": false,
"member_price": null,
"member_price_program": null,
"member_unit_price": null,
"member_price_limit": null,
"multi_buy": null,
"price_unit": "each",
"unit_price": {
"price": 2.35,
"quantity": 1,
"unit": "L",
"per": "1L",
"text": "$2.35/1L"
},
"sold_by": "unit",
"weight": null,
"available_online": true,
"available_in_store": true,
"promotions": [],
"categories": [
"Fridge, Deli & Eggs > Milk > Fresh Milk"
],
"dietary": [
"Non-GMO"
],
"origin": null,
"restricted": false,
"liquor": false,
"tobacco": false,
"store_id": "e1925ea7-01bc-4358-ae7c-c6502da5ab12",
"url": "https://www.paknsave.co.nz/shop/product/5201487_ea_000pns"
}
]
}
}What the PAK'nSAVE & New World API does
| Action | Description | Concrete use case | Key params |
|---|---|---|---|
| search | Search one PAK'nSAVE or New World store's online range: price in NZD, club-card price kept apart from the price, multi-buy, unit price, sold-by-weight details, online / in-store availability, dietary tags and every category placement per product. `query` or `category` is required (either one); filter by brand, dietary tag or deals. | Pricing teams call search to search one PAK'nSAVE or New World store's online range. | query, category, store_id, banner, brand, ... |
| deals | Everything on a deal at one store (the site's Deals page): sale prices, multi-buys and club-card prices, optionally narrowed by query, category, brand or dietary tag. Reports the store's own count of deals (total_on_promotion) beyond the 1000-row window. | Marketplace operators call deals to get everything on a deal at one store (the site's Deals page). | query, category, store_id, banner, brand, ... |
| product | One product at one store: price, club-card price, multi-buy with start / end dates, unit price, barcode (or PLU for weighed goods), description, ingredients, allergens, nutrition panel, dietary tags, origin, images and availability. NOT_FOUND when the store does not sell it. | Catalog enrichment teams call product to get one product at one store. | product_id, store_id, banner |
| categories | The category tree of one store (names and paths to pass as `category`). | Retail analysts call categories to get the category tree of one store (names and paths to pass as `category`).. | store_id, banner |
| stores | PAK'nSAVE or New World store directory: store_id, name, address, island, coordinates, phone, opening hours, click & collect / delivery. Narrow by text or island, or sort by distance from a point. | Pricing teams call stores to get pAK'nSAVE or New World store directory. | banner, query, region, latitude, longitude, ... |
Call search from your stack
curl -X POST https://api.reefapi.com/paknsave/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"milk"}'import requests
r = requests.post(
"https://api.reefapi.com/paknsave/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"query": "milk"
},
)
print(r.json()["data"])const res = await fetch("https://api.reefapi.com/paknsave/v1/search", {
method: "POST",
headers: {
"x-api-key": process.env.REEF_KEY,
"content-type": "application/json",
},
body: JSON.stringify({
"query": "milk"
}),
});
const { ok, data, meta, error } = await res.json();Ask your MCP-connected assistant: call reefapi.paknsave.search with {"query":"milk"}.Who uses this API and why
- Compare New Zealand grocery prices between PAK'nSAVE and New World stores and regions.
- Track weekly deals, multi-buys and Clubcard prices on the products you follow.
- Build a New Zealand grocery product database with barcodes, ingredients, allergens and nutrition.
- Monitor unit prices to find the cheapest pack size per litre or per kilo.
- Find the nearest PAK'nSAVE or New World store with its hours and click & collect options.
Questions developers ask before integrating
Do I need a PAK'nSAVE or New World account?
No. Everything is read logged out: the prices, deals and Clubcard prices any visitor sees for a store. Personalised offers that need a login are not included.
Why does the price depend on the store?
Because Foodstuffs prices every store separately: 37 of 39 bread products and 9 of 11 butter products had different prices across six PAK'nSAVE stores on the same day. Pass store_id from the stores call, or part of a store name such as Napier or Royal Oak.
Is the Clubcard price the price I get?
Only with a Clubcard. price is what everyone pays; member_price is the card price. On the New World deals pages we checked, 21 of 30 deals were Clubcard prices.
Does it cover New World?
Yes, pass banner=newworld. New World runs on the same platform with 149 stores; PAK'nSAVE has 58.
Which filters and sorts work?
Sort by popularity, price or unit price, up or down; filter by category, brand, dietary tag (Gluten Free, Vegan …) and deals only. On "milk" at PAK'nSAVE Napier City (97 products): Anchor 23, Gluten Free 14, on a deal 7. On "chocolate" (639): the Chocolate, Sweets & Chewing Gum aisle 318, Fridge, Deli & Eggs 39.
How many results can I page through?
50 per page and up to 20 pages, because the shop itself stops at the first 1,000 products of any result. Three pages in a row returned 150 different products. Narrow by category or brand to reach the rest.
Are the prices the ones shown on the website?
Yes. 50 of 50 PAK'nSAVE product cards and 30 of 30 New World deal cards matched the price, deal price and multi-buy printed on the site for the same store and day.
How fresh is the data?
Every call reads the shop live; nothing is cached. Deals carry their start and end dates on the product call.
What is the PAK'nSAVE & New World API?
PAK'nSAVE & New World API is a ReefAPI endpoint group for new zealand grocery prices per store from pak'nsave and new world: nzd price, clubcard price, multi-buys, unit price, ingredients and nutrition. It returns live JSON through POST requests under /paknsave/v1.
Is the PAK'nSAVE & New World API free to try?
Yes. ReefAPI starts with 1,000 free credits, no card required. PAK'nSAVE & New World calls use the same shared credit balance as every other ReefAPI engine.
Do I need a PAK'nSAVE & New World login or account?
No login to PAK'nSAVE & New World is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.
How fresh is the PAK'nSAVE & New World data?
The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.
How many credits does the PAK'nSAVE & New World API use?
PAK'nSAVE & New World actions currently cost 1-2 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.
Can I call PAK'nSAVE & New World from an AI assistant or MCP client?
Yes. Connect ReefAPI once through MCP and your assistant can call paknsave actions with the same key, credit pool and JSON envelope used by normal REST requests.