Цены в магазинах
Магазины
GET/v1/prices/stores
Магазины в API с числом товаров и датой последнего считывания.
Параметры
Без параметров.
Возможные ошибки
curl "https://api.satelit.md/v1/prices/stores" \
-H "Authorization: Bearer $SATELIT_KEY" const res = await fetch("https://api.satelit.md/v1/prices/stores", {
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/stores",
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/stores");
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": [
{
"key": "george",
"name": "George Standard",
"domain": "ggg.md",
"kind": "grocery",
"products": 96,
"updated_at": "2026-11-03"
},
{
"key": "kaufland",
"name": "Kaufland",
"domain": "kaufland.md",
"kind": "grocery",
"products": 27,
"updated_at": "2026-11-03"
}
],
"meta": {
"credits": 1,
"updated_at": "2026-11-02T13:05:00+02:00",
"sources": [
{
"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"
},
{
"name": "Kaufland",
"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)"
}
}Поиск товара
GET/v1/prices/search
Поиск товаров по названию. Стоит 3 кредита за 20 строк. Останавливается на странице 5.
Параметры
-
qstringобязательныйОт 2 до 100 символов.
-
categorystringнеобязательныйКлюч категории, из /v1/news/categories.
-
storestringнеобязательныйКлюч магазина, из /v1/prices/stores.
-
in_stockbooleanнеобязательный1, чтобы получать только то, что есть в наличии.
-
pageintegerнеобязательныйпо умолчанию 1Страница, от 1 до 5.
Возможные ошибки
curl "https://api.satelit.md/v1/prices/search?q=Gri%C8%99%2C%20arpaca%C8%99%20%C8%99i%20alte%20crupe" \
-H "Authorization: Bearer $SATELIT_KEY" const res = await fetch("https://api.satelit.md/v1/prices/search?q=Gri%C8%99%2C%20arpaca%C8%99%20%C8%99i%20alte%20crupe", {
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/search?q=Gri%C8%99%2C%20arpaca%C8%99%20%C8%99i%20alte%20crupe",
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/search?q=Gri%C8%99%2C%20arpaca%C8%99%20%C8%99i%20alte%20crupe");
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": 18342,
"slug": "bunica-arpacas-de-grau-900g",
"name": "bunica Arpacaș de grâu 900 g",
"brand": "Arpacaș",
"capacity": "900 g",
"category": "groceries",
"min_price": 5.95,
"median_price": 5.95,
"unit_min_price": 6.61,
"price_unit": "kg",
"stores": 1,
"in_stock_stores": 1,
"updated_at": "2026-11-03T00:31:34+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"
}
],
"attribution": "Date: Satelit (satelit.md)",
"page": {
"page": 1,
"per": 20,
"total": 1,
"pages": 1
}
}
}Группы товаров
GET/v1/prices/groups
Общие товары каталога, такие как молоко или хлеб, с самой низкой ценой и медианой.
Параметры
-
categorystringнеобязательныйКлюч категории, из /v1/news/categories.
Возможные ошибки
curl "https://api.satelit.md/v1/prices/groups" \
-H "Authorization: Bearer $SATELIT_KEY" const res = await fetch("https://api.satelit.md/v1/prices/groups", {
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",
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");
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
}
],
"meta": {
"credits": 2,
"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": "Carmez",
"license": "none: read from the shop's public pages; no agreement with the shop and no licence over its data is granted"
},
{
"name": "MegaAlina",
"license": "none: read from the shop's public pages; no agreement with the shop and no licence over its data is granted"
},
{
"name": "PandaShop",
"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)"
}
}Группа с предложениями
GET/v1/prices/groups/{id}
Группа и не более 50 предложений, самое дешёвое первым.
Параметры
-
idstringобязательныйИдентификатор строки.
Возможные ошибки
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)"
}
}Товар с предложениями
GET/v1/prices/items/{id}
Один конкретный товар и его предложения в каждом магазине.
Параметры
-
idintegerобязательныйИдентификатор строки.
Возможные ошибки
curl "https://api.satelit.md/v1/prices/items/18342" \
-H "Authorization: Bearer $SATELIT_KEY" const res = await fetch("https://api.satelit.md/v1/prices/items/18342", {
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/items/18342",
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/items/18342");
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": 18342,
"slug": "bunica-arpacas-de-grau-900g",
"name": "bunica Arpacaș de grâu 900 g",
"brand": "Arpacaș",
"capacity": "900 g",
"category": "groceries",
"min_price": 5.95,
"median_price": 5.95,
"unit_min_price": 6.61,
"price_unit": "kg",
"stores": 1,
"in_stock_stores": 1,
"updated_at": "2026-11-03T00:31:34+02:00",
"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"
}
]
},
"meta": {
"credits": 2,
"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"
}
],
"attribution": "Date: Satelit (satelit.md)"
}
}История товара
GET/v1/prices/items/{id}/history
Цены по дням и по магазинам. Стоит 5 кредитов за каждые начатые 30 дней.
Параметры
-
idintegerобязательныйИдентификатор строки.
-
daysintegerнеобязательныйпо умолчанию 30Сколько дней назад. Обрезается по лимиту плана.
-
storestringнеобязательныйКлюч магазина, из /v1/prices/stores.
Возможные ошибки
curl "https://api.satelit.md/v1/prices/items/18342/history?days=30" \
-H "Authorization: Bearer $SATELIT_KEY" const res = await fetch("https://api.satelit.md/v1/prices/items/18342/history?days=30", {
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/items/18342/history?days=30",
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/items/18342/history?days=30");
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": {
"points": [
{
"date": "2026-11-02",
"store": "kaufland",
"price": 5.95,
"old_price": null,
"unit_price": 6.61,
"in_stock": true
},
{
"date": "2026-11-03",
"store": "kaufland",
"price": 5.95,
"old_price": null,
"unit_price": 6.61,
"in_stock": true
}
]
},
"meta": {
"credits": 5,
"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"
}
],
"attribution": "Date: Satelit (satelit.md)"
}
}