API базы собственников

У нас простое API, которое обеспечивает надежную возможность загрузки и обновления базы собственников из Bazis CRM в любое Ваше программное обеспечение.

Загрузка новых объявлений

Метод: POST

URL для отправки запроса:

https://baziscrm.ru/api/parser/get_new/

Что вернет успешный запрос?

Успешный запрос вернет XML-фид, в котором будут новые объявления согласно условиям. Если новых объявлений нет — фид будет пустой.

Какой принцип?

Мы выбрали самый простой и надежный алгоритм передачи данных в Вашу базу. Важно понять его принцип, чтобы правильно написать обработчик на стороне Вашего ПО.

Опишем принцип:

При каждом успешном запросе API возвращает порцию актуальных на текущий момент объявлений в формате XML. Максимально за один запрос возвращается 25 объявлений. На своей стороне получив порцию объявлений Вы сохраняете их в свою базу.

У каждого объявления есть уникальный ID, который представлен в теге <id>. Обязательно сохраняйте значение этого тега в свою базу. При повторных запросах в параметре запроса NEXT_ID передавайте ID c самым большим значением среди всех уже загруженных в Вашу базу объектов. Таким образом каждый последующий запрос возвращает следующую более новую порцию объявлений.

Если при повторных запросах не передавать параметр NEXT_ID Вы будете получать 25 объявлений с самыми минимальными значениями ID в базе. Это неправильно. Указывая параметр запроса NEXT_ID Вы говорите API — верни мне теперь следующую порцию объявлений, у которых ID больше значения NEXT_ID.

Для надежности перед сохранением объявления в своей базе обязательно проверяйте не было ли уже загружено объявление. Это можно делать также по тегу <id>.

Запускать свой обработчик можете по заданию в CRON, достаточным будет запускать обработчик каждые 5 минут.

Что отправлять?

Параметр Тип Обязат. Описание
CLIENT_ID Целое число Да Ваш идентификатор.
PASS Строка Да Ваш пароль доступа.
NEXT_ID Целое число Да Передаете ID последнего загруженного объявления (из тега <id> — это уникальное ID объявления в базе). При передаче этого параметра API вернет следующую порцию объявлений с большим ID.
TYPE_OBJECTS Массив строковых значений. Нет

Типы недвижимости.

Если необходимы объявления с определенными типами недвижимости (напр. Квартиры в продажу, Офисы в аренду, Земельные уч. в продажу...), то в данном параметре их можно перечислить. Если необходимы любые (все) типы недвижимости, то данный параметр передавать не нужно.

Что необходимо передавать в случае, когда нужны только определенные типы недвижимости:


В продажу

Квартиры — sale_flat
Дома — sale_house
Дачи — sale_dacha
Таунхаусы — sale_townhouse
Земельные уч. — sale_land
Офисы — sale_office
ПСН — sale_free
Производства — sale_production
Склады — sale_warehouse
Торговые помещ. — sale_trade

В аренду

Квартиры — rent_flat
Дома — rent_house
Дачи — rent_dacha
Таунхаусы — rent_townhouse
Земельные уч. — rent_land
Офисы — rent_office
ПСН — rent_free
Производства — rent_production
Склады — rent_warehouse
Торговые помещ. — rent_trade
TYPE_CONTACT Строка Нет

Типы контактов.

Если необходимы объявления только от собственников, то в данном параметре необходимо передать значение — sob. Если необходимы объявления только от агентов, то в данном параметре необходимо передать значение — agent. Если необходимы объявления и от собственников, и от агентов, то данный параметр не нужно передавать вообще.

Какие возможны ошибки?

API вернет ошибку в формате JSON если в запросе были переданы неверные данные авторизации или закончился срок подписки на базу.

Если переданы неверные CLIENT_ID или PASS:

{ "Status": "Error",
"Code": "401",
"Description": "Request authorization error." }

Если срок подписки истек:

{ "Status": "Error",
"Code": "402",
"Description": "Paid subscription period has expired." }

Пример запроса на PHP (CURL)


Поставьте запуск
данного
обработчика в CRON
на каждые 5 минут.
Это оптимальная
периодичность.

/*
1. Получаете из таблицы своей базы
самое большое значение,
записанное из тега <id>,
для того чтобы подставить это значение
в параметр NEXT_ID текущего запроса.
Это нужно чтобы запрос
вернул следующие незагруженные объявления,
если они есть.
*/

/*
Получение
значения
для NEXT_ID
*/

$next_id = /*
           Сюда должно быть записано
           значение для подстановки
           в NEXT_ID
           */


/*
2. Отправляете запрос по адресу:
https://baziscrm.ru/api/parser/get_new/
чтобы получить следующую порцию новых объявлений, если они есть.
Если на текущий момент все объявления загружены
(нет новых для Вас объявлений),
то запрос вернет пустой XML.
*/

$curl = curl_init();

curl_setopt_array($curl, array(
   CURLOPT_URL => "https://baziscrm.ru/api/parser/get_new/",
   CURLOPT_RETURNTRANSFER => true,
   CURLOPT_TIMEOUT => 30,
   CURLOPT_POST => true,
   CURLOPT_POSTFIELDS => http_build_query(array(
      "CLIENT_ID" => "", // Вписать значение CLIENT_ID (Это логин)
      "PASS" => "", // Вписать значение PASS (Это пароль)
      "NEXT_ID" => $next_id,
      "TYPE_OBJECTS" => array(), // Необходимые типы объектов
      "TYPE_CONTACT" => "", // sob
                             // или agent
                             // или вообще не передавать,
                             // если необходимо все.
   ))
));

$response = curl_exec($curl);
$error = curl_error($curl);

curl_close($curl);

if($error){
   echo "cURL Error #:" . $error;
}else{
   echo $response;
}

/*
3. Обрабатываете и записываете
полученные объявления
в свою базу.

Перед записью объявления
желательно делать проверку,
было ли уже записано данное объявление
или нет?
Это можно делать по уникальному ID,
которое передается в теге <id>.
*/

Что приходит в фиде?

Тег Описание
<id>

Уникальный ID объявления в нашей базе.

Обязательно сохраняйте значение данного тега в своей базе. По данному ID можно в дальнейшем проверять актуальность объявления и данный ID участвует в определении следующих порций объявлений (параметр запроса NEXT_ID).
<date_create>
Дата и время добавления объявления в нашу базу.
<date_actual>
Дата проверки актуальности объявления на источнике.
<source>

Источник объявления.

avito — avito.ru
cian — cian.ru
yandex — yandex.ru
youla — youla.ru
domclick — domclick.ru
<source_url> Ссылка на объявление на источнике.
<deal>

Вид сделки.

sale — В продажу
rent — В аренду
<type>

Тип недвижимости.

flat — Квартира
house — Дом
dacha — Дача
townhouse — Таунхаус
office — Офис
trade — Торговая площадь
food — Общепит
carservice — Автосервис
hotel — Гостиница, отель
production — Производство
warehouse — Склад
free — ПСН
building — Здание
land — Земельный участок
<location> Адрес объекта.
<lat> Широта (геокоордината).
<lng> Долгота (геокоордината).
<rooms>

Кол-во комнат.

studio — Студия
1 — 1 комн.
2 — 2 комн.
3 — 3 комн.
4 — 4 комн.
5 — 5 комн.
<total_area> Общая площадь в м2.
<residential_area> Жилая площадь в м2 (для жилых помещений).
<kitchen_area> Площадь кухни в м2 (для жилых помещений).
<area_of_land> Площадь зем. участка в сотках.
<landstatus>

Статус земельного участка.

ijs — ИЖС
sntdnp — СНТ, ДНП
prom — Промназначение
<floor> Этаж
<storey> Этажность.
<cost> Цена в руб.
<description> Описание объекта.
<more_photo>
   <item>
Фотографии.
<type_contact>

Тип контакта.

sob — Собственник
agent — Агент
<us_phone> Номер телефона.
<accessphone> y — Подменный номер телефона.

Проверка актуальности загруженных объявлений

Мы периодически проверяем все объявления на актуальность. Вы можете уточнять актуальность объявлений, которые Вы загрузили через наше API.

Это достаточно просто сделать, отправив GET-запрос по указанному ниже адресу. В ответе Вы получите JSON массив с ID объектов, которые на данный момент актуальны. На основе получаемых данных Вы можете построить логику удаления неактуальных объектов в своей базе.

GET-запрос

https://baziscrm.ru/api/parser/is_actual/?client_id=#...#&pass=#...#

Ответ

Ответ приходит в формате JSON

Проверяйте ответ

Проверяйте, что получили ответ полностью. Вы получаете массив ID, который по стандарту JSON заключен в квадратные скобки [...]. Получив ответ, проверяйте наличие закрывающей скобки, это гарантирует что Вы получили ответ полностью.

Периодичность

Рекомендуем повторять операцию 1 раз в час.

Парсер недвижимости
Контакты