Every Pick n Pay price, Smart Shopper deal and stock level, store by store
Pick n Pay is one of South Africa's largest grocery chains, and every price on its online shop belongs to one store: the same 6 x 1 L UHT milk was R97.99 at Constantia (WC21), R104.99 at two other stores and R99.99 at a fourth on the same day, and 11 of 19 products shared by four stores carried different prices.
6 active endpoints, on 1 and 2 credit tiers.
- POST/pnp/v1/search
- POST/pnp/v1/category
- POST/pnp/v1/promotions
- POST/pnp/v1/promotion
- POST/pnp/v1/product
- POST/pnp/v1/stores
What Pick n Pay endpoints does ReefAPI ship?
6 live read endpoints. Read-only data API: no writes, no account actions, no dashboard access on the target site.
Pick n Pay API
4 of 6 endpoints, ready to run
Milk prices at one Pick n Pay
// Press "Try it" and this pane shows exactly what the // live site returned this second — including an empty // result, if that is the truth. No key, no account.
How the Pick n Pay API works
Pick n Pay is a normal ReefAPI surface — the same four rules that hold for every other engine on the key.
No OAuth app, no request signing, no per-site account. One key covers all 530 engines.
Every route is a POST with a JSON body. Parameters are validated against the published schema before anything is charged.
Credits, not seats. Failed and blocked calls are never charged, and cache hits cost nothing.
One envelope everywhere. meta carries latency_ms, record_count and the endpoint that answered.
From a store to a priced basket with every deal
Pick the store, search its shelf, then read the products and deals that matter.
The store code (WC21) and name of every matching store.
That store's products with shelf price, was-price, Smart Shopper price, multi-buy or combo, price per kg, stock and badges, plus category, brand and price facets.
The full record at that store: every promotion with dates, stock count, barcode, brand, allergens, certifications, nutrition and the single and case variants.
Every product a combo or multi-buy covers at that store.
A store-specific South African grocery price and deal feed with card prices kept apart from shelf prices.
curl -X POST https://api.reefapi.com/pnp/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"milk","store_id":"WC21"}'{
"ok": true,
"data": { … },
"meta": {
"api": "pnp",
"endpoint": "search",
"mode": "live",
"latency_ms": …,
"record_count": …
},
"error": null
}What a Pick n Pay field actually contains
Fields that read differently from how they look. Every row was measured against live responses on 2026-10-15.
| Field | What it holds |
|---|---|
| store_id, store_defaulted | The store the prices belong to. "milk" counted 1,271 products at Constantia (WC21), 1,221 at GC11 and 946 at NC10; beef mince was R139.99/kg at WC21 and R119.99/kg at GG17. store_defaulted is true when you did not pass a store. |
| price, price_display | The shelf price anyone pays at that store, in rand. For meat and produce sold by weight (product ids ending _KGM) it is the price per kg ("R139.99/kg") and price_unit is "kg". |
| member_price | The Smart Shopper card price, never the shelf price: UHT milk 6 x 1 L shows price 97.99 and member_price 89.99. null when the product has no card price. |
| multi_buy | A bulk deal apart from the single price: kind multi_buy ("2 For R34.00": quantity 2, price 34.00) or combo ("Combo For R49.99": a set of different items for one price; the promotion call lists the set). card_required says whether it needs Smart Shopper. |
| promotions | Every promotion with its id, text, deal price, card requirement and start and end date. A search row carries the product's main promotion; product lists all of them (a loaf showed a combo in search and the combo plus a R17.99 Smart Shopper price on product). |
| original_price, savings | The was-price and the saving when the product is on a price reduction. null, not 0, when there is no was-price. |
| weight_options | For goods sold by weight, the pack weights you can order (for example 900 g to 5 kg, with the weight range each one may come in). |
| stock_status, stock_level | in_stock, low_stock or out_of_stock at that store; product also gives the store's stock count (844 cases of one milk at WC21). |
| rating, review_count | As each surface prints it. The search row and the product record can disagree (5.0 from 11 reviews in search, 3.18 from 5 on the product the same minute), so each is returned as printed. |
| supplier | The company that supplies or owns the brand, as Pick n Pay names it: PICK N PAY for its own brand, COCA-COLA BEVERAGES SOUTH AFRICA, CLOVER, PEPSICO SNACK BRANDS and so on. Pick n Pay sells every product itself; the brand name is on the product record. |
| variants | The pack variants of one product (single, case, pallet) with their own price and stock. Pallet units carry no price. |
Pick n Pay does not publish a price per 100 g or 100 ml on its online shop, so none is returned; goods sold by weight carry their price per kg.
Pick n Pay coverage, measured
Every number below was read from live responses on 2026-10-15: 12 searches across 10 stores in two separate runs, 24 products read both from search and on their own, promotions, categories and the store list.
438 store codes on pnp.co.za, 386 not marked closed. 15 of 19 sampled codes answered with products; the other 4 (closed or wholesale) have no online shop.
6 x 1 L UHT milk: R97.99, R104.99, R104.99 and R99.99 at four stores the same day; 11 of 19 shared products priced differently. "milk": 1,271 products at one store, 946 at another.
Search row and product record agreed on price for 24 of 24 products, and on price, Smart Shopper price and was-price for 72 of 72 rows checked against a second record of the same search.
At one store: 3,434 products on promotion; 30 of 288 search rows carried a Smart Shopper price and 19 a multi-buy or combo.
Median 1.2 s per search and 1.2 s per product call, slowest 1.8 s, across two runs.
One store per call; 24 rows per page (up to 48); a search for everything stops counting at 10,000; no price per 100 g or 100 ml; the store list has codes and names but no addresses; no reviews text; personal Smart Shopper offers that need a login are not included.
What people build with Pick n Pay
The jobs this data is most often used for.
endpoints
credits per call
Compare Pick n Pay grocery prices store by store across South Africa.
Track Smart Shopper prices, multi-buys and combo deals at the stores you watch.
Monitor price per kg for meat and produce, and was-prices for real discounts.
Build a South African grocery product database with barcodes, allergens and nutrition tables.
What Pick n Pay data costs
The cheapest call here is 1 credit, so $15/mo (Pro) buys 10,000 of them — $1.50 per 1,000 credits. Credits roll over and never expire, and failed or blocked calls are not charged.
Full pricing →- 1,000 free credits on signup, no card
- One key, all 530 APIs, one credit pool
- Failed and blocked calls are never charged
- Credits roll over and never expire
Call it in two lines
Sign up, get 1,000 credits and one key that works on every engine. Then this is the whole protocol.
curl -X POST https://api.reefapi.com/pnp/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"milk","store_id":"WC21"}'import requests
r = requests.post(
"https://api.reefapi.com/pnp/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"query": "milk",
"store_id": "WC21"
},
)
print(r.json()["data"])Have a question? We got answers.
The questions people actually ask before wiring up Pick n Pay.
Get a free key →Do I need a Pick n Pay or Smart Shopper account?▾
No. Everything is read logged out: the prices, Smart Shopper prices, deals and stock any visitor sees for that store. Personal Smart Shopper offers that need a login are not included.
Is the Smart Shopper price the price I get?▾
Only with the card. price is what anyone pays; member_price is the Smart Shopper card price. On 2026-10-15, 30 of 288 search rows carried a card price and 19 a multi-buy or combo.
Why does the price depend on the store?▾
Because Pick n Pay sets prices, deals, stock and even the range per store: 11 of 19 products shared by four stores had different prices on the same day. Pass a store_id from the stores call; without it the site's default store (Pick n Pay Constantia, WC21) is used and the answer says so.
Which stores are covered?▾
The 438 store codes of pnp.co.za, 386 of them not marked closed. Some stores have no online shop (wholesale and closed stores); a search there returns a clear not-found answer. The store list gives the code and name only; addresses and opening hours are not published there.
Which filters and sorts work?▾
Sort by relevance or price; filter by brand, category, on promotion, price range in rand and certification (halaal, kosher, free range). Each was checked against the unfiltered count: "milk" 1,271, Clover 125, Milk, Dairy & Eggs 975, on promotion 334, R20-R30 168, kosher 508.
Does the price filter use the Smart Shopper price?▾
No. min_price and max_price filter on the shelf price: for R20-R30, every returned row's price was inside the range.
How many products per page?▾
24 by default, up to 48. Past the last page the answer is an empty page with a note. A search for everything stops counting at 10,000 results.
How fresh is the data?▾
Every call reads the site live; nothing is cached. Promotions carry their own start and end dates.
What is the Pick n Pay API?▾
Pick n Pay API is a ReefAPI endpoint group for south african grocery prices per store from pick n pay: price in rand, smart shopper price, multi-buy and combo deals, stock and product facts. It returns live JSON through POST requests under /pnp/v1.
Is the Pick n Pay API free to try?▾
Yes. ReefAPI starts with 1,000 free credits, no card required. Pick n Pay calls use the same shared credit balance as every other ReefAPI engine.
Do I need a Pick n Pay login or account?▾
No login to Pick n Pay 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 Pick n Pay 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 Pick n Pay API use?▾
Pick n Pay 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 Pick n Pay from an AI assistant or MCP client?▾
Yes. Connect ReefAPI once through MCP and your assistant can call pnp actions with the same key, credit pool and JSON envelope used by normal REST requests.
266 E-commerce & Marketplaces APIs on the same key
One key, one credit pool, one response envelope. If you are pulling Pick n Pay, you are one call away from the rest of the category — no second contract, no second integration.
Need something this API does not do?
Name the endpoint, the field, or a source we do not carry yet. We ship new APIs every week and you would be first to get the key. Real people read every message and reply the same day.
Try it on your own data before you pay anything
The call above is the real endpoint, not a recording. A free key gives you 1,000 credits, the other 529 APIs, and the same envelope everywhere.
Endpoints, parameters and credit costs on this page are read from the live catalog and cannot drift from what the API accepts. Field notes were captured on 2026-10-15.