Ринок оголошень
Категорії
GET/v1/market/categories
Кожна категорія оголошень за останній день: скільки оголошень продається, скільки мають ціну, і медіана запитуваної ціни в леях. Лише агреговані цифри: ні оголошення, ні продавця, ні контакту. Коштує 2 кредити.
Параметри
Без параметрів.
Можливі помилки
curl "https://api.satelit.md/v1/market/categories" \
-H "Authorization: Bearer $SATELIT_KEY" const res = await fetch("https://api.satelit.md/v1/market/categories", {
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/market/categories",
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/market/categories");
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": [
{
"category": {
"id": 659,
"name": "Автомобілі",
"url": null,
"group": {
"id": 657,
"name": "Транспорт",
"url": null
}
},
"volume": 18450,
"priced": 17230,
"median_mdl": 185000
},
{
"category": {
"id": 1404,
"name": "Квартири",
"url": null,
"group": {
"id": 1399,
"name": "Нерухомість",
"url": null
}
},
"volume": 12900,
"priced": 12010,
"median_mdl": 1650000
},
{
"category": {
"id": 40,
"name": "Телефони",
"url": null,
"group": {
"id": 646,
"name": "Електроніка",
"url": null
}
},
"volume": 9600,
"priced": 9100,
"median_mdl": 9900
}
],
"meta": {
"credits": 2,
"updated_at": "2026-11-02T13:05:00+02:00",
"sources": [
{
"name": "two classifieds sites",
"license": "none: read from the source's public pages; no agreement with the source and no licence over its data is granted"
}
],
"attribution": "Date: Satelit (satelit.md)"
}
}Ціни та обсяг
GET/v1/market/prices
Розподіл цін і обсяг ринку за останній день, з активних оголошень. Без category один рядок на категорію, найбільші першими. З category один рядок по всій країні й по одному на кожне місто з достатньою кількістю оголошень. Ціни в леях; currency показує валюту більшості оголошень. 2 кредити за 50 рядків.
Параметри
-
categoryintegerнеобов'язковийId підкатегорії, з
/v1/market/categories. -
citystringнеобов'язковийМісто, як його пишуть оголошення: Chișinău.
-
pageintegerнеобов'язковийза замовчуванням 1Сторінка, від 1 до 200.
Можливі помилки
curl "https://api.satelit.md/v1/market/prices?category=659" \
-H "Authorization: Bearer $SATELIT_KEY" const res = await fetch("https://api.satelit.md/v1/market/prices?category=659", {
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/market/prices?category=659",
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/market/prices?category=659");
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": [
{
"category": {
"id": 659,
"name": "Автомобілі",
"url": null,
"group": {
"id": 657,
"name": "Транспорт",
"url": null
}
},
"city": null,
"day": "2026-11-04",
"volume": 18450,
"priced": 17230,
"currency": "EUR",
"prices": {
"median": 185000,
"p10": 62000,
"p25": 110000,
"p75": 315000,
"p90": 520000,
"min": 25000,
"max": 1450000
}
},
{
"category": {
"id": 659,
"name": "Автомобілі",
"url": null,
"group": {
"id": 657,
"name": "Транспорт",
"url": null
}
},
"city": "Chișinău",
"day": "2026-11-04",
"volume": 9200,
"priced": 8700,
"currency": "EUR",
"prices": {
"median": 195000,
"p10": 70000,
"p25": 120000,
"p75": 330000,
"p90": 540000,
"min": 28000,
"max": 1450000
}
},
{
"category": {
"id": 659,
"name": "Автомобілі",
"url": null,
"group": {
"id": 657,
"name": "Транспорт",
"url": null
}
},
"city": "Bălți",
"day": "2026-11-04",
"volume": 2100,
"priced": 1980,
"currency": "EUR",
"prices": {
"median": 165000,
"p10": 55000,
"p25": 98000,
"p75": 280000,
"p90": 470000,
"min": 22000,
"max": 980000
}
}
],
"meta": {
"credits": 2,
"updated_at": "2026-11-02T13:05:00+02:00",
"sources": [
{
"name": "two classifieds sites",
"license": "none: read from the source's public pages; no agreement with the source and no licence over its data is granted"
}
],
"attribution": "Date: Satelit (satelit.md)",
"page": {
"page": 1,
"per": 50,
"total": 3,
"pages": 1
}
}
}Ринок у часі
GET/v1/market/history
Одна категорія по днях: обсяг ринку, скільки оголошень з'явилося (new) і скільки зникло (removed), і розподіл цін там, де досить оголошень з ціною. За замовчуванням увесь ринок (категорія 0). Місто має обсяг і ціни, без щоденного потоку. Понад історію плану дані обрізаються, і meta.history_cut про це каже. 3 кредити за кожні розпочаті 30 днів.
Параметри
-
categoryintegerнеобов'язковийза замовчуванням 0Id підкатегорії або 0 для всього ринку.
-
citystringнеобов'язковийМісто, як його пишуть оголошення.
-
daysintegerнеобов'язковийза замовчуванням 90Скільки днів назад. Обрізається до ліміту плану.
Можливі помилки
curl "https://api.satelit.md/v1/market/history?category=659&days=90" \
-H "Authorization: Bearer $SATELIT_KEY" const res = await fetch("https://api.satelit.md/v1/market/history?category=659&days=90", {
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/market/history?category=659&days=90",
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/market/history?category=659&days=90");
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": {
"category": {
"id": 659,
"name": "Автомобілі",
"url": null,
"group": {
"id": 657,
"name": "Транспорт",
"url": null
}
},
"city": null,
"points": [
{
"date": "2026-10-29",
"volume": 18100,
"new": 610,
"removed": 540,
"priced": 17014,
"prices": {
"median": 182000,
"p10": 62000,
"p25": 110000,
"p75": 315000,
"p90": 520000,
"min": 25000,
"max": 1450000
}
},
{
"date": "2026-10-30",
"volume": 18220,
"new": 590,
"removed": 560,
"priced": 17127,
"prices": {
"median": 183000,
"p10": 62000,
"p25": 110000,
"p75": 315000,
"p90": 520000,
"min": 25000,
"max": 1450000
}
},
{
"date": "2026-10-31",
"volume": 18260,
"new": 640,
"removed": 600,
"priced": 17164,
"prices": {
"median": 184000,
"p10": 62000,
"p25": 110000,
"p75": 315000,
"p90": 520000,
"min": 25000,
"max": 1450000
}
},
{
"date": "2026-11-01",
"volume": 18340,
"new": 700,
"removed": 620,
"priced": 17240,
"prices": {
"median": 184500,
"p10": 62000,
"p25": 110000,
"p75": 315000,
"p90": 520000,
"min": 25000,
"max": 1450000
}
},
{
"date": "2026-11-02",
"volume": 18390,
"new": 560,
"removed": 520,
"priced": 17287,
"prices": {
"median": 185000,
"p10": 62000,
"p25": 110000,
"p75": 315000,
"p90": 520000,
"min": 25000,
"max": 1450000
}
},
{
"date": "2026-11-03",
"volume": 18420,
"new": 620,
"removed": 560,
"priced": 17315,
"prices": {
"median": 185000,
"p10": 62000,
"p25": 110000,
"p75": 315000,
"p90": 520000,
"min": 25000,
"max": 1450000
}
},
{
"date": "2026-11-04",
"volume": 18450,
"new": 640,
"removed": 580,
"priced": 17343,
"prices": {
"median": 185000,
"p10": 62000,
"p25": 110000,
"p75": 315000,
"p90": 520000,
"min": 25000,
"max": 1450000
}
}
]
},
"meta": {
"credits": 3,
"updated_at": "2026-11-02T13:05:00+02:00",
"sources": [
{
"name": "two classifieds sites",
"license": "none: read from the source's public pages; no agreement with the source and no licence over its data is granted"
}
],
"attribution": "Date: Satelit (satelit.md)"
}
}Продавці
GET/v1/market/sellers
Продавці з повторюваними оголошеннями, найактивніші першими, по 50 на сторінці. З category рейтинг усередині неї, з активними оголошеннями й медіаною ціни там. З new=true лише нові на сайті продавці. Продавець позначений анонімним кодом, який об'єднує оголошення одного продавця й нікого не називає: ні телефону, ні e-mail, ні контакту. tenure_days, new, sold і sold_recent з'являються, лише коли ці поля ввімкнені. Продавці лише з одного сайту оголошень. 3 кредити за 50 рядків.
Параметри
-
categoryintegerнеобов'язковийId підкатегорії для рейтингу, з
/v1/market/categories. -
newbooleanнеобов'язковийЛише нові на сайті продавці.
-
pageintegerнеобов'язковийза замовчуванням 1Сторінка, від 1 до 200.
Можливі помилки
curl "https://api.satelit.md/v1/market/sellers?category=659" \
-H "Authorization: Bearer $SATELIT_KEY" const res = await fetch("https://api.satelit.md/v1/market/sellers?category=659", {
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/market/sellers?category=659",
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/market/sellers?category=659");
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": "3f9a1c7e2b4d",
"source": "m999",
"active": 42,
"total": 120,
"categories": 2,
"top_category": {
"id": 659,
"name": "Автомобілі",
"url": null,
"group": {
"id": 657,
"name": "Транспорт",
"url": null
}
},
"activity": "high",
"first_seen": "2026-03-01T09:00:00+02:00",
"last_active": "2026-11-02T13:05:00+02:00",
"tenure_days": 248,
"new": false,
"sold": 78,
"sold_recent": 12,
"in_category": {
"active": 38,
"total": 95,
"median_mdl": 210000
}
},
{
"id": "a1b2c3d4e5f6",
"source": "m999",
"active": 17,
"total": 40,
"categories": 1,
"top_category": {
"id": 659,
"name": "Автомобілі",
"url": null,
"group": {
"id": 657,
"name": "Транспорт",
"url": null
}
},
"activity": "regular",
"first_seen": "2026-06-10T12:00:00+02:00",
"last_active": "2026-11-02T13:05:00+02:00",
"tenure_days": 147,
"new": false,
"sold": 23,
"sold_recent": 5,
"in_category": {
"active": 17,
"total": 40,
"median_mdl": 150000
}
},
{
"id": "9988776655aa",
"source": "m999",
"active": 6,
"total": 9,
"categories": 1,
"top_category": {
"id": 659,
"name": "Автомобілі",
"url": null,
"group": {
"id": 657,
"name": "Транспорт",
"url": null
}
},
"activity": "regular",
"first_seen": "2026-10-20T08:00:00+02:00",
"last_active": "2026-11-02T13:05:00+02:00",
"tenure_days": 15,
"new": true,
"sold": 3,
"sold_recent": 3,
"in_category": {
"active": 6,
"total": 9,
"median_mdl": 120000
}
}
],
"meta": {
"credits": 3,
"updated_at": "2026-11-02T13:05:00+02:00",
"sources": [
{
"name": "one classifieds site",
"license": "none: read from the source's public pages; no agreement with the source and no licence over its data is granted"
}
],
"attribution": "Date: Satelit (satelit.md)",
"page": {
"page": 1,
"per": 50,
"total": 1200,
"pages": 24
}
}
}Один продавець
GET/v1/market/sellers/{id}
Продавець за його анонімним кодом: категорії, у яких він продає, скільки оголошень активні й усього, і медіана запитуваної ціни за категоріями. Лише цифри, без контактів. Коштує 2 кредити.
Параметри
-
idstringобов'язковийАнонімний код продавця, з
/v1/market/sellers.
Можливі помилки
curl "https://api.satelit.md/v1/market/sellers/3f9a1c7e2b4d" \
-H "Authorization: Bearer $SATELIT_KEY" const res = await fetch("https://api.satelit.md/v1/market/sellers/3f9a1c7e2b4d", {
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/market/sellers/3f9a1c7e2b4d",
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/market/sellers/3f9a1c7e2b4d");
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": "3f9a1c7e2b4d",
"source": "m999",
"active": 42,
"total": 120,
"categories": 2,
"top_category": {
"id": 659,
"name": "Автомобілі",
"url": null,
"group": {
"id": 657,
"name": "Транспорт",
"url": null
}
},
"activity": "high",
"first_seen": "2026-03-01T09:00:00+02:00",
"last_active": "2026-11-02T13:05:00+02:00",
"tenure_days": 248,
"new": false,
"sold": 78,
"sold_recent": 12,
"in_category": {
"active": 38,
"total": 95,
"median_mdl": 210000
},
"category_breakdown": [
{
"category": {
"id": 659,
"name": "Автомобілі",
"url": null,
"group": {
"id": 657,
"name": "Транспорт",
"url": null
}
},
"active": 38,
"total": 95,
"median_mdl": 210000,
"last_active": "2026-11-02T13:05:00+02:00"
},
{
"category": {
"id": 40,
"name": "Телефони",
"url": null,
"group": {
"id": 646,
"name": "Електроніка",
"url": null
}
},
"active": 4,
"total": 25,
"median_mdl": 12000,
"last_active": "2026-11-02T13:05:00+02:00"
}
]
},
"meta": {
"credits": 2,
"updated_at": "2026-11-02T13:05:00+02:00",
"sources": [
{
"name": "one classifieds site",
"license": "none: read from the source's public pages; no agreement with the source and no licence over its data is granted"
}
],
"attribution": "Date: Satelit (satelit.md)"
}
}