Pingo Doce prices, promotions and product labels as JSON
Pingo Doce is one of Portugal's largest supermarket chains and pingodoce.pt its online shop.
6 active endpoints, on 1 and 3 credit tiers.
- POST/pingodoce/v1/search
- POST/pingodoce/v1/category
- POST/pingodoce/v1/promotions
- POST/pingodoce/v1/product
- POST/pingodoce/v1/categories
- POST/pingodoce/v1/store
What Pingo Doce endpoints does ReefAPI ship?
6 live read endpoints. Read-only data API: no writes, no account actions, no dashboard access on the target site.
Pingo Doce API
4 of 6 endpoints, ready to run
Milk prices at Pingo Doce
// 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 Pingo Doce API works
Pingo Doce 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 598 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 nothing is cached: every call reads the source live.
One envelope everywhere. meta carries latency_ms, record_count and the endpoint that answered.
From the category tree to a full price list
Read the categories, walk each one page by page, then open the products you need.
The shop's 492 category ids with names, URLs and the parent-child tree.
100 products with price, price unit, was price or PVPR, promotion badge and end date, price per kg or litre, plus the shop's total (1,422 for Mercearia).
Availability, order limits, category, images and the label with ingredients, allergens and the nutrition table.
A daily Pingo Doce price feed that keeps shelf price, was price, recommended price and promotion dates apart.
curl -X POST https://api.reefapi.com/pingodoce/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"leite"}'{
"ok": true,
"data": { … },
"meta": {
"api": "pingodoce",
"endpoint": "search",
"mode": "live",
"latency_ms": …,
"record_count": …
},
"error": null
}What a Pingo Doce field actually contains
Fields that read differently from how they look. Every row was measured against live pingodoce.pt responses on 2026-11-03.
| Field | What it holds |
|---|---|
| price, price_unit | The price anyone pays now, in euros, per price_unit. Goods sold by weight are priced per kg (Cenoura 0.89 per kg, pack about 0.18 kg); packs per unit (un). |
| regular_price | The struck-through price of a running promotion (Leite UHT Meio Gordo Mimosa: 0.90 now, 1.00 before). Empty when nothing is struck through. |
| recommended_retail_price | The manufacturer's recommended price (PVPR) printed next to some products. It is not a former Pingo Doce price: Iogurte Líquido Proteína Manga showed 1.99 with PVPR 2.69 and no struck-through price. |
| promotion_label, promotion_end | The shop's promotion badge ("Poupe 10%", "Poupe Metade", "Apenas") and its end date as printed, "Promoção até 09/11". The shop prints no year, so the API returns day and month only. |
| unit_price, unit_price_unit | The second price the shop prints: per litre, kg, dose or unit (1 L milk: 0.90 per l; 76 doses of detergent: 0.17 per dose). Empty for goods already priced per kg. |
| store | Which home-delivery area the rows are for. The range changes with the post code ('leite': 255 products with no area, 155 for Lisboa 1000-001, 200 for Porto 4000-322, 257 for Braga 4700-001); prices on the same product were equal in every area compared. |
Pingo Doce does not publish EAN barcodes on its public shop, so the API returns none. Loyalty-card discounts are not shown on public listings; price is what any shopper pays.
Pingo Doce coverage, measured
Every number below was read from live pingodoce.pt responses on 2026-11-03: searches in 8 product groups, 12 products read three ways, filters, paging and 4 delivery areas.
11,808 products across 25 department categories on 2026-11-03; 3,783 on promotion.
Same minute, 'leite': 255 unfiltered, 27 Mimosa, 33 lactose free, 2 organic, 94 between 1 and 2 euros, 92 in the milk category.
12 products: the search row, the product call and the shop's own product page agreed on price and was price 12 of 12 times.
Mercearia, 1,422 products: pages 1 to 3 had 100 different products each; the last page had 22 and said no more pages follow.
'leite': 155 products for Lisboa 1000-001, 200 Porto 4000-322, 257 Braga 4700-001; prices on shared products were the same.
Up to 100 products per page; the shop total is printed on page 1; no EAN barcodes; no stock counts; labels as complete as the producer filed them.
What people build with Pingo Doce
The jobs this data is most often used for.
endpoints
credits per call
Track Pingo Doce shelf prices and weekly promotions with their end dates.
Compare Portuguese grocery prices per kg or litre across brands and Pingo Doce's own labels.
Refresh a full Pingo Doce catalogue daily by walking its categories.
Build a product database with ingredients, allergens and nutrition tables.
What Pingo Doce 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 598 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/pingodoce/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"leite"}'import requests
r = requests.post(
"https://api.reefapi.com/pingodoce/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"query": "leite"
},
)
print(r.json()["data"])Have a question? We got answers.
The questions people actually ask before wiring up Pingo Doce.
Get a free key →Do I need a Pingo Doce account?▾
No. Everything is read logged out: the prices, promotions and product labels any visitor sees.
Can I download the whole catalogue?▾
Yes. `categories` returns every category id; `category` lists one with up to 100 products per page and the shop's own total on page 1. On 2026-11-03 the 25 department categories held 11,808 products, about 131 calls at 100 per page.
What is the difference between regular_price and recommended_retail_price?▾
regular_price is what Pingo Doce charged before a running promotion. recommended_retail_price is the manufacturer's recommended price (PVPR), printed for comparison; the product was not necessarily ever sold at it.
Do prices depend on the post code?▾
The range does: each home-delivery area has its own selection, so pass postal_code to see it. On the products we compared across Lisboa, Porto and Braga the price was the same. Post codes the shop serves by store pickup only (for example Funchal) are answered as not found.
Which filters work?▾
category, brand, one food choice and min_price / max_price, plus sorting by price or name. Each was checked against the unfiltered count in the same minute: 'leite' went from 255 products to 27 Mimosa, 33 lactose free, 2 organic and 94 between 1 and 2 euros.
Are EAN barcodes included?▾
No. Pingo Doce does not publish them on its public shop. Each product has the shop's own numeric product_id, which is stable and works in the product call.
Does the product call include nutrition and ingredients?▾
Yes, when Pingo Doce publishes them: regulated name, ingredients, allergens, the nutrition table per 100 g or ml, vitamins and minerals, origin, storage and the producer. Some labels are incomplete at the source and are returned as they are.
How fresh is the data?▾
Every call reads pingodoce.pt live; nothing is cached. Promotions run in weekly windows and each row carries its printed end date.
What is the Pingo Doce API?▾
Pingo Doce API is a ReefAPI endpoint group for portuguese supermarket prices from pingodoce.pt: shelf price, promotions with end date, was price, pvpr, price per kg or litre, ingredients and nutrition. It returns live JSON through POST requests under /pingodoce/v1.
Is the Pingo Doce API free to try?▾
Yes. ReefAPI starts with 1,000 free credits, no card required. Pingo Doce calls use the same shared credit balance as every other ReefAPI engine.
Do I need a Pingo Doce login or account?▾
No login to Pingo Doce 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 Pingo Doce 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 Pingo Doce API use?▾
Pingo Doce actions currently cost 1-3 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.
Can I call Pingo Doce from an AI assistant or MCP client?▾
Yes. Connect ReefAPI once through MCP and your assistant can call pingodoce actions with the same key, credit pool and JSON envelope used by normal REST requests.
325 E-commerce & Marketplaces APIs on the same key
One key, one credit pool, one response envelope. If you are pulling Pingo Doce, 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 597 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-11-03.