A product's price, in every shop.
Online shops in the API: 90. Offers: 1,401,871. You search for a product and get its offers, cheapest first, with history since 28 October 2026.
Numbers as of 6 November 2026
- Semolina, barley and other grains6.61 lei/kgKaufland
- Bologna30.00 lei/kgCarmez
- Salami37.00 lei/kgCarmez
- Soap20.99 lei/kgMegaAlina
- Shampoo38.85 lei/lMegaAlina
- Toilet paper3.83 lei/pcPandaShop
- Laundry detergent17.00 lei/kgPandaShop
- Cat food29.00 lei/kgPandaShop
Where the prices come from, plainly
- We read public pages. Prices are read from each shop's public pages.
- We have no agreement with the shops. No shop is a partner, an official source or a supporter of this API.
- We grant no licence over the shops' data. We cannot give rights we do not have. Responsibility for how you use this data is yours.
- No photos and no logos. Responses contain only names, prices and links. The shops' photos and logos are not in the API.
- A shop can opt out. A shop that does not want to appear writes to abuse@satelit.md. Once we switch it off, it disappears from all responses within 10 seconds.
What it contains
- Products and groups: milk in general or a specific milk, with brand and weight.
- Offers: the shop, the price, the old price, the discount, the price per unit, the stock and the link.
- The lowest price, the median and the number of shops that carry it.
- Each product's history, by day and by shop, since 28 October 2026.
Who uses it
- Online shops that compare their prices.
- Shopping and budget apps.
- Journalists and analysts who track price rises.
How often it changes
Shops are read in turn, all the time. Each offer has a last_seen field. The API returns only offers seen in the last 14 days.
Source and licence
Each shop's public pages. Shop names are in meta.sources, in every response.
What the API does not do
- It does not query the shops at the moment of the call. It answers from our database.
- It does not give a shop's full list. Search stops at page 5. The bulk export is
/v1/export/prices, on the Enterprise plan. - It does not return suspect prices. Prices flagged as wrong do not reach the responses.
What it costs
/v1/prices/stores1per call/v1/prices/search3for every 20 rows/v1/prices/groups2per call/v1/prices/groups/{id}3per call/v1/prices/items/{id}2per call/v1/prices/items/{id}/history5for every 30 days, rounded up
curl "https://api.satelit.md/v1/prices/groups/crupe" \
-H "Authorization: Bearer $SATELIT_KEY" const res = await fetch("https://api.satelit.md/v1/prices/groups/crupe", {
headers: { Authorization: `Bearer ${process.env.SATELIT_KEY}` },
});
const { data, meta } = await res.json();
console.log(data, meta.credits); import json, os, urllib.request
req = urllib.request.Request(
"https://api.satelit.md/v1/prices/groups/crupe",
headers={"Authorization": f"Bearer {os.environ['SATELIT_KEY']}"},
)
with urllib.request.urlopen(req) as res:
body = json.load(res)
print(body["data"], body["meta"]["credits"]) <?php
$ch = curl_init("https://api.satelit.md/v1/prices/groups/crupe");
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ["Authorization: Bearer " . getenv("SATELIT_KEY")],
]);
$body = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($body["data"]); {
"data": {
"id": "crupe",
"name": "Griș, arpacaș și alte crupe",
"unit": "kg",
"min_price": 5.95,
"median_price": 12.24,
"unit_min_price": 6.61,
"price_unit": "kg",
"stores": 6,
"offers": [
{
"store": {
"key": "kaufland",
"name": "Kaufland"
},
"title": "De la bunica Arpacaș de grâu 900 g",
"price": 5.95,
"old_price": 6.75,
"discount_pct": 12,
"unit_price": 6.61,
"unit": "kg",
"in_stock": true,
"url": "https://www.kaufland.md/ro/cautare.html?q=20680825",
"last_seen": "2026-11-03T00:31:34+02:00"
},
{
"store": {
"key": "george",
"name": "George Standard"
},
"title": "QUINOA biologica GAROFALO 5303, 300g",
"price": 59,
"old_price": null,
"discount_pct": null,
"unit_price": 196.67,
"unit": "kg",
"in_stock": true,
"url": "https://ggg.md/ro/shop/quinoa-biologica-garofalo-5303-300g",
"last_seen": "2026-11-03T00:35:05+02:00"
}
]
},
"meta": {
"credits": 3,
"updated_at": "2026-11-02T13:05:00+02:00",
"sources": [
{
"name": "Kaufland",
"license": "none: read from the shop's public pages; no agreement with the shop and no licence over its data is granted"
},
{
"name": "George Standard",
"license": "none: read from the shop's public pages; no agreement with the shop and no licence over its data is granted"
}
],
"attribution": "Date: Satelit (satelit.md)"
}
}