Profitbase API API Reference

Документация

Расширяйте возможности Profitbase с помощью API.

Мы стараемся предоставить максимальные возможности для пользователей Profitbase покрывая большинство бизнес-процессов по автоматизации продаж. Использование специфических бизнес-процессов или CRM систем не ограничивает вас в подключении к Profitbase. Используйте API Profitbase для получения, добавления и обновления помещений в вашем аккаунте Profitbase.

С помощью API вы сможете интегрировать Profitbase:

  • с сайтом
  • с 1С и любыми другими CRM
  • с своими виджетами и приложениям amoCRM и Битрикс24
  • с сквозными системами аналитики и BI

Основные возможности API v4:

  • Работа с каталогом объектов (чтение, обновление ЖК/домов/помещений)
  • Работа со сделками (при интеграции с amoCRM и Б24)
  • Получение планировок, фасадов
  • Получение акций

v4. Для некоторых методов, предназначенных для работы с приложениями "Profitbase для amoCRM" или "Profitbase для Битрикс24" требуется разрешение подключения к CRM. Включить разрешение можно в настройках приложения API в личном кабинете Profitbase.

Ограничения по работе с API:

  • Запросы необходимо отправлять только с протоколом https
  • Запросы необходимо отправлять в формате JSON (в заголовках указать Content-Type: application/json)
  • Не более одного запроса в секунду
API Endpoint
https://pbXXX.profitbase.ru/api/v4/json
Contact: support@profitbase.ru
Schemes: https
Version: 4.0

Authentication

AppId

Для авторизации в сервисе необходимо передавать в запросе GET-параметр access_token

type
apiKey
name
access_token
in
query

auth

Авторизация

Авторизация

POST /authentication

Метод для аутентификации. Возвращает access_token необходимый для доступа к API. После аутентификации для работы с API необходимо передавать полученный access_token в качестве GET параметра для всех методов. Время жизни токена 24h.

type: string
credentials: object
pb_api_key: string
Request Content-Type: application/json
Request Example
{
  "type": "api-app",
  "credentials": {
    "pb_api_key": "app-5c6a7fa3b55aa"
  }
}
200 OK

Успешная авторизация

Response type
object
access_token: string

Access token для дальнейшего использования в запросах

remaining_time: integer

Время жизни токена в секундах

lang: string

Язык

403 Forbidden

403 Forbidden

Response type
object
error: string

(no description)

lang: string

Язык

Response Content-Type: application/json
Response Example (200 OK)
{
  "access_token": "db0f7ffcdb3ff2101b6602cf746a9e4cb1f31a09c903385e391535dfd6e91448",
  "remaining_time": 3454,
  "lang": "ru"
}
Response Example (403 Forbidden)
{
  "error": "Not allowed.",
  "lang": "ru"
}

houses

Управление домами

Метод получения списка домов с возможностью фильтрации

GET /house

Метод получения списка домов с возможностью фильтрации

id: string
in query

Идентификатор дома

projectId: integer
in query

Идентификатор ЖК

projectIds: integer[]
in query

Идентификаторы ЖК

propertyTypeAliases: string[]
in query

(no description)

rooms: integer[]
in query

Возврат только заданного числа комнат

roomMoreThan: integer
in query

Выбирает кол-во комнат равно или более чем заданное значение. Имеет приоритет над фильтром rooms

isWithoutLayout: boolean
in query

При значении false исключит из ответа помещения без планировки

isStudio: boolean
in query

При значении false исключит студии из ответа

isFreeLayout: boolean
in query

При значении false исключит свободные планировки из ответа

isEuroLayout: boolean
in query

При значении false исключит европланировки из ответа. При значении true и наличии параметра rooms или roomMoreThan фильтрует европланировки по комнатности.

facing: string[]
in query

Отделка

price[min]: integer
in query

Минимальная цена

price[max]: integer
in query

Максимальная цена

price[minPerM]: integer
in query

Минимальная цена за квадратный метр

price[maxPerM]: integer
in query

Максимальная цена за квадратный метр

area[min]: integer
in query

Минимальная площадь

area[max]: integer
in query

Максимальная площадь

area[minAreaLiving]: integer
in query

Минимальная жилая площадь

area[maxAreaLiving]: integer
in query

Максимальная жилая площадь

isHouseFinished: boolean
in query

Дом сдан

developmentEndQuarter: integer
in query

Срок сдачи дома (четверть)

developmentEndYear: integer
in query

Срок сдачи дома (год)

specialOffers: integer[]
in query

Специальные предложения

status: string[]
in query

Статусы

customStatusIds: integer[]
in query

ID статусов

propertySpecifications: string[]
in query

Характеристики

notFirstFloor: object
in query

Не первый этаж

notLastFloor: object
in query

Не последний этаж

minFloor: integer
in query

Этаж (от)

maxFloor: integer
in query

Этаж (до)

offset: integer
in query

смещение для паджинации

limit: integer
in query

кол-во домов в ответе

overlookUnavailableStatus: boolean
in query

Игнорировать помещения в статусе не для продажи

showEmptyHouses: boolean
in query

Показывать пустые дома

isArchive: boolean
in query

При значении false исключит из ответа архивные дома. При значении true в ответе будут возвращены только архивные дома.

200 OK

Список доступных домов

Response type
401 Unauthorized

Требуется авторизация

Response type
object
error:

(no description)

Response Content-Type: application/json
Response Example (200 OK)
[
  {
    "projectId": 1,
    "projectName": "Новомосковский",
    "isArchive": true,
    "title": "Корпус 1",
    "street": "Краснолесья",
    "number": "71А",
    "facing": "Чистовая",
    "material": "Монолит",
    "buildingState": "BUILT",
    "developmentStartQuarter": {
      "year": 2015,
      "quarter": 1
    },
    "developmentEndQuarter": {
      "year": 2015,
      "quarter": 1
    },
    "salesStart": {
      "month": "02",
      "year": "2018"
    },
    "salesEnd": {
      "month": "02",
      "year": "2018"
    },
    "id": 10,
    "type": "APARTMENT"
  }
]
Response Example (401 Unauthorized)
{
  "error": {
    "code": 401,
    "message": "Unauthorized"
  }
}

Метод получения количества этажей в конкретном доме

GET /house/get-count-floors

Метод получения количества этажей в конкретном доме

houseId: integer
in query

Идентификатор дома

200 OK

Количество этажей в каждом подъезде

Response type
object
success: boolean

(no description)

data: array

(no description)

401 Unauthorized

Требуется авторизация

Response type
object
error:

(no description)

Response Content-Type: application/json
Response Example (200 OK)
{
  "success": true,
  "data": [
    {
      "section_id": 52,
      "title": "Подъезд 1",
      "count": 59,
      "above-ground": 56,
      "underground": 3
    }
  ]
}
Response Example (401 Unauthorized)
{
  "error": {
    "code": 401,
    "message": "Unauthorized"
  }
}

Метод получения количества помещений в конкретном доме на конкретном этаже

GET /house/get-count-properties-on-floor

Метод получения количества помещений в конкретном доме на конкретном этаже

houseId: integer
in query

Идентификатор дома

floor: integer
in query

Номер этажа

200 OK

Количество помещений на этаже в каждом подъезде

Response type
object
success: boolean

(no description)

data: array

(no description)

401 Unauthorized

Требуется авторизация

Response type
object
error:

(no description)

Response Content-Type: application/json
Response Example (200 OK)
{
  "success": true,
  "data": [
    {
      "section_id": 52,
      "title": "Подъезд 1",
      "floor": 59,
      "floor_id": 56,
      "count": 3
    }
  ]
}
Response Example (401 Unauthorized)
{
  "error": {
    "code": 401,
    "message": "Unauthorized"
  }
}

Устаревший метод v3 получения списка домов

GET /projects/{projectId}/houses

Устаревший метод v3 получения списка домов

projectId: string
in path

Идентификатор ЖК

200 OK

Список доступных домов

Response type
401 Unauthorized

Требуется авторизация

Response type
object
error:

(no description)

Response Content-Type: application/json
Response Example (200 OK)
[
  {
    "projectId": 1,
    "projectName": "Новомосковский",
    "isArchive": true,
    "title": "Корпус 1",
    "street": "Краснолесья",
    "number": "71А",
    "facing": "Чистовая",
    "material": "Монолит",
    "buildingState": "BUILT",
    "developmentStartQuarter": {
      "year": 2015,
      "quarter": 1
    },
    "developmentEndQuarter": {
      "year": 2015,
      "quarter": 1
    },
    "salesStart": {
      "month": "02",
      "year": "2018"
    },
    "salesEnd": {
      "month": "02",
      "year": "2018"
    },
    "id": 10,
    "type": "APARTMENT"
  }
]
Response Example (401 Unauthorized)
{
  "error": {
    "code": 401,
    "message": "Unauthorized"
  }
}

Метод создание дома в существующий ЖК

POST /houses

Метод создание дома в существующий ЖК

(no description)

Request Content-Type: application/json
Request Example
{
  "project_id": 1,
  "title": "Корпус 1",
  "street": "Краснолесья",
  "number": "71А",
  "facing": "Чистовая",
  "material": "Монолит",
  "building_state": "BUILT",
  "developmentStartQuarter": {
    "year": 2015,
    "quarter": 1
  },
  "developmentEndQuarter": {
    "year": 2015,
    "quarter": 1
  },
  "image": {
    "name": "Дом.jpg",
    "type": "url",
    "data": "https://m-files-new.cdnvideo.ru/lpfile/2/e/2/2e2d974a3a129c42761d7ec906be1a72.png"
  }
}
200 OK

Создан дом

Response type
object
id: integer

Идентификатор дома

401 Unauthorized

Требуется авторизация

Response type
object
error:

(no description)

Response Content-Type: application/json
Response Example (200 OK)
{
  "id": 1
}
Response Example (401 Unauthorized)
{
  "error": {
    "code": 401,
    "message": "Unauthorized"
  }
}

Метод обновления данных в конкретном доме

PUT /houses/{id}

Метод обновления данных в конкретном доме

id: string
in path

Идентификатор дома

Request Content-Type: application/json
Request Example
{
  "project_id": 1,
  "title": "Корпус 1",
  "street": "Краснолесья",
  "number": "71А",
  "facing": "Чистовая",
  "material": "Монолит",
  "building_state": "BUILT",
  "developmentStartQuarter": {
    "year": 2015,
    "quarter": 1
  },
  "developmentEndQuarter": {
    "year": 2015,
    "quarter": 1
  },
  "image": {
    "name": "Дом.jpg",
    "type": "url",
    "data": "https://m-files-new.cdnvideo.ru/lpfile/2/e/2/2e2d974a3a129c42761d7ec906be1a72.png"
  }
}
200 OK

Дом обнавлен

Response type
object
id: integer

Идентификатор дома

401 Unauthorized

Требуется авторизация

Response type
object
error:

(no description)

Response Content-Type: application/json
Response Example (200 OK)
{
  "id": 1
}
Response Example (401 Unauthorized)
{
  "error": {
    "code": 401,
    "message": "Unauthorized"
  }
}

Метод для поиска домов по названию, адресу и названию ЖК

GET /houses/search

Метод для поиска домов по названию, адресу и названию ЖК

text: string
in query

Поисковый запрос

Список домов, подходящих по условию

Response type
401 Unauthorized

Требуется авторизация

Response type
object
error:

(no description)

Response Content-Type: application/json
Response Example (200 OK)
[
  {
    "id": 1,
    "name": "Корпус 1",
    "address": "Екатеринбург, Свердловская область, Краснолесья, 71А",
    "developer": "Солнечный ключ"
  }
]
Response Example (401 Unauthorized)
{
  "error": {
    "code": 401,
    "message": "Unauthorized"
  }
}

projects

Управление жилыми комплексами

Метод получения списка ЖК

GET /projects

Метод получения списка ЖК

isArchive: boolean
in query

При значении false исключит из ответа архивные ЖК. При значении true в ответе будут возвращены только архивные ЖК.

Список доступных ЖК

Response type
401 Unauthorized

Требуется авторизация

Response type
object
error:

(no description)

Response Content-Type: application/json
Response Example (200 OK)
[
  {
    "title": "Новомосковский",
    "type": "complex",
    "archiveState": "NOT_ARCHIVED",
    "region": "Свердловская область",
    "district": "Ленинский район",
    "currency": "RUB",
    "locality": "Екатеринбург",
    "developer": "СтройСуперЗастрой",
    "developer_brand": "СтройСуперЗастрой",
    "banks": "Ребсбанк",
    "image": {
      "name": "Дом.jpg",
      "type": "url",
      "data": "https://m-files-new.cdnvideo.ru/lpfile/2/e/2/2e2d974a3a129c42761d7ec906be1a72.png"
    },
    "id": 10
  }
]
Response Example (401 Unauthorized)
{
  "error": {
    "code": 401,
    "message": "Unauthorized"
  }
}

Метод обновления ЖК

PUT /projects

Метод обновления ЖК

(no description)

Request Content-Type: application/json
Request Example
{
  "title": "Новомосковский",
  "type": "complex",
  "archiveState": "NOT_ARCHIVED",
  "region": "Свердловская область",
  "district": "Ленинский район",
  "currency": "RUB",
  "locality": "Екатеринбург",
  "developer": "СтройСуперЗастрой",
  "developer_brand": "СтройСуперЗастрой",
  "banks": "Ребсбанк",
  "image": {
    "name": "Дом.jpg",
    "type": "url",
    "data": "https://m-files-new.cdnvideo.ru/lpfile/2/e/2/2e2d974a3a129c42761d7ec906be1a72.png"
  }
}
200 OK

Обновлен проект

Response type
object
id: integer

Идентификатор проекта

401 Unauthorized

Требуется авторизация

Response type
object
error:

(no description)

Response Content-Type: application/json
Response Example (200 OK)
{
  "id": 1
}
Response Example (401 Unauthorized)
{
  "error": {
    "code": 401,
    "message": "Unauthorized"
  }
}

Метод создания ЖК

POST /projects

Метод создания ЖК

(no description)

Request Content-Type: application/json
Request Example
{
  "title": "Новомосковский",
  "type": "complex",
  "archiveState": "NOT_ARCHIVED",
  "region": "Свердловская область",
  "district": "Ленинский район",
  "currency": "RUB",
  "locality": "Екатеринбург",
  "developer": "СтройСуперЗастрой",
  "developer_brand": "СтройСуперЗастрой",
  "banks": "Ребсбанк",
  "image": {
    "name": "Дом.jpg",
    "type": "url",
    "data": "https://m-files-new.cdnvideo.ru/lpfile/2/e/2/2e2d974a3a129c42761d7ec906be1a72.png"
  }
}
200 OK

Создан проект

Response type
object
id: integer

Идентификатор проекта

401 Unauthorized

Требуется авторизация

Response type
object
error:

(no description)

Response Content-Type: application/json
Response Example (200 OK)
{
  "id": 1
}
Response Example (401 Unauthorized)
{
  "error": {
    "code": 401,
    "message": "Unauthorized"
  }
}

Метод для поиска ЖК по названию, адресу и названию дома, названию застройщика

GET /projects/search

Метод для поиска ЖК по названию, адресу и названию дома, названию застройщика

text: string
in query

Поисковый запрос

Список ЖК, подходящих по условию

Response type
401 Unauthorized

Требуется авторизация

Response type
object
error:

(no description)

Response Content-Type: application/json
Response Example (200 OK)
[
  {
    "id": 1,
    "name": "ЖК Солнечный",
    "location": "Екатеринбург",
    "district": "Ленинский район",
    "developer": "Солнечный ключ"
  }
]
Response Example (401 Unauthorized)
{
  "error": {
    "code": 401,
    "message": "Unauthorized"
  }
}

properties

Управление помещениями

Метод получения списка помещений с возможностью фильтрации

GET /property

Метод получения списка помещений с возможностью фильтрации. При отправке запроса с параметром full=true лимит отдаваемых помещений будет ограничен до 100. При отправке запроса с параметром full=false, лимит отдаваемых помещений будет ограничен до 1000.

id: integer
in query

Идентификатор помещения

houseId: integer[]
in query

Идентификатор дома. Может быть числом или массивом чисел

number: string
in query

Номер помещения

section: string[]
in query

Номера подъездов

projectId: integer
in query

Идентификатор ЖК

projectIds: integer[]
in query

Идентификаторы ЖК

propertyTypeAliases: PropertyType
in query

Типы помещений

rooms: integer[]
in query

Возврат только заданного числа комнат

roomMoreThan: integer
in query

Выбирает кол-во комнат равно или более чем заданное значение. Имеет приоритет над фильтром rooms

isWithoutLayout: boolean
in query

При значении false исключит из ответа помещения без планировки

isStudio: boolean
in query

При значении false исключит студии из ответа

isFreeLayout: boolean
in query

При значении false исключит свободные планировки из ответа

isEuroLayout: boolean
in query

При значении false исключит европланировки из ответа. При значении true и наличии параметра rooms или roomMoreThan фильтрует европланировки по комнатности.

facing: string[]
in query

Отделка

price[min]: integer
in query

Минимальная цена

price[max]: integer
in query

Максимальная цена

price[minPerM]: integer
in query

Минимальная цена за квадратный метр

price[maxPerM]: integer
in query

Максимальная цена за квадратный метр

area[min]: integer
in query

Минимальная площадь

area[max]: integer
in query

Максимальная площадь

area[minAreaLiving]: integer
in query

Минимальная жилая площадь

area[maxAreaLiving]: integer
in query

Максимальная жилая площадь

isHouseFinished: boolean
in query

Дом сдан

developmentEndQuarter: integer
in query

Срок сдачи дома (четверть)

developmentEndYear: integer
in query

Срок сдачи дома (год)

specialOffers: integer[]
in query

Специальные предложения

status: string[]
in query

Статусы

customStatusIds: integer[]
in query

ID статусов

propertySpecifications: string[]
in query

Характеристики

notFirstFloor: object
in query

Не первый этаж

notLastFloor: object
in query

Не последний этаж

minFloor: integer
in query

Этаж (от)

maxFloor: integer
in query

Этаж (до)

customFields: integer[]
in query

ID кастомных полей (параметр учитывается только при full=true)

isArchive: boolean
in query

При значении false исключит из ответа архивные помещения. При значении true в ответе будут возвращены только архивные помещения.

full: boolean
in query

Расширенный набор данных. Если передано значение true, то будет возвращено подробное описание связанных сущностей. Иначе возвращаются только идентификаторы.

limit: integer
in query

Количество выбираемых строк

offset: integer
in query

Сдвиг выборки (с какой строки выбирать)

200 OK

Если в настройках ключа включена опция "Получать данные из CRM" и в запросе передан параметр full=true в ответе будут возвращены данные из crm

Response type
object
status: string

(no description)

data: array

(no description)

401 Unauthorized

Требуется авторизация

Response type
object
error:

(no description)

Response Content-Type: application/json
Response Example (200 OK)
{
  "status": "success",
  "data": [
    {
      "id": 248408,
      "house_id": 873,
      "number": "1",
      "rooms_amount": 200,
      "floor": 2,
      "without_layout": false,
      "studio": false,
      "free_layout": false,
      "euro_layout": false,
      "propertyType": "property",
      "typePurpose": "residential",
      "area": {
        "area_total": 60.2,
        "area_estimated": 60.2,
        "area_living": 60.2,
        "area_kitchen": 60.2
      },
      "houseName": "Дом 1",
      "isHouseArchive": true,
      "sectionName": "Подъезд 14",
      "projectName": "Новомосковский",
      "specialOffers": [
        {
          "id": 2170,
          "name": "Акция 1",
          "archive": false,
          "color": "#fa8174",
          "description": "Описсание",
          "descriptionActive": false,
          "startDate": {
            "date": "2019-02-01 00:00:00.000000",
            "timezone_type": "3",
            "timezone": "Asia/Yekaterinburg"
          },
          "finishDate": {
            "date": "2019-02-25 00:00:00.000000",
            "timezone_type": "3",
            "timezone": "Asia/Yekaterinburg"
          },
          "badge": {
            "icon": "percent",
            "label": "Акция"
          },
          "banner": {
            "active": true,
            "text": "Текст баннера",
            "buttonText": "Забронировать"
          },
          "discount": {
            "active": true,
            "type": "FULL_PRICE",
            "unit": "PERCENT",
            "value": 10,
            "description": "Установлена скидка -10% от полной стоимости",
            "humanizedType": "от полной стоимости",
            "humanizedUnit": "%"
          },
          "propertyIds": [
            3244361,
            3244364
          ]
        }
      ],
      "address": "Екатеринбург, Ленинский район, Свердловская область - эт. 2 № 1",
      "section": "Подъезд 14",
      "preset": "https://pbXXX.profitbase.ru/uploads/preset/3/07cfa5704b48d25e0ba50a52d4c1a414.jpg",
      "isLightSideVisible": "true",
      "lightSideAngle": "0",
      "externalId": "dp-1488",
      "attachments": [
        {
          "id": "number",
          "type": "panorama - 3d тур",
          "code": "string",
          "parameters": {
            "url": "string",
            "isEnabled": "boolean",
            "uid": "string",
            "type": "string"
          }
        }
      ],
      "planImages": [
        {
          "image_name": "Вид второго этажа",
          "source": "https://pbXXX.profitbase.ru/uploads/preset/3/77b904fc0df6b19ca00372c4298103c1.jpg"
        }
      ],
      "attributes": {
        "loggia_count": 1,
        "balcony_count": 1,
        "combined_bathroom_count": 1,
        "separated_bathroom_count": 0,
        "bti_number": "1",
        "window_view": "1",
        "position_on_floor": 1,
        "description": "Самая лучшая квартира на этаже",
        "code": "1K42",
        "facing": "В горошек"
      },
      "custom_fields": [
        {
          "id": "pbcf_5c5bfff299292",
          "name": "Номер помещения для БТИ",
          "value": "4353435"
        }
      ],
      "price": {
        "value": 3200000
      }
    }
  ]
}
Response Example (401 Unauthorized)
{
  "error": {
    "code": 401,
    "message": "Unauthorized"
  }
}

Метод создания помещения в конкретный дом

POST /properties

Метод создания помещения в конкретный дом

house_id: integer

Идентификатор дома

number: string

Номер

property_type: PropertyType

Тип помещения (по умолчанию property)

rooms_amount: integer

Количество комнат

section: string

Подъезд

floor: integer

Этаж

without_layout: boolean

Без планировки

studio: boolean

Студия

free_layout: boolean

Свободная планировка

euro_layout: boolean

Европланировка

area: Area
status: Status
price: Price
attributes: object
loggia_count: integer

Количество лоджий

balcony_count: integer

Количество балконов

combined_bathroom_count: integer

Количество совмещенных санузлов

separated_bathroom_count: integer

Количество раздельных санузлов

position_on_floor: integer

Окна выходят

description: string

Описание помещения

code: string

Код планировки (старое название свойства layout_code также поддерживается)

window: string

Куда выходят окна

facing: string

Отделка

preset: PresetImage
custom_fields: object
payment_types: PaymentType

Доступные типы оплаты

PaymentType
Request Content-Type: application/json
Request Example
{
  "house_id": 1,
  "number": "606",
  "property_type": "property",
  "rooms_amount": 3,
  "section": "1",
  "floor": 11,
  "without_layout": false,
  "studio": false,
  "free_layout": false,
  "euro_layout": false,
  "area": {
    "area_total": 60.2,
    "area_estimated": 60.2,
    "area_living": 60.2,
    "area_kitchen": 60.2
  },
  "status": "AVAILABLE",
  "price": {
    "value": 3200000
  },
  "attributes": {
    "loggia_count": 1,
    "balcony_count": 1,
    "combined_bathroom_count": 1,
    "separated_bathroom_count": 0,
    "position_on_floor": 1,
    "description": "Самая лучшая квартира на этаже",
    "code": "1K42",
    "window": "Во двор",
    "facing": "В горошек"
  },
  "preset": {
    "name": "№606",
    "type": "url",
    "data": "string"
  },
  "custom_fields": {
    "pbcf_5d1080c8830d7": 85,
    "pbcf_5d107d35cc63d": 12
  },
  "payment_types": [
    "FULL"
  ]
}
200 OK

Создано помещение

Response type
object
id: integer

Идентификатор помещения

401 Unauthorized

Требуется авторизация

Response type
object
error:

(no description)

Response Content-Type: application/json
Response Example (200 OK)
{
  "id": 1
}
Response Example (401 Unauthorized)
{
  "error": {
    "code": 401,
    "message": "Unauthorized"
  }
}

Метод обновления данных в конкретном помещении

PATCH /properties/{propertyId}

Метод обновления данных в конкретном помещении

house_id: integer

Идентификатор дома

number: string

Номер

property_type: PropertyType

Тип помещения (по умолчанию property)

rooms_amount: integer

Количество комнат

section: string

Подъезд

floor: integer

Этаж

without_layout: boolean

Без планировки

studio: boolean

Студия

free_layout: boolean

Свободная планировка

euro_layout: boolean

Европланировка

area: Area
status: Status
price: Price
attributes: object
loggia_count: integer

Количество лоджий

balcony_count: integer

Количество балконов

combined_bathroom_count: integer

Количество совмещенных санузлов

separated_bathroom_count: integer

Количество раздельных санузлов

position_on_floor: integer

Окна выходят

description: string

Описание помещения

code: string

Код планировки (старое название свойства layout_code также поддерживается)

window: string

Куда выходят окна

facing: string

Отделка

preset: PresetImage
custom_fields: object
payment_types: PaymentType

Доступные типы оплаты

PaymentType
propertyId: string
in path

Идентификатор помещения

Request Content-Type: application/json
Request Example
{
  "house_id": 1,
  "number": "606",
  "property_type": "property",
  "rooms_amount": 3,
  "section": "1",
  "floor": 11,
  "without_layout": false,
  "studio": false,
  "free_layout": false,
  "euro_layout": false,
  "area": {
    "area_total": 60.2,
    "area_estimated": 60.2,
    "area_living": 60.2,
    "area_kitchen": 60.2
  },
  "status": "AVAILABLE",
  "price": {
    "value": 3200000
  },
  "attributes": {
    "loggia_count": 1,
    "balcony_count": 1,
    "combined_bathroom_count": 1,
    "separated_bathroom_count": 0,
    "position_on_floor": 1,
    "description": "Самая лучшая квартира на этаже",
    "code": "1K42",
    "window": "Во двор",
    "facing": "В горошек"
  },
  "preset": {
    "name": "№606",
    "type": "url",
    "data": "string"
  },
  "custom_fields": {
    "pbcf_5d1080c8830d7": 85,
    "pbcf_5d107d35cc63d": 12
  },
  "payment_types": [
    "FULL"
  ]
}

Помещение с обновленными данными

401 Unauthorized

Требуется авторизация

Response type
object
error:

(no description)

Response Content-Type: application/json
Response Example (200 OK)
{
  "id": 10,
  "house_id": 10,
  "number": 606,
  "rooms_amount": 3,
  "section": "1",
  "floor": 11,
  "without_layout": false,
  "studio": false,
  "free_layout": false,
  "euro_layout": false,
  "area": {
    "area_total": 60.2,
    "area_estimated": 60.2,
    "area_living": 60.2,
    "area_kitchen": 60.2
  },
  "status": "AVAILABLE",
  "price": {
    "value": 3200000
  },
  "attributes": {
    "loggia_count": 1,
    "balcony_count": 1,
    "combined_bathroom_count": 1,
    "separated_bathroom_count": 0,
    "bti_number": "1",
    "window_view": "1",
    "position_on_floor": 1,
    "description": "Самая лучшая квартира на этаже",
    "code": "1K42",
    "facing": "В горошек"
  },
  "status_change_set": [
    {
      "id": "integer",
      "property_id": "integer",
      "previus_value": "AVAILABLE",
      "current_value": "BOOKED",
      "user_id": "integer",
      "changed_at": {
        "date": "string",
        "timezone_type": "integer",
        "timezone": "string"
      }
    }
  ],
  "preset_id": "string",
  "custom_fields": [
    {
      "id": "pbcf_5bdae1ed43d69",
      "name": "Номер помещения для БТИ",
      "value": 84
    }
  ]
}
Response Example (401 Unauthorized)
{
  "error": {
    "code": 401,
    "message": "Unauthorized"
  }
}

Метод получения списка типов помещений и их дополнительных полей

GET /property-types

Метод получения списка типов помещений и их дополнительных полей

200 OK

Описание Типов

Response type
object
id: integer

(no description)

alias: string

(no description)

name: string

(no description)

customFields: array

(no description)

systemFields: array

(no description)

401 Unauthorized

Требуется авторизация

Response type
object
error:

(no description)

Response Content-Type: application/json
Response Example (200 OK)
{
  "id": 1,
  "alias": "property",
  "name": "Квартира",
  "customFields": [
    {
      "id": 1,
      "key": "pbcf_5c5bfff299292",
      "name": "Номер помещения для БТИ",
      "rank": "1",
      "type": "text",
      "specificationName": "kitchen-living-room"
    }
  ],
  "systemFields": [
    {
      "id": 146248,
      "key": "id",
      "name": "ID помещения",
      "rank": "2",
      "type": "text",
      "specificationName": "null"
    }
  ]
}
Response Example (401 Unauthorized)
{
  "error": {
    "code": 401,
    "message": "Unauthorized"
  }
}

Метод получения списка помещений привязанных к конкретной сделке

GET /property/deal/{dealId}

Метод получения списка помещений привязанных к конкретной сделке Требуется разрешение подключения к CRM.

dealId: integer
in path

Ид сделки

200 OK

Список помещений

Response type
object
status: string

(no description)

data: array

(no description)

401 Unauthorized

Требуется авторизация

Response type
object
error:

(no description)

Response Content-Type: application/json
Response Example (200 OK)
{
  "status": "success",
  "data": [
    {
      "id": 10,
      "house_id": 10,
      "number": 606,
      "rooms_amount": 3,
      "floor": 11,
      "without_layout": false,
      "studio": false,
      "free_layout": false,
      "euro_layout": false,
      "propertyType": "property",
      "typePurpose": "residential",
      "area": {
        "area_total": 60.2,
        "area_estimated": 60.2,
        "area_living": 60.2,
        "area_kitchen": 60.2
      },
      "houseName": "1",
      "sectionName": "1",
      "projectName": "1",
      "specialOffers": [
        23,
        45
      ],
      "address": "1",
      "section": "1",
      "attributes": {
        "loggia_count": 1,
        "balcony_count": 1,
        "combined_bathroom_count": 1,
        "separated_bathroom_count": 0,
        "bti_number": "1",
        "window_view": "1",
        "position_on_floor": 1,
        "description": "Самая лучшая квартира на этаже",
        "code": "1K42",
        "facing": "В горошек"
      },
      "custom_fields": [
        {
          "id": 1,
          "key": "pbcf_5c5bfff299292",
          "name": "Номер помещения для БТИ",
          "type": "text"
        }
      ],
      "status": "AVAILABLE",
      "price": {
        "value": 3200000
      }
    }
  ]
}
Response Example (401 Unauthorized)
{
  "error": {
    "code": 401,
    "message": "Unauthorized"
  }
}

Метод получения истории изменения статусов по конкретному помещению

GET /property/history/{propertyId}

Метод получения истории изменения статусов по конкретному помещению

propertyId: integer
in path

Ид помещения

200 OK

История помещения

Response type
object
response: array

(no description)

401 Unauthorized

Требуется авторизация

Response type
object
error:

(no description)

Response Content-Type: application/json
Response Example (200 OK)
{
  "response": [
    {
      "action": "Adding an object to a deal",
      "actionKey": "ADD_PROPERTY",
      "date": "1562766475",
      "propertyStatus": "Free",
      "propertyStatusKey": "AVAILABLE",
      "dealStatus": "Первичный контакт",
      "dealId": "6928063",
      "dealName": "Deal 1",
      "responsibleName": "Ivanov Ivan",
      "responsibleId": "3634981",
      "contactName": "Petr Petrov",
      "contactPhone": "+79221111111",
      "contactId": "17675313",
      "propertyId": "248301"
    }
  ]
}
Response Example (401 Unauthorized)
{
  "error": {
    "code": 401,
    "message": "Unauthorized"
  }
}

Устаревший метод v3 получения списка помещений в конкретном доме

GET /projects/{projectId}/houses/{houseId}/properties/list

Устаревший метод v3 получения списка помещений в конкретном доме

projectId: string
in path

Идентификатор ЖК

houseId: string
in path

Идентификатор дома

Список помещений в доме

Response type
401 Unauthorized

Требуется авторизация

Response type
object
error:

(no description)

Response Content-Type: application/json
Response Example (200 OK)
[
  {
    "id": 10,
    "house_id": 10,
    "number": 606,
    "rooms_amount": 3,
    "section": "1",
    "floor": 11,
    "without_layout": false,
    "studio": false,
    "free_layout": false,
    "euro_layout": false,
    "area": {
      "area_total": 60.2,
      "area_estimated": 60.2,
      "area_living": 60.2,
      "area_kitchen": 60.2
    },
    "status": "AVAILABLE",
    "price": {
      "value": 3200000
    },
    "attributes": {
      "loggia_count": 1,
      "balcony_count": 1,
      "combined_bathroom_count": 1,
      "separated_bathroom_count": 0,
      "bti_number": "1",
      "window_view": "1",
      "position_on_floor": 1,
      "description": "Самая лучшая квартира на этаже",
      "code": "1K42",
      "facing": "В горошек"
    },
    "status_change_set": [
      {
        "id": "integer",
        "property_id": "integer",
        "previus_value": "AVAILABLE",
        "current_value": "BOOKED",
        "user_id": "integer",
        "changed_at": {
          "date": "string",
          "timezone_type": "integer",
          "timezone": "string"
        }
      }
    ],
    "preset_id": "string",
    "custom_fields": [
      {
        "id": "pbcf_5bdae1ed43d69",
        "name": "Номер помещения для БТИ",
        "value": 84
      }
    ]
  }
]
Response Example (401 Unauthorized)
{
  "error": {
    "code": 401,
    "message": "Unauthorized"
  }
}

Метод получения списка сделок привязанных к конкретным помещениям

GET /get-property-deals

Метод получения списка сделок привязанных к конкретным помещениям. Требуется разрешение подключения к CRM.

ids: integer[]
in query

Массив идентификаторов помещений

200 OK

Список сделок

Response type
object[]
401 Unauthorized

Требуется авторизация

Response type
object
error:

(no description)

Response Content-Type: application/json
Response Example (200 OK)
[
  {
    "property_id": 3225935,
    "deals": [
      {
        "crm": "bitrix",
        "deal_id": 1
      }
    ]
  }
]
Response Example (401 Unauthorized)
{
  "error": {
    "code": 401,
    "message": "Unauthorized"
  }
}

Метод изменения статуса помещения

POST /properties/{id}/status-change

Метод изменения статуса помещения.

Идентификатор нового статуса (id) или текстовый идентификатор (alias)

id: string
in path

Идентификатор помещения

Request Content-Type: application/json
Request Example
"AVAILABLE"
200 OK

Новый статус

Response type
object
id: integer

Идентификатор помещения

status: string

Идентификатор нового статуса (id) или текстовой идентификатор (alias)

401 Unauthorized

Требуется авторизация

Response type
object
error:

(no description)

Response Content-Type: application/json
Response Example (200 OK)
{
  "id": 1,
  "status": "AVAILABLE"
}
Response Example (401 Unauthorized)
{
  "error": {
    "code": 401,
    "message": "Unauthorized"
  }
}

Метод продления брони в конкретном помещении

PATCH /reserve/prolong

Метод продления брони в конкретном помещении. Работает только при включенной опции "Получать данные из CRM".

propertyId: integer

Идентификатор помещения

date: string

Дата в формате Y-m-d H:i

Request Content-Type: application/json
Request Example
{
  "propertyId": "777",
  "date": "2021-07-21 12:00"
}
200 OK
Response type
object
success: boolean

(no description)

401 Unauthorized

Требуется авторизация

Response type
object
error:

(no description)

Response Content-Type: application/json
Response Example (200 OK)
{
  "success": true
}
Response Example (401 Unauthorized)
{
  "error": {
    "code": 401,
    "message": "Unauthorized"
  }
}

board

Шахматка

Метод получения шахматки дома

GET /board

Метод получения шахматки дома

houseId: integer
in query

Идентификатор дома

200 OK

Список этажей

Response type
object
floors: array

(no description)

401 Unauthorized

Требуется авторизация

Response type
object
error:

(no description)

Response Content-Type: application/json
Response Example (200 OK)
{
  "floors": [
    {
      "number": 25,
      "sections": [
        {
          "number": 1,
          "name": "Подъезд 1",
          "cells": [
            {
              "propertyId": 3238749
            }
          ]
        }
      ]
    }
  ]
}
Response Example (401 Unauthorized)
{
  "error": {
    "code": 401,
    "message": "Unauthorized"
  }
}

presets

Управление планировками

Метод получения планировок помещений с возможностью фильтрации

GET /plan

Метод получения планировок помещений с возможностью фильтрации

projectId: integer
in query

Идентификатор ЖК

projectIds: integer[]
in query

Идентификаторы ЖК

houseId: integer[]
in query

Идентификаторы домов

propertyTypeAliases: string[]
in query

(no description)

rooms: integer[]
in query

Возврат только заданного числа комнат

roomMoreThan: integer
in query

Выбирает кол-во комнат равно или более чем заданное значение. Имеет приоритет над фильтром rooms

isWithoutLayout: boolean
in query

При значении false исключит из ответа помещения без планировки

isStudio: boolean
in query

При значении false исключит студии из ответа

isFreeLayout: boolean
in query

При значении false исключит свободные планировки из ответа

isEuroLayout: boolean
in query

При значении false исключит европланировки из ответа. При значении true и наличии параметра rooms или roomMoreThan фильтрует европланировки по комнатности.

facing: string[]
in query

Отделка

price[min]: integer
in query

Минимальная цена

price[max]: integer
in query

Максимальная цена

price[minPerM]: integer
in query

Минимальная цена за квадратный метр

price[maxPerM]: integer
in query

Максимальная цена за квадратный метр

area[min]: integer
in query

Минимальная площадь

area[max]: integer
in query

Максимальная площадь

area[minAreaLiving]: integer
in query

Минимальная жилая площадь

area[maxAreaLiving]: integer
in query

Максимальная жилая площадь

isHouseFinished: boolean
in query

Дом сдан

developmentEndQuarter: integer
in query

Срок сдачи дома (четверть)

developmentEndYear: integer
in query

Срок сдачи дома (год)

specialOffers: integer[]
in query

Специальные предложения

status: string[]
in query

Статусы

customStatusIds: integer[]
in query

ID статусов

propertySpecifications: string[]
in query

Характеристики

notFirstFloor: object
in query

Не первый этаж

notLastFloor: object
in query

Не последний этаж

minFloor: integer
in query

Этаж (от)

maxFloor: integer
in query

Этаж (до)

order[project_id]: string
in query

Сортировка по Id проекта

isArchive: boolean
in query

При значении false исключит из ответа планировки архивных помещений. При значении true в ответе будут возвращены только планировки архивных помещений.

offset: integer
in query

смещение для паджинации

limit: integer
in query

кол-во домов в ответе

200 OK

Список планировок

Response type
object
success: boolean

(no description)

data: array

(no description)

401 Unauthorized

Требуется авторизация

Response type
object
error:

(no description)

Response Content-Type: application/json
Response Example (200 OK)
{
  "success": true,
  "data": [
    {
      "id": "1",
      "code": "193164-1",
      "projectName": "Новомосковский",
      "houseName": "Объект",
      "houseId": 870,
      "isHouseArchive": true,
      "isWithoutLayout": true,
      "isStudio": false,
      "isEuroLayout": false,
      "isFreeLayout": false,
      "roomsAmount": 20,
      "hidePrice": false,
      "priceRange": {
        "min": "860000",
        "max": "860000"
      },
      "areaRange": {
        "min": "200",
        "max": "200"
      },
      "attachments": [
        {
          "id": "number",
          "type": "panorama - 3d тур",
          "code": "string",
          "parameters": {
            "url": "string",
            "isEnabled": "boolean",
            "uid": "string",
            "type": "string"
          }
        }
      ],
      "properties": [
        [
          "248408",
          "248422"
        ]
      ],
      "address": {
        "full": "Екатеринбург, Ленинский район, Свердловская область",
        "locality": "Екатеринбург",
        "district": "Ленинский район",
        "region": "Свердловская область",
        "street": "Ленина",
        "number": "48"
      },
      "image": {
        "source": "https://pbXXX.profitbase.ru/uploads/preset/3/07cfa5704b48d25e0ba50a52d4c1a414.jpg",
        "big": "https://pbXXX.profitbase.ru/media/cache/resolve/apartment_1200_700/uploads/preset/3/07cfa5704b48d25e0ba50a52d4c1a414.jp",
        "preview": "https://pbXXX.profitbase.ru/media/cache/resolve/apartment_x_240/uploads/preset/3/07cfa5704b48d25e0ba50a52d4c1a414.jpg",
        "small": "https://pbXXX.profitbase.ru/media/cache/resolve/apartment_x_240/uploads/preset/3/07cfa5704b48d25e0ba50a52d4c1a414.jpg",
        "imageName": "Вид сверху"
      },
      "planImages": [
        {
          "source": "https://pbXXX.profitbase.ru/uploads/preset/3/77b904fc0df6b19ca00372c4298103c1.jpg",
          "big": "https://pbXXX.profitbase.ru/media/cache/resolve/apartment_1200_700/uploads/preset/3/77b904fc0df6b19ca00372c4298103c1.jpg",
          "preview": "https://pbXXX.profitbase.ru/media/cache/resolve/apartment_x_240/uploads/preset/3/77b904fc0df6b19ca00372c4298103c1.jpg",
          "small": "https://pbXXX.profitbase.ru/media/cache/resolve/apartment_x_240/uploads/preset/3/77b904fc0df6b19ca00372c4298103c1.jpg",
          "imageName": "Вид сверху"
        }
      ],
      "lightSideAngle": 180,
      "isLightSideVisible": false,
      "countFilteredProperty": 2
    }
  ]
}
Response Example (401 Unauthorized)
{
  "error": {
    "code": 401,
    "message": "Unauthorized"
  }
}

Устаревший метод получения планировок помещений в доме

GET /projects/{projectId}/houses/{houseId}/presets
projectId: string
in path

Идентификатор ЖК

houseId: string
in path

Идентификатор дома

200 OK

Список планировок в доме

Response type
401 Unauthorized

Требуется авторизация

Response type
object
error:

(no description)

Response Content-Type: application/json
Response Example (200 OK)
[
  {
    "id": "number",
    "url": "https://pbXXX.profitbase.ru/uploads/preset/image.jpg",
    "code": "string",
    "attachments": [
      {
        "id": "number",
        "type": "panorama - 3d тур",
        "code": "string",
        "parameters": {
          "url": "string",
          "isEnabled": "boolean",
          "uid": "string",
          "type": "string"
        }
      }
    ]
  }
]
Response Example (401 Unauthorized)
{
  "error": {
    "code": 401,
    "message": "Unauthorized"
  }
}

facade

Фасады

Метод получения списка фасадов дома

GET /facade

Метод получения списка фасадов дома

houseId: integer
in query

Ид дома

200 OK

Список фасадов дома

Response type
object[]
401 Unauthorized

Требуется авторизация

Response type
object
error:

(no description)

Response Content-Type: application/json
Response Example (200 OK)
[
  {
    "id": 156,
    "image": "https://pbXXX.profitbase.ru/media/cache/resolve/blurred_facade/uploads/facade/3/5c8f9023d0875.jpg",
    "name": "01012002_03-1",
    "areaColor": "#fa8174",
    "areaOpacity": "10",
    "areas": [
      {
        "id": 101348,
        "floorNumber": 6,
        "coordinates": [
          [
            644.42114257812,
            299.79376060313
          ]
        ]
      }
    ]
  }
]
Response Example (401 Unauthorized)
{
  "error": {
    "code": 401,
    "message": "Unauthorized"
  }
}

floor

Этажи

Метод получения планировок этажей дома

GET /floor

Метод получения планировок этажей дома

houseId: integer
in query

Ид дома

200 OK

Планировки

Response type
object[]
401 Unauthorized

Требуется авторизация

Response type
object
error:

(no description)

Response Content-Type: application/json
Response Example (200 OK)
[
  {
    "id": 2170,
    "number": 2,
    "lightSideAngle": 180,
    "isLightSideVisible": false,
    "images": {
      "source": "https://pbXXX.profitbase.ru/uploads/layout/3/5c5d4e8a70c90.jpg",
      "large": "https://pbXXX.profitbase.ru/media/cache/resolve/floor_10000_10000/uploads/layout/3/5c5d4e8a70c90.jpg",
      "big": "https://pbXXX.profitbase.ru/media/cache/resolve/floor_2000_2000/uploads/layout/3/5c5d4e8a70c90.jpg",
      "preview": "https://pbXXX.profitbase.ru/media/cache/resolve/floor_200_w/uploads/layout/3/5c5d4e8a70c90.jpg"
    },
    "originalLayoutHeight": 1920,
    "originalLayoutWidth": 1080,
    "areas": [
      {
        "propertyId": 2,
        "coordinates": [
          {
            "x": 608,
            "y": 61
          }
        ]
      }
    ]
  }
]
Response Example (401 Unauthorized)
{
  "error": {
    "code": 401,
    "message": "Unauthorized"
  }
}

actions

Акции

crm

CRM

crm

Метод получения списка сделок или конкретной сделки

GET /crm/deals

Метод получения списка сделок или конкретной сделки. Требуется разрешение подключения к CRM. Требуется подключенное приложение "Profitbase для amoCRM" или "Profitbase для Битрикс24".

dealId: integer
in query

Идентификатор сделки

200 OK

Сделка

Response type
object[]
401 Unauthorized

Требуется авторизация

Response type
object
error:

(no description)

Response Content-Type: application/json
Response Example (200 OK)
[
  {
    "deal": {
      "id": 448303,
      "name": "Сделка 1",
      "status": {
        "color": "#98cbff",
        "name": "Уточнение потребности",
        "id": "456",
        "isBindedToPropertyStatus": true
      },
      "pipelineId": "2210374",
      "manager": {
        "id": 3010726,
        "fullName": "manager@profitbase.ru"
      },
      "client": {
        "id": 1343551,
        "fullName": "ООО МояКомпания",
        "phone": "+79111111111"
      }
    },
    "property": {
      "id": 260016,
      "houseId": 1034,
      "apartment_status_key": "AVAILABLE",
      "fullAddress": "Екатеринбург, Свердловская область, Малышева, 71 - эт. 25 № 98"
    },
    "queueReserve": {
      "id": 225,
      "propertyId": 260016,
      "rank": 1
    }
  }
]
Response Example (401 Unauthorized)
{
  "error": {
    "code": 401,
    "message": "Unauthorized"
  }
}
crm

Метод получения списка сделок в которые добавлено конкретное помещение

GET /crm/deals/property/{propertyId}

Метод получения списка сделок в которые добавлено конкретное помещение. Требуется разрешение подключения к CRM. Требуется подключенное приложение "Profitbase для amoCRM" или "Profitbase для Битрикс24"

propertyId: integer
in path

Идентификатор помещения

200 OK

Сделки

Response type
object
deals: array

(no description)

leads: array

(no description)

401 Unauthorized

Требуется авторизация

Response type
object
error:

(no description)

Response Content-Type: application/json
Response Example (200 OK)
{
  "deals": [
    {
      "id": 132,
      "name": "Сделка ЖК",
      "status": {
        "color": "#99ccff",
        "name": "Первичный контакт",
        "id": "30953311",
        "isBindedToPropertyStatus": true
      },
      "manager": {
        "id": 53463,
        "fullName": "Кирилл Александрович Гануленко"
      },
      "client": {
        "id": 242,
        "fullName": "Наталья Сергеевна",
        "phone": "=70136667755"
      }
    }
  ],
  "leads": [
    {
      "id": 132,
      "name": "Сделка ЖК",
      "status": {
        "color": "#99ccff",
        "name": "Первичный контакт",
        "id": "30953311",
        "isBindedToPropertyStatus": true
      },
      "manager": {
        "id": 53463,
        "fullName": "Кирилл Александрович Гануленко"
      },
      "client": {
        "id": 242,
        "fullName": "Наталья Сергеевна",
        "phone": "=70136667755"
      }
    }
  ]
}
Response Example (401 Unauthorized)
{
  "error": {
    "code": 401,
    "message": "Unauthorized"
  }
}
crm

Метод добавления помещения в сделку

POST /crm/addPropertyDeal

Метод добавления помещения в сделку. Требуется разрешение подключения к CRM. Требуется подключенное приложение "Profitbase для amoCRM" или "Profitbase для Битрикс24".

propertyId: integer
dealId: integer
Request Content-Type: application/json
Request Example
{
  "propertyId": 248408,
  "dealId": 448303
}
200 OK
Response type
object
success: boolean

(no description)

401 Unauthorized

Требуется авторизация

Response type
object
error:

(no description)

Response Content-Type: application/json
Response Example (200 OK)
{
  "success": true
}
Response Example (401 Unauthorized)
{
  "error": {
    "code": 401,
    "message": "Unauthorized"
  }
}
crm

Метод удаления помещений из сделки

POST /crm/removePropertyDeal

Метод удаления помещений из сделки. Требуется разрешение подключения к CRM. Требуется подключенное приложение "Profitbase для amoCRM" или "Profitbase для Битрикс24".

dealId: integer
Request Content-Type: application/json
Request Example
{
  "dealId": 448303
}
200 OK

Создан дом

Response type
object
success: boolean

(no description)

401 Unauthorized

Требуется авторизация

Response type
object
error:

(no description)

Response Content-Type: application/json
Response Example (200 OK)
{
  "success": true
}
Response Example (401 Unauthorized)
{
  "error": {
    "code": 401,
    "message": "Unauthorized"
  }
}
crm

Метод обновления полей Proftibase в сделке по помещению

GET /crm/update/deal/{dealId}/property/{propertyId}

Метод обновления полей Proftibase в сделке по помещению. Требуется разрешение подключения к CRM. Требуется подключенное приложение "Profitbase для amoCRM" или "Profitbase для Битрикс24".

dealId: integer
in path

Идентификатор сделки

propertyId: integer
in path

Идентификатор помещения

200 OK
Response type
object
success: boolean

(no description)

401 Unauthorized

Требуется авторизация

Response type
object
error:

(no description)

Response Content-Type: application/json
Response Example (200 OK)
{
  "success": true
}
Response Example (401 Unauthorized)
{
  "error": {
    "code": 401,
    "message": "Unauthorized"
  }
}
crm

Метод синхронизации статуса помещения с этапом сделки CRM согласно разметке статусов приложения CRM для Profitbase

GET /crm/syncPropertyStatus

Метод синхронизации статуса помещения с этапом сделки CRM согласно разметке статусов приложения CRM для Profitbase. Требуется разрешение подключения к CRM. Требуется подключенное приложение "Profitbase для amoCRM" или "Profitbase для Битрикс24".

dealId: integer
in query

Идентификатор сделки

200 OK
Response type
object
success: boolean

(no description)

401 Unauthorized

Требуется авторизация

Response type
object
error:

(no description)

Response Content-Type: application/json
Response Example (200 OK)
{
  "success": true
}
Response Example (401 Unauthorized)
{
  "error": {
    "code": 401,
    "message": "Unauthorized"
  }
}

order

Заявки

Метод создания заявки на помещение

POST /orders

Метод создания заявки на помещение. Требуется разрешение подключения к CRM. Требуется подключенное приложение Смарт-каталог

order: object
name: string
phone: string
email: string
apartment_id: integer
calc_credit: integer

Покупка в ипотеку

comment: string
site_widget: integer
Request Content-Type: application/json
Request Example
{
  "order": {
    "name": "TEST",
    "phone": "+79111111111",
    "email": "test@profitbase.ru",
    "apartment_id": 248408,
    "calc_credit": 1,
    "comment": "тестовая заявка",
    "site_widget": 1
  }
}
200 OK

Идентификатор заявки

Response type
object
response: object

(no description)

401 Unauthorized

Требуется авторизация

Response type
object
error:

(no description)

Response Content-Type: application/json
Response Example (200 OK)
{
  "response": {
    "order": 17
  }
}
Response Example (401 Unauthorized)
{
  "error": {
    "code": 401,
    "message": "Unauthorized"
  }
}

history

История изменения статусов

Метод получения истории изменения статусов помещений с возможностью фильтрации

POST /history

Метод получения истории изменения статусов помещений с возможностью фильтрации.

У парметра property_ids приоретет выше т.е при одновременной передаче пареметров фильтрации property_ids и house_ids, пареметр house_ids учитываться не будет

property_ids: object[]

Массив идентификаторов помещений

object
house_ids: object[]

Массив идентификаторов домов.

object
from: string (date-time)

Дата и время фильтра начала.

to: string (date-time)

Дата и время фильтра конца.

Request Content-Type: application/json
Request Example
{
  "property_ids": [
    3225787,
    3225788
  ],
  "house_ids": [
    3225787,
    3225786,
    3225785
  ],
  "from": "2023-03-01 10:56:15",
  "to": "2023-03-02 07:20:50"
}
200 OK

История помещения

Response type
object
response: array

(no description)

401 Unauthorized

Требуется авторизация

Response type
object
error:

(no description)

422 Unprocessable Entity

Переданы некорректные данные

Response type
string[]
Response Content-Type: application/json
Response Example (200 OK)
{
  "response": [
    {
      "action": "Adding an object to a deal",
      "actionKey": "ADD_PROPERTY",
      "date": "1562766475",
      "propertyStatus": "Free",
      "propertyStatusKey": "AVAILABLE",
      "dealStatus": "Первичный контакт",
      "dealId": "6928063",
      "dealName": "Deal 1",
      "responsibleName": "Ivanov Ivan",
      "responsibleId": "3634981",
      "contactName": "Petr Petrov",
      "contactPhone": "+79221111111",
      "contactId": "17675313",
      "propertyId": "248301"
    }
  ]
}
Response Example (401 Unauthorized)
{
  "error": {
    "code": 401,
    "message": "Unauthorized"
  }
}
Response Example (422 Unprocessable Entity)
[
  "string"
]

statuses

Метод получения списка статусов для crm, или конкретного статуса по id

GET /custom-status/list

Метод получения списка статусов для crm, или конкретного статуса по id

crm: string
in query

Идентификатор crm (amo, bitrix)

id: string
in query

Идентификатор кастомного статуса

200 OK
Response type
object
id: string

Идентификатор статуса

name: string

Текстовое название статуса

color: string

Цвет в формате HEX

baseStatus: string

Базовый статус: AVAILABLE, BOOKED, UNAVAILABLE, SOLD

isProtected: boolean

Базовый статус или нет

alias: string

Текстовой идентификатор статуса

401 Unauthorized

Требуется авторизация

Response type
object
error:

(no description)

Response Content-Type: application/json
Response Example (200 OK)
{
  "id": "12",
  "name": "Временная бронь",
  "color": "#63cba5",
  "baseStatus": "BOOKED",
  "isProtected": false,
  "alias": "BOOKED_amo_5de231eb3d9fd"
}
Response Example (401 Unauthorized)
{
  "error": {
    "code": 401,
    "message": "Unauthorized"
  }
}

filter

Метод для получения списка отображаемых в виджете фильтров

GET /filter

Метод для получения списка отображаемых в виджете фильтров

Список фильтров для виджета

Response type
401 Unauthorized

Требуется авторизация

Response type
object
error:

(no description)

404 Not Found

Не найден виджет

Response type
object
error:

(no description)

Response Content-Type: application/json
Response Example (200 OK)
[
  {
    "name": "facing",
    "view": "standard"
  }
]
Response Example (401 Unauthorized)
{
  "error": {
    "code": 401,
    "message": "Unauthorized"
  }
}
Response Example (404 Not Found)
{
  "error": {
    "code": 404,
    "message": "Not Found"
  }
}

Метод для получения списка доступных отделок для отображения в фильтре по отделке

GET /filter/facings

Метод для получения списка доступных отделок для отображения в фильтре по отделке

houseId: integer[]
in query

Идентификаторы домов

200 OK

Cписок доступных отделок для отображения в фильтре по отделке

Response type
object
success: boolean

(no description)

data: array

(no description)

401 Unauthorized

Требуется авторизация

Response type
object
error:

(no description)

Response Content-Type: application/json
Response Example (200 OK)
{
  "success": true,
  "data": [
    "Чистовая",
    "Без отделки"
  ]
}
Response Example (401 Unauthorized)
{
  "error": {
    "code": 401,
    "message": "Unauthorized"
  }
}

Получить характеристики для фильтра

GET /filter/property-specifications

Получить список выбираемых характеристик для фильтра виджета

Список характеристик по фильтрам виджета

401 Unauthorized

Требуется авторизация

Response type
object
error:

(no description)

404 Not Found

Виджет не найден

Response type
object
error:

(no description)

Response Content-Type: application/json
Response Example (200 OK)
[
  {
    "filterName": "propertyNumber",
    "filterSpecifications": [
      "terrace",
      "wardrobe"
    ]
  }
]
Response Example (401 Unauthorized)
{
  "error": {
    "code": 401,
    "message": "Unauthorized"
  }
}
Response Example (404 Not Found)
{
  "error": {
    "code": 404,
    "message": "Not Found"
  }
}

property-specification

Метод получения списка характеристик для помещений с количеством аналогичных помещений в доме

GET /property-specification

Метод получения списка характеристик для помещений с количеством аналогичных помещений в доме

propertyIds: integer[]
in query

Идентификаторы помещений

200 OK

Список характеристик для каждого помещения

Response type
object
success: boolean

(no description)

data: array

(no description)

401 Unauthorized

Требуется авторизация

Response type
object
error:

(no description)

Response Content-Type: application/json
Response Example (200 OK)
{
  "success": true,
  "data": [
    {
      "propertyId": 3536848,
      "specs": [
        {
          "label": "Большая прихожая",
          "image": "string",
          "description": "string",
          "countAtHome": "integer"
        }
      ]
    }
  ]
}
Response Example (401 Unauthorized)
{
  "error": {
    "code": 401,
    "message": "Unauthorized"
  }
}

Получить список всех характеристик

GET /property-specification/list

Получить список характеристик для помещений на аккаунте

Список характеристик

401 Unauthorized

Требуется авторизация

Response type
object
error:

(no description)

Response Content-Type: application/json
Response Example (200 OK)
[
  {
    "alias": "sunny-side",
    "label": "Солнечная сторона",
    "image": "string",
    "description": "string"
  }
]
Response Example (401 Unauthorized)
{
  "error": {
    "code": 401,
    "message": "Unauthorized"
  }
}

Получить характеристики по дому

GET /property-specification/house

Получить список характеристик помещений по дому

houseId: integer
in query

Идентификатор дома

Список характеристик по дому

401 Unauthorized

Требуется авторизация

Response type
object
error:

(no description)

404 Not Found

Дом не найден

Response type
object
error:

(no description)

422 Unprocessable Entity

Переданы некорректные данные

Response type
string[]
Response Content-Type: application/json
Response Example (200 OK)
[
  {
    "propertyIds": [
      1,
      2,
      3
    ],
    "alias": "sunny-side",
    "label": "Солнечная сторона",
    "image": "string",
    "description": "string"
  }
]
Response Example (401 Unauthorized)
{
  "error": {
    "code": 401,
    "message": "Unauthorized"
  }
}
Response Example (404 Not Found)
{
  "error": {
    "code": 401,
    "message": "Unauthorized"
  }
}
Response Example (422 Unprocessable Entity)
[
  "string"
]

queue-reserve

Метод получения списка очереди бронирования по указанному помещению

GET /queue-reserve/list

Метод получения списка очереди бронирования по указанному помещению

propertyId: integer
in query

Идентификатор помещения

200 OK

Получен список

Response type
object[]
401 Unauthorized

Требуется авторизация

Response type
object
error:

(no description)

Response Content-Type: application/json
Response Example (200 OK)
[
  {
    "id": 23432423,
    "propertyId": 34536,
    "userId": 23423,
    "deal": {
      "id": "142",
      "name": "Сделка",
      "status": {
        "color": "#000000",
        "name": "Новый контакт"
      },
      "manager": {
        "id": "2423",
        "fullName": "ФИО"
      },
      "client": {
        "id": "2423",
        "fullName": "ФИО",
        "phone": "79059009900"
      }
    },
    "crm": "amo",
    "rank": "2"
  }
]
Response Example (401 Unauthorized)
{
  "error": {
    "code": 401,
    "message": "Unauthorized"
  }
}

Метод для удаления сделки из очереди бронирования

POST /queue-reserve/delete

Метод для удаления сделки из очереди бронирования

id: integer
in query

Идентификатор элемента очереди (id)

200 OK

Элемент удален

Response type
object
success: boolean

(no description)

401 Unauthorized

Требуется авторизация

Response type
object
error:

(no description)

Response Content-Type: application/json
Response Example (200 OK)
{
  "success": true
}
Response Example (401 Unauthorized)
{
  "error": {
    "code": 401,
    "message": "Unauthorized"
  }
}

Метод для добавления сделки в очередь бронирования

POST /queue-reserve

Метод для добавления сделки в очередь бронирования

propertyId: integer

Идентификатор помещения (id)

dealId: string|integer

Идентификатор сделки CRM (id)

Request Content-Type: application/json
Request Example
{
  "propertyId": 12456,
  "dealId": "124234"
}
200 OK

Элемент добавлен

Response type
object
success: boolean

(no description)

401 Unauthorized

Требуется авторизация

Response type
object
error:

(no description)

Response Content-Type: application/json
Response Example (200 OK)
{
  "success": true
}
Response Example (401 Unauthorized)
{
  "error": {
    "code": 401,
    "message": "Unauthorized"
  }
}

Метод для изменения порядка сделок в очереди бронирования

POST /queue-reserve/change-position

Метод для изменения порядка сделок в очереди бронирования

queueId: integer

Первый идентификатор элемента очереди (id)

queueDropId: integer

Второй идентификатор элемента очереди (id)

Request Content-Type: application/json
Request Example
{
  "queueId": 12456,
  "queueDropId": 124
}
200 OK

Первый элемент очереди и второй элемент очереди успешно изменены

Response type
object
success: boolean

(no description)

401 Unauthorized

Требуется авторизация

Response type
object
error:

(no description)

Response Content-Type: application/json
Response Example (200 OK)
{
  "success": true
}
Response Example (401 Unauthorized)
{
  "error": {
    "code": 401,
    "message": "Unauthorized"
  }
}

render

Метод получения списка генпланов

GET /render

Метод получения списка генпланов

projectId: integer
in query

Ид ЖК

200 OK

Список генпланов

Response type
object[]
401 Unauthorized

Требуется авторизация

Response type
object
error:

(no description)

Response Content-Type: application/json
Response Example (200 OK)
[
  {
    "id": 156,
    "image": "https://pbXXX.profitbase.ru/media/cache/resolve/blurred_render/uploads/render/3/5c8f9023d0875.jpg",
    "name": "01012002_03-1",
    "projectId": 14543,
    "index": 3,
    "areaColor": "#fa8174",
    "areaOpacity": 10,
    "areas": [
      {
        "id": 101348,
        "coordinates": [
          [
            644.42114257812,
            299.79376060313
          ]
        ]
      }
    ]
  }
]
Response Example (401 Unauthorized)
{
  "error": {
    "code": 401,
    "message": "Unauthorized"
  }
}

special-offer

Метод получения списка активных акции со списком помещений по каждой акции

GET /special-offer

Метод получения списка активных акции со списком помещений по каждой акции

200 OK

Список акций

Response type
401 Unauthorized

Требуется авторизация

Response type
object
error:

(no description)

Response Content-Type: application/json
Response Example (200 OK)
[
  {
    "id": 2170,
    "name": "Акция 1",
    "archive": false,
    "color": "#fa8174",
    "description": "Описсание",
    "descriptionActive": false,
    "startDate": {
      "date": "2019-02-01 00:00:00.000000",
      "timezone_type": "3",
      "timezone": "Asia/Yekaterinburg"
    },
    "finishDate": {
      "date": "2019-02-25 00:00:00.000000",
      "timezone_type": "3",
      "timezone": "Asia/Yekaterinburg"
    },
    "badge": {
      "icon": "percent",
      "label": "Акция"
    },
    "banner": {
      "active": true,
      "text": "Текст баннера",
      "buttonText": "Забронировать"
    },
    "discount": {
      "active": true,
      "type": "FULL_PRICE",
      "unit": "PERCENT",
      "value": 10,
      "description": "Установлена скидка -10% от полной стоимости",
      "humanizedType": "от полной стоимости",
      "humanizedUnit": "%"
    },
    "propertyIds": [
      3244361,
      3244364
    ]
  }
]
Response Example (401 Unauthorized)
{
  "error": {
    "code": 401,
    "message": "Unauthorized"
  }
}

stock-version

Получить изменения по версиям

POST /versions/find

Получить список изменений в параметрах помещений по версиям

(no description)

Request Content-Type: application/json
Request Example
{
  "ids": [
    12345,
    12346
  ],
  "fields": [
    "price",
    "status"
  ]
}

Список изменений

401 Unauthorized

Требуется авторизация

Response type
object
error:

(no description)

403 Forbidden

Доступ запрещен

422 Unprocessable Entity

Ошибка валидации данных

Response Content-Type: application/json
Response Example (200 OK)
{
  "versions": [
    {
      "id": 12345,
      "diffs": [
        {
          "propertyId": 12345,
          "field": "price",
          "prevValue": "2000000",
          "value": "2500000"
        }
      ]
    }
  ]
}
Response Example (401 Unauthorized)
{
  "error": {
    "code": 401,
    "message": "Unauthorized"
  }
}
Response Example (403 Forbidden)
{
  "message": "Something failed."
}
Response Example (422 Unprocessable Entity)
{
  "errors": [
    {
      "property": "ids",
      "message": "You must specify at least one version ID."
    }
  ],
  "message": "Something failed."
}

Schema Definitions

Error:

code: integer (int32)
message: string
Example
{
  "code": 401,
  "message": "Unauthorized"
}

CrmDeal: object

id: integer
name: string
status: object
color: string
name: string
id: string
isBindedToPropertyStatus: boolean

Сопоставлен ли статус CRM со статусом помещения

manager: object
id: integer
fullName: string
client: object
id: integer
fullName: string
phone: string
Example
{
  "id": 132,
  "name": "Сделка ЖК",
  "status": {
    "color": "#99ccff",
    "name": "Первичный контакт",
    "id": "30953311",
    "isBindedToPropertyStatus": true
  },
  "manager": {
    "id": 53463,
    "fullName": "Кирилл Александрович Гануленко"
  },
  "client": {
    "id": 242,
    "fullName": "Наталья Сергеевна",
    "phone": "=70136667755"
  }
}

CustomStatus: object

id: integer

Идентификатор статуса

name: string

Текстовое название статуса

color: string

Цвет в формате HEX

baseStatus: string AVAILABLE, BOOKED, UNAVAILABLE, SOLD

Базовый статус: AVAILABLE, BOOKED, UNAVAILABLE, SOLD

isProtected: boolean

Базовый статус или нет

alias: string

Текстовой идентификатор статуса

Example
{
  "id": 1,
  "name": "Свободно",
  "color": "#63cba5",
  "baseStatus": "AVAILABLE",
  "isProtected": "true",
  "alias": "BOOKED_amo_5de231eb3d9fd"
}

FilterResponse: object

name: string

Название

view: string

Вид

Example
{
  "name": "facing",
  "view": "standard"
}

FilterPropertySpecificationResponse: object

filterName: string

Название фильтра

filterSpecifications: string[]

Характеристики фильтра

string
Example
{
  "filterName": "propertyNumber",
  "filterSpecifications": [
    "terrace",
    "wardrobe"
  ]
}

NotFoundError:

code: integer (int32)
message: string
Example
{
  "code": 404,
  "message": "Not Found"
}

HouseResponse:

id: integer
type: string APARTMENT, OFFICE, PARKING, RESIDENTIAL

Тип строения

Example
{
  "projectId": 1,
  "projectName": "Новомосковский",
  "isArchive": true,
  "title": "Корпус 1",
  "street": "Краснолесья",
  "number": "71А",
  "facing": "Чистовая",
  "material": "Монолит",
  "buildingState": "BUILT",
  "developmentStartQuarter": {
    "year": 2015,
    "quarter": 1
  },
  "developmentEndQuarter": {
    "year": 2015,
    "quarter": 1
  },
  "salesStart": {
    "month": "02",
    "year": "2018"
  },
  "salesEnd": {
    "month": "02",
    "year": "2018"
  },
  "id": 10,
  "type": "APARTMENT"
}

GetHouse: object

projectId: integer

Идентификатор ЖК

projectName: string

Название ЖК

isArchive: boolean

Архив

title: string

Название

street: string

Улица

number: string

Номер

facing: string

Отделка

material: string

Материал

buildingState: string UNFINISHED, BUILT, HAND-OVER

Стадия строительства

developmentStartQuarter: developmentQuarter
developmentEndQuarter: developmentQuarter
salesStart: salesPeriod
salesEnd: salesPeriod
Example
{
  "projectId": 1,
  "projectName": "Новомосковский",
  "isArchive": true,
  "title": "Корпус 1",
  "street": "Краснолесья",
  "number": "71А",
  "facing": "Чистовая",
  "material": "Монолит",
  "buildingState": "BUILT",
  "developmentStartQuarter": {
    "year": 2015,
    "quarter": 1
  },
  "developmentEndQuarter": {
    "year": 2015,
    "quarter": 1
  },
  "salesStart": {
    "month": "02",
    "year": "2018"
  },
  "salesEnd": {
    "month": "02",
    "year": "2018"
  }
}

developmentQuarter: object

year: number
quarter: number
Example
{
  "year": 2015,
  "quarter": 1
}

salesPeriod: object

month: string
year: string
Example
{
  "month": "02",
  "year": "2018"
}

HouseImage: object

name: string
type: string base64, url

Тип вложения

data: string
Example
{
  "name": "Дом.jpg",
  "type": "url",
  "data": "https://m-files-new.cdnvideo.ru/lpfile/2/e/2/2e2d974a3a129c42761d7ec906be1a72.png"
}

House: object

project_id: integer

Идентификатор ЖК

title: string

Название

street: string

Улица

number: string

Номер

facing: string

Отделка

material: string

Материал

building_state: string UNFINISHED, BUILT, HAND-OVER

Стадия строительства

developmentStartQuarter: developmentQuarter
developmentEndQuarter: developmentQuarter
image: HouseImage
Example
{
  "project_id": 1,
  "title": "Корпус 1",
  "street": "Краснолесья",
  "number": "71А",
  "facing": "Чистовая",
  "material": "Монолит",
  "building_state": "BUILT",
  "developmentStartQuarter": {
    "year": 2015,
    "quarter": 1
  },
  "developmentEndQuarter": {
    "year": 2015,
    "quarter": 1
  },
  "image": {
    "name": "Дом.jpg",
    "type": "url",
    "data": "https://m-files-new.cdnvideo.ru/lpfile/2/e/2/2e2d974a3a129c42761d7ec906be1a72.png"
  }
}

HouseSearchResponse: object

id: integer

Идентификатор дома

name: string

Название

address: string

Полный адрес

developer: string

Название застройщика

Example
{
  "id": 1,
  "name": "Корпус 1",
  "address": "Екатеринбург, Свердловская область, Краснолесья, 71А",
  "developer": "Солнечный ключ"
}

Preset: object

id: number
url: string
code: string

Код планировки

attachments: PresetAttachments
PresetAttachments
Example
{
  "id": "number",
  "url": "https://pbXXX.profitbase.ru/uploads/preset/image.jpg",
  "code": "string",
  "attachments": [
    {
      "id": "number",
      "type": "panorama - 3d тур",
      "code": "string",
      "parameters": {
        "url": "string",
        "isEnabled": "boolean",
        "uid": "string",
        "type": "string"
      }
    }
  ]
}

PresetAttachments: object

Дополнительное отображение планировки

id: number
type: string

Способ отображения

code: string

Код планировки

parameters: object

Набор параметров отображения

url: string

Url адрес 3d тура

isEnabled: boolean

Признак активности представления в Profitbase

uid: string
type: string

Название сервиса-конструктора 3D тура

Example
{
  "id": "number",
  "type": "panorama - 3d тур",
  "code": "string",
  "parameters": {
    "url": "string",
    "isEnabled": "boolean",
    "uid": "string",
    "type": "string"
  }
}

PresetResponse: object

id: integer
code: string
projectName: string
houseName: string
houseId: integer
isHouseArchive: boolean
isWithoutLayout: boolean
isStudio: boolean
isEuroLayout: boolean
isFreeLayout: boolean
roomsAmount: integer
hidePrice: boolean
priceRange: object
min: number
max: number
areaRange: object
min: number
max: number
attachments: PresetAttachments
PresetAttachments
properties: integer[]
integer
address: object
full: string
locality: string
district: string
region: string
street: string
number: string
image: object

Содержит основное изображение планировки

source: string
big: string
preview: string
small: string
imageName: string
planImages: object[]

Содержит все изображения планировки, включая основное

object
source: string
big: string
preview: string
small: string
imageName: string
lightSideAngle: integer

Угол стороны света

isLightSideVisible: boolean

Отображать ли сторону света

countFilteredProperty: integer
Example
{
  "id": "1",
  "code": "193164-1",
  "projectName": "Новомосковский",
  "houseName": "Объект",
  "houseId": 870,
  "isHouseArchive": true,
  "isWithoutLayout": true,
  "isStudio": false,
  "isEuroLayout": false,
  "isFreeLayout": false,
  "roomsAmount": 20,
  "hidePrice": false,
  "priceRange": {
    "min": "860000",
    "max": "860000"
  },
  "areaRange": {
    "min": "200",
    "max": "200"
  },
  "attachments": [
    {
      "id": "number",
      "type": "panorama - 3d тур",
      "code": "string",
      "parameters": {
        "url": "string",
        "isEnabled": "boolean",
        "uid": "string",
        "type": "string"
      }
    }
  ],
  "properties": [
    [
      "248408",
      "248422"
    ]
  ],
  "address": {
    "full": "Екатеринбург, Ленинский район, Свердловская область",
    "locality": "Екатеринбург",
    "district": "Ленинский район",
    "region": "Свердловская область",
    "street": "Ленина",
    "number": "48"
  },
  "image": {
    "source": "https://pbXXX.profitbase.ru/uploads/preset/3/07cfa5704b48d25e0ba50a52d4c1a414.jpg",
    "big": "https://pbXXX.profitbase.ru/media/cache/resolve/apartment_1200_700/uploads/preset/3/07cfa5704b48d25e0ba50a52d4c1a414.jp",
    "preview": "https://pbXXX.profitbase.ru/media/cache/resolve/apartment_x_240/uploads/preset/3/07cfa5704b48d25e0ba50a52d4c1a414.jpg",
    "small": "https://pbXXX.profitbase.ru/media/cache/resolve/apartment_x_240/uploads/preset/3/07cfa5704b48d25e0ba50a52d4c1a414.jpg",
    "imageName": "Вид сверху"
  },
  "planImages": [
    {
      "source": "https://pbXXX.profitbase.ru/uploads/preset/3/77b904fc0df6b19ca00372c4298103c1.jpg",
      "big": "https://pbXXX.profitbase.ru/media/cache/resolve/apartment_1200_700/uploads/preset/3/77b904fc0df6b19ca00372c4298103c1.jpg",
      "preview": "https://pbXXX.profitbase.ru/media/cache/resolve/apartment_x_240/uploads/preset/3/77b904fc0df6b19ca00372c4298103c1.jpg",
      "small": "https://pbXXX.profitbase.ru/media/cache/resolve/apartment_x_240/uploads/preset/3/77b904fc0df6b19ca00372c4298103c1.jpg",
      "imageName": "Вид сверху"
    }
  ],
  "lightSideAngle": 180,
  "isLightSideVisible": false,
  "countFilteredProperty": 2
}

ProjectResponse:

id: integer
Example
{
  "title": "Новомосковский",
  "type": "complex",
  "archiveState": "NOT_ARCHIVED",
  "region": "Свердловская область",
  "district": "Ленинский район",
  "currency": "RUB",
  "locality": "Екатеринбург",
  "developer": "СтройСуперЗастрой",
  "developer_brand": "СтройСуперЗастрой",
  "banks": "Ребсбанк",
  "image": {
    "name": "Дом.jpg",
    "type": "url",
    "data": "https://m-files-new.cdnvideo.ru/lpfile/2/e/2/2e2d974a3a129c42761d7ec906be1a72.png"
  },
  "id": 10
}

Project: object

title: string

Название

type: string complex, district, quarter

Тип комплекса: ЖК, Район, Квартал

archiveState: string ARCHIVED, PARTIALLY_ARCHIVED, NOT_ARCHIVED

Состояние архивации ЖК

region: string

Регион

district: string

Район

currency: string RUB, UAH, EUR, KZT, USD

Валюта

locality: string

Населенный пункт

developer: string

Застройщик (Поле устаревшее)

developer_brand: string

Бренд застройщика

banks: string

Аккредитованные банки

image: ProjectImage
Example
{
  "title": "Новомосковский",
  "type": "complex",
  "archiveState": "NOT_ARCHIVED",
  "region": "Свердловская область",
  "district": "Ленинский район",
  "currency": "RUB",
  "locality": "Екатеринбург",
  "developer": "СтройСуперЗастрой",
  "developer_brand": "СтройСуперЗастрой",
  "banks": "Ребсбанк",
  "image": {
    "name": "Дом.jpg",
    "type": "url",
    "data": "https://m-files-new.cdnvideo.ru/lpfile/2/e/2/2e2d974a3a129c42761d7ec906be1a72.png"
  }
}

ProjectImage: object

name: string
type: string base64, url

Тип вложения

data: string
Example
{
  "name": "Дом.jpg",
  "type": "url",
  "data": "https://m-files-new.cdnvideo.ru/lpfile/2/e/2/2e2d974a3a129c42761d7ec906be1a72.png"
}

ProjectsSearchResponse: object

id: integer

Идентификатор ЖК

name: string

Название ЖК

location: string

Город

district: string

Район

developer: string

Название застройщика

Example
{
  "id": 1,
  "name": "ЖК Солнечный",
  "location": "Екатеринбург",
  "district": "Ленинский район",
  "developer": "Солнечный ключ"
}

Property: object

house_id: integer

Идентификатор дома

number: string

Номер

property_type: PropertyType

Тип помещения (по умолчанию property)

rooms_amount: integer

Количество комнат

section: string

Подъезд

floor: integer

Этаж

without_layout: boolean

Без планировки

studio: boolean

Студия

free_layout: boolean

Свободная планировка

euro_layout: boolean

Европланировка

area: Area
status: Status
development_start_quarter: developmentQuarter
price: Price
sales_start: salesPeriod
attributes: Attributes
Example
{
  "house_id": 1,
  "number": "606",
  "property_type": "string",
  "rooms_amount": 3,
  "section": "1",
  "floor": 11,
  "without_layout": false,
  "studio": false,
  "free_layout": false,
  "euro_layout": false,
  "area": {
    "area_total": 60.2,
    "area_estimated": 60.2,
    "area_living": 60.2,
    "area_kitchen": 60.2
  },
  "status": "AVAILABLE",
  "development_start_quarter": {
    "year": 2015,
    "quarter": 1
  },
  "price": {
    "value": 3200000
  },
  "sales_start": {
    "month": "02",
    "year": "2018"
  },
  "attributes": {
    "loggia_count": 1,
    "balcony_count": 1,
    "combined_bathroom_count": 1,
    "separated_bathroom_count": 0,
    "bti_number": "1",
    "window_view": "1",
    "position_on_floor": 1,
    "description": "Самая лучшая квартира на этаже",
    "code": "1K42",
    "facing": "В горошек"
  }
}

Area: object

area_total: number

Общая площадь

area_estimated: number

Площадь расчетная

area_living: number

Площадь жилая

area_kitchen: number

Площадь кухни

Example
{
  "area_total": 60.2,
  "area_estimated": 60.2,
  "area_living": 60.2,
  "area_kitchen": 60.2
}

PropertyType: string

Тип помещения

string property, apartment, parking, office, pantry, storage, commercial_premises, free_destination, townhouse, villa, penthouse

Price: object

value: number
Example
{
  "value": 3200000
}

Attributes: object

loggia_count: integer

Количество лоджий

balcony_count: integer

Количество балконов

combined_bathroom_count: integer

Количество совмещенных санузлов

separated_bathroom_count: integer

Количество раздельных санузлов

bti_number: string

Номер по БТИ

window_view: string

Окна выходят

position_on_floor: integer

Номер на этаже

description: string

Описание помещения

code: string

Код планировки

facing: string

Отделка

Example
{
  "loggia_count": 1,
  "balcony_count": 1,
  "combined_bathroom_count": 1,
  "separated_bathroom_count": 0,
  "bti_number": "1",
  "window_view": "1",
  "position_on_floor": 1,
  "description": "Самая лучшая квартира на этаже",
  "code": "1K42",
  "facing": "В горошек"
}

PropertyResponse:

id: integer
house_id: integer

Идентификатор дома

number: string

Номер

rooms_amount: number

Количество комнат

section: string

Подъезд

floor: number

Этаж

without_layout: boolean

Без плаинровки

studio: boolean

Студия

free_layout: boolean

Свободная планировка

euro_layout: boolean

Европланировка

area: Area
status: Status
price: Price
attributes: Attributes
status_change_set: StatusChangeLogRecord

Статус: AVAILABLE, BOOKED, EXECUTION, UNAVAILABLE, SOLD

StatusChangeLogRecord
preset_id: string

url адрес планировки

custom_fields: object[]
object

Запись о смене статуса помещения

id: string
name: string
value: number
Example
{
  "id": 10,
  "house_id": 10,
  "number": 606,
  "rooms_amount": 3,
  "section": "1",
  "floor": 11,
  "without_layout": false,
  "studio": false,
  "free_layout": false,
  "euro_layout": false,
  "area": {
    "area_total": 60.2,
    "area_estimated": 60.2,
    "area_living": 60.2,
    "area_kitchen": 60.2
  },
  "status": "AVAILABLE",
  "price": {
    "value": 3200000
  },
  "attributes": {
    "loggia_count": 1,
    "balcony_count": 1,
    "combined_bathroom_count": 1,
    "separated_bathroom_count": 0,
    "bti_number": "1",
    "window_view": "1",
    "position_on_floor": 1,
    "description": "Самая лучшая квартира на этаже",
    "code": "1K42",
    "facing": "В горошек"
  },
  "status_change_set": [
    {
      "id": "integer",
      "property_id": "integer",
      "previus_value": "AVAILABLE",
      "current_value": "BOOKED",
      "user_id": "integer",
      "changed_at": {
        "date": "string",
        "timezone_type": "integer",
        "timezone": "string"
      }
    }
  ],
  "preset_id": "string",
  "custom_fields": [
    {
      "id": "pbcf_5bdae1ed43d69",
      "name": "Номер помещения для БТИ",
      "value": 84
    }
  ]
}

PropertyFullResponse:

id: integer
house_id: integer

Идентификатор дома

number: string

Номер

rooms_amount: number

Количество комнат

floor: number

Этаж

without_layout: boolean

Без планировки

studio: boolean

Студия

free_layout: boolean

Свободная планировка

euro_layout: boolean

Европланировка

propertyType: string

Тип помещения

typePurpose: string

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

area: Area
houseName: string

Дом 1

sectionName: string

2й подъезд

projectName: string

ЖК Сверистелькино

specialOffers: integer[]
integer
address: string

эт. 1 № 18

section: string

2й подъезд

attributes: Attributes
custom_fields: Field
Field
status: Status
price: Price
Example
{
  "id": 10,
  "house_id": 10,
  "number": 606,
  "rooms_amount": 3,
  "floor": 11,
  "without_layout": false,
  "studio": false,
  "free_layout": false,
  "euro_layout": false,
  "propertyType": "property",
  "typePurpose": "residential",
  "area": {
    "area_total": 60.2,
    "area_estimated": 60.2,
    "area_living": 60.2,
    "area_kitchen": 60.2
  },
  "houseName": "1",
  "sectionName": "1",
  "projectName": "1",
  "specialOffers": [
    23,
    45
  ],
  "address": "1",
  "section": "1",
  "attributes": {
    "loggia_count": 1,
    "balcony_count": 1,
    "combined_bathroom_count": 1,
    "separated_bathroom_count": 0,
    "bti_number": "1",
    "window_view": "1",
    "position_on_floor": 1,
    "description": "Самая лучшая квартира на этаже",
    "code": "1K42",
    "facing": "В горошек"
  },
  "custom_fields": [
    {
      "id": 1,
      "key": "pbcf_5c5bfff299292",
      "name": "Номер помещения для БТИ",
      "type": "text"
    }
  ],
  "status": "AVAILABLE",
  "price": {
    "value": 3200000
  }
}

StatusChangeLogRecord: object

Запись о смене статуса помещения

id: integer
property_id: integer

Идентификатор помещения

previus_value: string

Предыдущее значение

current_value: string

Новое значение

user_id: integer

Идентификатор пользователя сменивший статус

changed_at: object

Дата изменения статуса

date: string

Дата и время

timezone_type: integer
timezone: string

Часовой пояс

Example
{
  "id": "integer",
  "property_id": "integer",
  "previus_value": "AVAILABLE",
  "current_value": "BOOKED",
  "user_id": "integer",
  "changed_at": {
    "date": "string",
    "timezone_type": "integer",
    "timezone": "string"
  }
}

PaymentType: string

Тип оплаты. (FULL - 100%, INSTALLMENT - рассрочка, MORTGAGE - ипотека)

string FULL, INSTALLMENT, MORTGAGE

Status: string

Статус: AVAILABLE, BOOKED, EXECUTION, UNAVAILABLE, SOLD

string AVAILABLE, BOOKED, EXECUTION, UNAVAILABLE, SOLD

Field: object

id: integer
key: string
name: string
type: string
Example
{
  "id": 1,
  "key": "pbcf_5c5bfff299292",
  "name": "Номер помещения для БТИ",
  "type": "text"
}

CustomField: object

id: integer
key: string
name: string
rank: integer
type: string
specificationName: string
Example
{
  "id": 1,
  "key": "pbcf_5c5bfff299292",
  "name": "Номер помещения для БТИ",
  "rank": "1",
  "type": "text",
  "specificationName": "kitchen-living-room"
}

SystemField: object

id: integer
key: string
name: string
rank: integer
type: string
specificationName: string
Example
{
  "id": 146248,
  "key": "id",
  "name": "ID помещения",
  "rank": "2",
  "type": "text",
  "specificationName": "null"
}

Property_new: object

id: integer
house_id: integer
number: string
rooms_amount: integer
floor: integer
without_layout: boolean
studio: boolean
free_layout: boolean
euro_layout: boolean
propertyType: string
typePurpose: string
area: Area
houseName: string
isHouseArchive: boolean
sectionName: string
projectName: string
specialOffers: SpecialOffers
SpecialOffers
address: string
section: string
preset: string

Содержит основное изображение планировки

isLightSideVisible: boolean

Отображение сторон света

lightSideAngle: integer

Угол наклона

externalId: string
attachments: PresetAttachments
PresetAttachments
planImages: object[]

Содержит все изображения планировки, включая основное

object
image_name: string
source: string
attributes: Attributes
custom_fields: object[]
object
id: string
name: string
value: string
price: Price
status: string
responsibleName: string
responsibleId: string
crmContactName: string
crmContactId: string
countHistoryRecord: string
countDeals: integer
bookedUntilDate: string
Example
{
  "id": 248408,
  "house_id": 873,
  "number": "1",
  "rooms_amount": 200,
  "floor": 2,
  "without_layout": false,
  "studio": false,
  "free_layout": false,
  "euro_layout": false,
  "propertyType": "property",
  "typePurpose": "residential",
  "area": {
    "area_total": 60.2,
    "area_estimated": 60.2,
    "area_living": 60.2,
    "area_kitchen": 60.2
  },
  "houseName": "Дом 1",
  "isHouseArchive": true,
  "sectionName": "Подъезд 14",
  "projectName": "Новомосковский",
  "specialOffers": [
    {
      "id": 2170,
      "name": "Акция 1",
      "archive": false,
      "color": "#fa8174",
      "description": "Описсание",
      "descriptionActive": false,
      "startDate": {
        "date": "2019-02-01 00:00:00.000000",
        "timezone_type": "3",
        "timezone": "Asia/Yekaterinburg"
      },
      "finishDate": {
        "date": "2019-02-25 00:00:00.000000",
        "timezone_type": "3",
        "timezone": "Asia/Yekaterinburg"
      },
      "badge": {
        "icon": "percent",
        "label": "Акция"
      },
      "banner": {
        "active": true,
        "text": "Текст баннера",
        "buttonText": "Забронировать"
      },
      "discount": {
        "active": true,
        "type": "FULL_PRICE",
        "unit": "PERCENT",
        "value": 10,
        "description": "Установлена скидка -10% от полной стоимости",
        "humanizedType": "от полной стоимости",
        "humanizedUnit": "%"
      },
      "propertyIds": [
        3244361,
        3244364
      ]
    }
  ],
  "address": "Екатеринбург, Ленинский район, Свердловская область - эт. 2 № 1",
  "section": "Подъезд 14",
  "preset": "https://pbXXX.profitbase.ru/uploads/preset/3/07cfa5704b48d25e0ba50a52d4c1a414.jpg",
  "isLightSideVisible": "true",
  "lightSideAngle": "0",
  "externalId": "dp-1488",
  "attachments": [
    {
      "id": "number",
      "type": "panorama - 3d тур",
      "code": "string",
      "parameters": {
        "url": "string",
        "isEnabled": "boolean",
        "uid": "string",
        "type": "string"
      }
    }
  ],
  "planImages": [
    {
      "image_name": "Вид второго этажа",
      "source": "https://pbXXX.profitbase.ru/uploads/preset/3/77b904fc0df6b19ca00372c4298103c1.jpg"
    }
  ],
  "attributes": {
    "loggia_count": 1,
    "balcony_count": 1,
    "combined_bathroom_count": 1,
    "separated_bathroom_count": 0,
    "bti_number": "1",
    "window_view": "1",
    "position_on_floor": 1,
    "description": "Самая лучшая квартира на этаже",
    "code": "1K42",
    "facing": "В горошек"
  },
  "custom_fields": [
    {
      "id": "pbcf_5c5bfff299292",
      "name": "Номер помещения для БТИ",
      "value": "4353435"
    }
  ],
  "price": {
    "value": 3200000
  },
  "status": "BOOKED",
  "responsibleName": "Test",
  "responsibleId": "2",
  "crmContactName": "contact@amo.ru"
}

PresetImage: object

Изображение планировки

name: string

Название планировки, поле обязательное для типов base64 и url

type: string base64, url, preset

Тип изображения

data: string

Данные в зависимости от типа

Example
{
  "name": "№606",
  "type": "url",
  "data": "string"
}

PropertySpecificationsResponse: object

propertyId: integer
specs: object[]
object
label: string

Название характеристики

image: string

Ссылка на изображение

description: string

Описание характеристики

countAtHome: integer

Количество помещений в доме с такой же характеристикой

Example
{
  "propertyId": 3536848,
  "specs": [
    {
      "label": "Большая прихожая",
      "image": "string",
      "description": "string",
      "countAtHome": "integer"
    }
  ]
}

PropertySpecificationsListResponse: object

alias: string

Псевдоним характеристики

label: string

Название характеристики

image: string

Ссылка на изображение характеримтики

description: string

Описание характеристики

Example
{
  "alias": "sunny-side",
  "label": "Солнечная сторона",
  "image": "string",
  "description": "string"
}

PropertySpecificationHouseListResponse:

propertyIds: integer[]

Идентификаторы помещений

integer
Example
{
  "propertyIds": [
    1,
    2,
    3
  ],
  "alias": "sunny-side",
  "label": "Солнечная сторона",
  "image": "string",
  "description": "string"
}

SpecialOffers: object

id: integer
name: string
archive: boolean
color: string
description: string
descriptionActive: boolean
startDate: object
date: string
timezone_type: integer
timezone: string
finishDate: object
date: string
timezone_type: integer
timezone: string
badge: object
icon: string
label: string
banner: object
active: boolean
text: string
buttonText: string
discount: object
active: boolean
type: string
unit: string
value: integer
description: string
humanizedType: string
humanizedUnit: string
propertyIds: integer[]
integer
Example
{
  "id": 2170,
  "name": "Акция 1",
  "archive": false,
  "color": "#fa8174",
  "description": "Описсание",
  "descriptionActive": false,
  "startDate": {
    "date": "2019-02-01 00:00:00.000000",
    "timezone_type": "3",
    "timezone": "Asia/Yekaterinburg"
  },
  "finishDate": {
    "date": "2019-02-25 00:00:00.000000",
    "timezone_type": "3",
    "timezone": "Asia/Yekaterinburg"
  },
  "badge": {
    "icon": "percent",
    "label": "Акция"
  },
  "banner": {
    "active": true,
    "text": "Текст баннера",
    "buttonText": "Забронировать"
  },
  "discount": {
    "active": true,
    "type": "FULL_PRICE",
    "unit": "PERCENT",
    "value": 10,
    "description": "Установлена скидка -10% от полной стоимости",
    "humanizedType": "от полной стоимости",
    "humanizedUnit": "%"
  },
  "propertyIds": [
    3244361,
    3244364
  ]
}

GetDiffsByVersionsParameter: object

ids: integer[]

Список ID версий

integer
fields: string[]

Список полей изменений

string
Example
{
  "ids": [
    12345,
    12346
  ],
  "fields": [
    "price",
    "status"
  ]
}

GetDiffsByVersionsVersion: object

Example
{
  "versions": [
    {
      "id": 12345,
      "diffs": [
        {
          "propertyId": 12345,
          "field": "price",
          "prevValue": "2000000",
          "value": "2500000"
        }
      ]
    }
  ]
}

GetDiffsByVersionsVersions: object

id: integer

ID версии

diffs: GetDiffsByVersionsDiff
GetDiffsByVersionsDiff
Example
{
  "id": 12345,
  "diffs": [
    {
      "propertyId": 12345,
      "field": "price",
      "prevValue": "2000000",
      "value": "2500000"
    }
  ]
}

GetDiffsByVersionsDiff: object

propertyId: integer

ID помещения

field: string

Изменившееся поле

prevValue: string

Предыдущее значене поля. Может быть null.

value: string

Новое значение поля. Может быть null.

Example
{
  "propertyId": 12345,
  "field": "price",
  "prevValue": "2000000",
  "value": "2500000"
}

StockVersionsError: object

message: string

Сообщение ошибки

Example
{
  "message": "Something failed."
}

StockVersionsValidationErrors:

Example
{
  "errors": [
    {
      "property": "ids",
      "message": "You must specify at least one version ID."
    }
  ],
  "message": "Something failed."
}

StockVersionsValidationErrorsError: object

property: string

Имя параметра

message: string

Сообщение об ошибке

Example
{
  "property": "ids",
  "message": "You must specify at least one version ID."
}