RU

Тема

Цвет акцента

Тема и цвет сохранятся на satelit.md и в приложении.

Панель Выбрать тариф

Рынок объявлений

Откуда эти данные, прямо

Категории

GET/v1/market/categories

Каждая категория объявлений за последний день: сколько объявлений продаётся, у скольких есть цена и медиана запрашиваемой цены в леях. Только агрегированные цифры: ни объявления, ни продавца, ни контакта. Стоит 2 кредита.

Кредиты
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 строк.

Кредиты
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 дней.

Кредиты
3 за каждые начатые 30 дн.
С ключом

Параметры

  • categoryintegerнеобязательныйпо умолчанию 0

    Id подкатегории или 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 строк.

Кредиты
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 кредита.

Кредиты
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)"
  }
}