API экспорта базы объявлений

Программный доступ к нашей базе недвижимости в форматах JSON, CSV и Excel.

Войти и получить токен

Все системы работают

Аптайм за 30 дней: 99.99% · без перезапуска: 1 ч. 55 мин.

99.99%
API База данных

Публичный эндпоинт мониторинга: GET /api/v1/status

1. Авторизация

Все запросы требуют персональный API-токен. Создайте его в личном кабинете → раздел «API доступ». Токен показывается один раз при создании — сохраните его в надёжном месте.

Передавайте токен одним из способов:

  • Заголовок Authorization: Bearer <ваш_токен> (рекомендуется)
  • Заголовок X-API-Key: <ваш_токен>
  • Параметр запроса ?token=<ваш_токен>

Базовый адрес API: http://95.142.38.135

2. Эндпоинты

GET /api/v1/status

Публичный статус API и аптайм сервиса. Авторизация не требуется.

GET /api/v1/me

Проверка токена. Возвращает данные владельца токена.

GET /api/v1/listings

Постраничный список объявлений в формате JSON с применением фильтров.

  • page — номер страницы (по умолчанию 1)
  • limit — объявлений на странице, 1–1000 (по умолчанию 100)
GET /api/v1/listings/export

Выгрузка всей отфильтрованной выборки одним файлом (до 5000 объявлений).

  • formatcsv (по умолчанию) или 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)

ЗначениеПлощадка
1avito.ru
3realty.yandex.ru
4cian.ru
5sob.ru
6youla.io
10moyareklama.ru
11domclick.ru

Подтипы (object_category_id) — зависят от выбранной категории

category_idobject_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)

ПолеОписание
idID объявления в нашей базе
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 ВАШ_ТОКЕН" \
  "http://95.142.38.135/api/v1/listings?type_id=1&city=Москва&price_to=10000000&limit=50"

cURL — выгрузка CSV

curl -H "Authorization: Bearer ВАШ_ТОКЕН" \
  "http://95.142.38.135/api/v1/listings/export?format=csv&type_id=1&city=Москва" \
  -o listings.csv

cURL — выгрузка Excel

curl -H "Authorization: Bearer ВАШ_ТОКЕН" \
  "http://95.142.38.135/api/v1/listings/export?format=xlsx" \
  -o listings.xlsx

Python

import requests

TOKEN = "ВАШ_ТОКЕН"
headers = {"Authorization": f"Bearer {TOKEN}"}

# Постранично JSON
resp = requests.get(
    "http://95.142.38.135/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(
    "http://95.142.38.135/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 = 'http://95.142.38.135';

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": "http://95.142.38.135/listing/12345-...",
      "url": "https://..."
    }
  ]
}

6. Ограничения и ошибки

  • limit для JSON — максимум 1000 объявлений на страницу.
  • Выгрузка файлом — максимум 5000 объявлений за запрос.
  • 401 — токен не передан или недействителен.
  • 400 — неверные параметры (например, неизвестный format).