API экспорта базы объявлений
Программный доступ к нашей базе недвижимости в форматах JSON, CSV и Excel.
Все системы работают
Публичный эндпоинт мониторинга: GET /api/v1/status
1. Авторизация
Все запросы требуют персональный API-токен. Создайте его в личном кабинете → раздел «API доступ». Токен показывается один раз при создании — сохраните его в надёжном месте.
Передавайте токен одним из способов:
- Заголовок
Authorization: Bearer <ваш_токен>(рекомендуется) - Заголовок
X-API-Key: <ваш_токен> - Параметр запроса
?token=<ваш_токен>
Базовый адрес API: https://xn----7sbhhdbjpbam7aecwwmpt.xn--p1ai
2. Эндпоинты
/api/v1/status
Публичный статус API и аптайм сервиса. Авторизация не требуется.
/api/v1/me
Проверка токена. Возвращает данные владельца токена.
/api/v1/listings
Постраничный список объявлений в формате JSON с применением фильтров.
page— номер страницы (по умолчанию 1)limit— объявлений на странице, 1–1000 (по умолчанию 100)
/api/v1/listings/export
Выгрузка всей отфильтрованной выборки одним файлом (до 5000 объявлений).
format—csv(по умолчанию) илиxlsx
3. Параметры фильтрации
Применимы к /api/v1/listings и /api/v1/listings/export.
Все параметры необязательны и комбинируются логическим «И» (каждый сужает выборку).
Незаполненные и неизвестные значения игнорируются.
| Параметр | Тип | Описание | Пример |
|---|---|---|---|
type_id | число | Тип сделки. См. справочник «Тип сделки» ниже. | 1 |
category_id | число | Категория недвижимости (квартиры, дома, участки и т.д.). См. справочник «Категории». | 2 |
object_category_id | число | Подтип внутри категории (например, число комнат для квартир). Зависит от category_id — см. справочник «Подтипы». | 3 |
object_type | строка | Вид объекта для продажи квартир: Вторичка или Новостройка. | Вторичка |
region | строка | Название региона. Ищется по справочнику (точное, затем частичное совпадение). | Москва |
city | строка | Название города. Если задан без region — ищется по всем регионам. | Балашиха |
district | строка | Район или округ. Можно несколько через запятую. Совпадение по адресу/метро. | Центральный,Ленинский |
metro | строка | Станции метро. Можно несколько через запятую. Частичное совпадение. | Арбатская |
source_id | число | Источник объявления (площадка). См. справочник «Источники». | 1 |
person_type | число | Тип автора объявления. См. справочник «Автор». | 1 |
rent_period | строка | Период аренды (только для аренды): На длительный срок или Посуточно. | На длительный срок |
price_from, price_to | число | Диапазон цены в рублях (включительно). | 5000000 |
area_from, area_to | число | Диапазон общей площади, м². | 40 |
floor_from, floor_to | число | Диапазон этажа объекта. | 2 |
floors_from, floors_to | число | Диапазон этажности дома (всего этажей в здании). | 9 |
q | строка | Текстовый поиск по заголовку объявления. | квартира |
Справочники значений
Тип сделки (type_id)
| Значение | Описание |
|---|---|
1 | Продажа |
2 | Аренда |
3 | Куплю |
4 | Сниму |
Автор (person_type)
| Значение | Описание |
|---|---|
1 | Частные лица |
2 | Агентства |
3 | Собственники |
Категории (category_id)
| Значение | Описание |
|---|---|
2 | Квартиры |
3 | Комнаты |
4 | Дома, дачи, коттеджи |
5 | Земельные участки |
6 | Гаражи и машиноместа |
7 | Коммерческая недвижимость |
8 | Недвижимость за рубежом |
Источники (source_id)
| Значение | Площадка |
|---|---|
1 | avito.ru |
3 | realty.yandex.ru |
4 | cian.ru |
5 | sob.ru |
6 | youla.io |
10 | moyareklama.ru |
11 | domclick.ru |
Подтипы (object_category_id) — зависят от выбранной категории
| category_id | object_category_id → значение |
|---|---|
| 2 — Квартиры | 1 Студия, 2 1-к, 3 2-к, 4 3-к, 5 4-к, 6 5-к, 7 6-к, 8 7-к, 9 8-к, 10 9-к |
| 3 — Комнаты | 11 Комната |
| 4 — Дома, дачи, коттеджи | 12 Дом, 13 Дача, 14 Коттедж, 15 Таунхаус |
| 5 — Земельные участки | 16 Земельный участок, 17 Поселений (ИЖС), 18 Сельхозназначения (СНТ, ДНП), 19 Промназначения |
| 6 — Гаражи и машиноместа | 20 Гараж, 21 Машиноместо |
| 7 — Коммерческая | 22 Гостиница, 23 Офисное, 24 Свободного назначения, 25 Производственное, 26 Складское, 27 Торговое, 28 Коммерческая земля |
| 8 — За рубежом | 29 Квартира/апартаменты, 30 Дом/вилла, 31 Земельный участок, 32 Гараж/машиноместо, 33 Коммерческая |
4. Поля объявления (JSON)
| Поле | Описание |
|---|---|
id | ID объявления в нашей базе |
title | Заголовок |
description | Описание |
price | Цена (число) |
price_per_sqm | Цена за м² |
rooms, area, floor | Комнаты, площадь, этаж |
region, city, metro, address | География |
phone | Телефон (если доступен) |
source | Источник |
deal_type, category, person_type | Тип сделки, категория, автор |
url | Ссылка на источник |
internal_url | Ссылка на карточку на нашем сайте |
updated, created | Даты |
lat, lng, images | Координаты и фото |
5. Примеры
cURL — JSON
curl -H "Authorization: Bearer ВАШ_ТОКЕН" \
"https://xn----7sbhhdbjpbam7aecwwmpt.xn--p1ai/api/v1/listings?type_id=1&city=Москва&price_to=10000000&limit=50"
cURL — выгрузка CSV
curl -H "Authorization: Bearer ВАШ_ТОКЕН" \
"https://xn----7sbhhdbjpbam7aecwwmpt.xn--p1ai/api/v1/listings/export?format=csv&type_id=1&city=Москва" \
-o listings.csv
cURL — выгрузка Excel
curl -H "Authorization: Bearer ВАШ_ТОКЕН" \
"https://xn----7sbhhdbjpbam7aecwwmpt.xn--p1ai/api/v1/listings/export?format=xlsx" \
-o listings.xlsx
Python
import requests
TOKEN = "ВАШ_ТОКЕН"
headers = {"Authorization": f"Bearer {TOKEN}"}
# Постранично JSON
resp = requests.get(
"https://xn----7sbhhdbjpbam7aecwwmpt.xn--p1ai/api/v1/listings",
headers=headers,
params={"type_id": 1, "city": "Москва", "limit": 100, "page": 1},
)
data = resp.json()
print(data["count"], "объявлений")
for item in data["items"]:
print(item["id"], item["title"], item["price"])
# Выгрузка CSV в файл
csv_resp = requests.get(
"https://xn----7sbhhdbjpbam7aecwwmpt.xn--p1ai/api/v1/listings/export",
headers=headers,
params={"format": "csv", "type_id": 1},
)
with open("listings.csv", "wb") as f:
f.write(csv_resp.content)
PHP
<?php
$token = 'ВАШ_ТОКЕН';
$base = 'https://xn----7sbhhdbjpbam7aecwwmpt.xn--p1ai';
function apiRequest(string $url, string $token): string
{
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ["Authorization: Bearer {$token}"],
]);
$response = curl_exec($ch);
if ($response === false) {
throw new RuntimeException(curl_error($ch));
}
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($status >= 400) {
throw new RuntimeException("HTTP {$status}: {$response}");
}
return $response;
}
// Постранично JSON
$listingsUrl = $base . '/api/v1/listings?' . http_build_query([
'type_id' => 1,
'city' => 'Москва',
'limit' => 100,
'page' => 1,
]);
$data = json_decode(apiRequest($listingsUrl, $token), true);
echo $data['count'] . " объявлений\n";
foreach ($data['items'] as $item) {
echo $item['id'] . ' ' . $item['title'] . ' ' . $item['price'] . "\n";
}
// Выгрузка CSV в файл
$exportUrl = $base . '/api/v1/listings/export?' . http_build_query([
'format' => 'csv',
'type_id' => 1,
]);
file_put_contents('listings.csv', apiRequest($exportUrl, $token));
Пример ответа JSON
{
"count": 1240,
"page": 1,
"limit": 100,
"pages": 13,
"items": [
{
"id": 12345,
"title": "2-комнатная квартира, 54 м²",
"price": 8500000,
"city": "Нижний Новгород",
"internal_url": "https://xn----7sbhhdbjpbam7aecwwmpt.xn--p1ai/listing/12345-...",
"url": "https://..."
}
]
}
6. Ограничения и ошибки
limitдля JSON — максимум 1000 объявлений на страницу.- Выгрузка файлом — максимум 5000 объявлений за запрос.
401— токен не передан или недействителен.400— неверные параметры (например, неизвестныйformat).