Справочники

Схема полей

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

API схемы имеет два endpoint-а: базовая схема — все возможные типы и ограничения, и контекстная схема — точный набор полей и опций под конкретную комбинацию типа недвижимости.

Зачем нужна схема

  • Валидация — проверяйте данные перед отправкой, чтобы запросы не отклонялись
  • Корректные запросы — точно знайте, какие поля и значения допустимы для каждого типа недвижимости
  • Актуальность — получайте текущие ограничения и опции напрямую из API

Получите базовую схему

GET /api/v1/reference/schema/base

Возвращает общую структуру: типы объявлений, категории недвижимости, все поля формы и ограничения. Параметры не требуются. Используйте для инициализации формы и понимания структуры данных.

const response = await fetch('https://crm.rentix.md/api/v1/reference/schema/base', {
  headers: { 'Authorization': 'ApiKey YOUR_API_KEY' }
});
const schema = await response.json();

// Доступные подтипы для аренды жилья
console.log(schema.propertySecondaryType.rent.residential);
// → ["apartment", "house", "room", "other"]
Ответ
{
  "announcementType": ["rent", "sale"],
  "propertyType": ["residential", "commercial", "parking"],
  "propertySecondaryType": {
    "rent": {
      "residential": ["apartment", "house", "room", "other"],
      "commercial": ["office", "trade", "warehouse", "..."],
      "parking": ["underground-parking", "open-parking", "..."]
    },
    "sale": { "..." }
  },
  "announcementCurrency": ["EUR", "USD", "MDL"],
  "announcementStatus": ["draft", "active", "pending_active", "publish_failed", "expired", "hidden", "completed", "blocked"],
  "formFields": [
    "propertyType", "propertySecondaryType", "propertyQuantitySize",
    "propertyArea", "propertyFloorNumber", "propertyCoordinates",
    "announcementType", "announcementValue", "announcementCurrency",
    "announcementDescription", "fileIds"
    // ...и другие поля
  ],
  "constraints": {
    "propertyArea": { "min": 1, "max": 50000, "step": 0.01 },
    "propertyFloorNumber": { "min": -10, "max": 100, "step": 1 },
    "announcementValue": { "min": 1, "max": 1000000000, "step": 1 },
    "announcementDescription": { "minLength": 40, "maxLength": 2000 },
    "propertyCoordinates": { "lat": { "min": -90, "max": 90 }, "lng": { "min": -180, "max": 180 } },
    "fileIds": { "minItems": 3, "maxItems": 20, "maxVideoFiles": 2, "maxVideoDuration": 300 }
    // ...и другие поля
  }
}

Поля базовой схемы

ПолеОписание
announcementTypeТипы объявлений (rent, sale)
propertyTypeКатегории недвижимости (residential, commercial, parking)
propertySecondaryTypeВложенная карта: announcementTypepropertyType → подтипы
announcementCurrencyПоддерживаемые валюты
announcementStatusВсе статусы объявлений
formFieldsВсе ключи полей формы
constraintsЧисловые ограничения полей

Получите контекстную схему

GET /api/v1/reference/schema

Передайте комбинацию типа объявления, категории и подтипа недвижимости, чтобы получить полное описание полей формы. Каждое поле включает тип, обязательность, доступные опции или ограничения. Неприменимые поля возвращаются как null.

const params = new URLSearchParams({
  announcementType: 'rent',
  propertyType: 'residential',
  propertySecondaryType: 'apartment'
});

const response = await fetch(
  `https://crm.rentix.md/api/v1/reference/schema?${params}`,
  { headers: { 'Authorization': 'ApiKey YOUR_API_KEY' } }
);
const schema = await response.json();

// Проверьте доступность поля
if (schema.fields.propertyVisualState) {
  console.log(schema.fields.propertyVisualState.options);
  // → ["classic-renovation", "euro-renovation", "design-renovation"]
}

Параметры

ПараметрТипОписание
announcementTypeenumrent или sale
propertyTypeenumresidential, commercial или parking
propertySecondaryTypeenumПодтип (должен быть валидным для данной комбинации)
Все три параметра обязательны. Вместе они определяют точный набор доступных полей и их опций.
Ответ
{
  "context": {
    "announcementType": "rent",
    "propertyType": "residential",
    "propertySecondaryType": "apartment"
  },
  "fields": {
    "propertyQuantitySize": {
      "type": "enum",
      "required": true,
      "options": ["apartment-studio", "custom-value"]
    },
    "propertyQuantitySizeValue": {
      "type": "number",
      "required": false,
      "constraints": { "min": 1, "max": 100, "step": 1 }
    },
    "propertyArea": {
      "type": "number",
      "required": true,
      "constraints": { "min": 1, "max": 50000, "step": 0.01 }
    },
    "propertyLandArea": null,
    "propertyCoordinates": {
      "type": "coordinates",
      "required": true,
      "constraints": { "lat": { "min": -90, "max": 90 }, "lng": { "min": -180, "max": 180 } }
    },
    "propertyAvailabilityDate": {
      "type": "date",
      "required": true,
      "format": "YYYY-MM-DD"
    },
    "propertyAttributes": {
      "type": "enum-array",
      "required": false,
      "options": ["animals-allowed", "conditioner", "balcony", "wifi", "..."]
    },
    "announcementValue": {
      "type": "number",
      "required": true,
      "constraints": { "min": 1, "max": 1000000000, "step": 1 }
    },
    "announcementPayPeriod": {
      "type": "enum",
      "required": true,
      "options": ["monthly", "daily", "hourly"]
    },
    "fileIds": {
      "type": "number-array",
      "required": false,
      "constraints": { "minItems": 3, "maxItems": 20, "maxVideoFiles": 2, "maxVideoDuration": 300 }
    }
    // ...и другие поля
  }
}
Значение null у поля означает, что оно недоступно для данного контекста. Необязательные поля можно не передавать или отправить как null.

Типы полей

Каждое поле в контекстной схеме содержит type, определяющий его структуру:

ТипСвойстваОписание
enumrequired, optionsОдно значение из списка
enum-arrayrequired, optionsНесколько значений из списка
numberrequired, constraints (min, max, step)Число в заданных пределах
stringrequired, constraints (minLength, maxLength)Текст с ограничением длины
daterequired, formatДата в указанном формате
coordinatesrequired, constraints (lat, lng с min/max)Географические координаты
number-arrayrequired, constraints (minItems, maxItems, maxVideoFiles, maxVideoDuration)Массив числовых ID (медиафайлы)

Справочник полей

Поля недвижимости

Зависят от выбранного propertySecondaryType — для некоторых комбинаций могут быть null.

ПолеТипОписание
propertyQuantitySizeenumТип комнат (apartment-studio, custom-value)
propertyQuantitySizeValuenumberКоличество комнат (при выбранном custom-value)
propertyVisualStateenumСостояние ремонта (euro-renovation, design-renovation, ...)
propertyHousingMarketenumТип рынка (secondary, new-build)
propertyBuildingMaterialenumМатериал строительства (brick, monolithic, panel, ...)
propertyLayoutenumПланировка/серия (102, brezhnevka, cheska, ...)
propertyParkingSpaceenumТип парковки (underground, open, garage, covered)
propertyFloorNumbernumberНомер этажа
propertyFloorsTotalnumberВсего этажей в здании
propertyAreanumberОбщая площадь в м²
propertyLandAreanumberПлощадь участка в м² (дома и участки)
propertyCeilingHeightnumberВысота потолков в метрах
propertyAttributesenum-arrayУдобства и правила (животные, WiFi, балкон, ...)
propertyCoordinatescoordinatesРасположение на карте (широта, долгота)
propertyAddressstringАдрес, автоматически геокодируется в координаты (только CRM, макс. 500 символов). Необходимо указать либо propertyCoordinates, либо propertyAddress. Рекомендуемый формат: Город, Улица Дом (напр. Chișinău, str. Columna 81/1)
propertyAvailabilityDatedateДата доступности (YYYY-MM-DD)

Поля объявления

Присутствуют всегда (никогда не null), но некоторые применимы только к объявлениям типа rent.

ПолеТипОписание
announcementStatusenumСтатус объявления (draft, active, hidden, ...)
announcementValuenumberЦена
announcementCurrencyenumВалюта цены (EUR, USD, MDL)
announcementDescriptionstringОписание объявления
announcementBargainenumТорг (yes, no)
announcementPayPeriodenumПериод оплаты, тип rent (monthly, daily, hourly)
announcementMinRentPeriodnumberМинимальный срок аренды в часах (720 = 1 месяц), тип rent
announcementPrepaymentenumПредоплата, тип rent
announcementPrepaymentValuenumberСумма предоплаты, тип rent (при custom-amount)
announcementRentDepositenumЗалог, тип rent
announcementRentDepositValuenumberСумма залога, тип rent (при custom-amount)
fileIdsnumber-arrayID медиафайлов объявления

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

Жильё (residential)

ЗначениеОписание
apartmentКвартира
houseДом
roomКомната
residential-landУчасток (только продажа)
otherДругое

Коммерция (commercial)

ЗначениеОписание
officeОфис
tradeТорговое помещение
warehouseСклад
free-purposeСвободного назначения
productionПроизводство
businessГотовый бизнес
commercial-landКоммерческий участок
legal-addressЮридический адрес
otherДругое

Паркинг (parking)

ЗначениеОписание
underground-parkingПодземный паркинг
open-parkingОткрытая парковка
garageГараж
covered-parkingКрытая парковка
otherДругое
Copyright © 2026