Docs

Объекты

Последнее обновление: 2026-10-038 мин чтения

Три типа объектов (kind): property - продажа, rental - аренда, complex - жилой комплекс. Чтение бесплатное и доступно любому ключу; создание, изменение и удаление требуют области objects:write и тоже не тарифицируются.

Список

curl "https://developers.grem.capital/api/v1/objects?kind=property&city=Berlin&limit=20" \
  -H "Authorization: Bearer gsk_live_xxx"

GET /objects:

ПараметрОписание
kindобязательный: property, rental или complex; регистр не важен
city, countryфильтр по точному совпадению
priceMin, priceMaxцена, в долларах США (по нормализованной цене)
areaMin, areaMaxплощадь, м²
roomsкомнат (property и rental); может быть дробным
type, residentialTypeкатегория - коды из справочников (property и rental)
pageстраница, с 1; меньшее значение считается 1
limitна страницу, по умолчанию 20, 1-50; значение вне диапазона приводится к нему
sortnewest (по умолчанию) или oldest
scopeтолько ключ агентства: по умолчанию видны объекты агентства, catalog - публичный каталог

Ответ: data - массив объектов, paginate - currentPage, totalPages, totalCount.

limit и page вне диапазона приводятся к нему, а не отклоняются. Другие недопустимые значения известного параметра (неизвестное значение перечисления, нецелый page, текст вместо числа) отклоняются с 400 validation и названием поля.

Один объект

GET /objects/{kind}/{id} - объект в той же форме. Неизвестный id - 404. Ключ агентства может добавить scope=catalog, чтобы получить публичный вид.

Форма объекта

ПолеОписание
id, kind, name, slugидентификация
statusдля чужого объекта - active или sold
typeкатегория - код
price, currencyцена; у complex - price: { from, to, currency }
constructionYearгод постройки, целое число или null
addressполный адрес, с улицей и координатами
nativeAreaUnitединица площади, в которой объект заведен (для показа); площади отдаются как { "value": 50, "unit": "m2" }
photosфото: id, isMain, mimetype, variants, ready
processingStatusready, processing или failed - готовы ли фото
promotedобъект продвигается
authorагент или агентство объявления

Категории и другие атрибуты - коды; подписи на языках - в справочниках. У complex есть еще apartmentPlans (планировки) и progress (ход строительства).

ready: false у фото означает, что варианты с водяным знаком еще генерируются. Показывайте заглушку и перечитайте объект позже - не кэшируйте незавершенное изображение.

Что видно: любой объект - публичная карточка, как на сайте; ваши объекты - полный вид владельца. Никому не отдаются контакты владельца, данные продавца из импорта, заметки модерации и оригиналы фото без водяного знака.

Создать, изменить, удалить

ДействиеЗапросОтвет
СоздатьPOST /objects/{kind}201 с объектом
ИзменитьPUT /objects/{kind}/{id}объект; только владелец, иначе 404
УдалитьDELETE /objects/{kind}/{id}черновик удаляется навсегда, опубликованный объект снимается в архив; объект с действующим договором о комиссии - 409 conflict
curl -X POST https://developers.grem.capital/api/v1/objects/property \
  -H "Authorization: Bearer gsk_live_xxx" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 9a1d2c3b-4e5f-4a6b-8c7d-0e1f2a3b4c5d" \
  -d '{
    "name": "2-room flat, Torstraße 12",
    "type": "Residential",
    "address": { "country": "Germany", "city": "Berlin", "street": "Torstraße", "streetNumber": "12" },
    "price": 320000, "currency": "EUR",
    "spaceAll": 64, "rooms": 2, "floor": 3, "buildingFloor": 5,
    "photos": ["https://example.com/1.jpg"],
    "publish": false
  }'
  • publish: false (по умолчанию) - черновик, не виден в каталоге; publish: true - публикация. Для публикации нужно не меньше 1 фото у property и rental, 2 - у complex.
  • Создавать объект определенного типа может не каждая роль аккаунта - как в кабинете.
  • Неизвестные поля игнорируются. Коды категорий берите из справочников. Коды condition, conditionType и amenities (в camelCase, например needsRenovation, fridge) перечислены в самой схеме записи (таблицы ниже и /openapi.json) - GET /dictionaries их не расшифровывает.
  • Площади: число в м² или { "value": 700, "unit": "ft2" }.
  • PUT без photos оставляет существующие фото.
  • Idempotency-Key при создании защищает от дубля при повторе.

Фото

photos - массив, каждый элемент:

  • публичный адрес https://... - GREM сам загрузит изображение;
  • id файла, загруженного через POST /uploads (Файлы).

Адрес, который не удалось загрузить, пропускается и попадает в warnings ответа. С strictPhotos: true такой запрос вместо этого завершается 422.

Поля для property

Обязательные: name, type, address, price.

ПолеОписание
typeResidential, Commercial, Industrial или Land plot
residentialType, commercialType, industrialTypeподтип - код или массив кодов
marketSegmentprimary (новостройка) или secondary
descriptionописание, до 5000 символов
addresscountry, city (обязательные), district, region, street, streetNumber, postalCode, location
price, currencyцена; валюта UAH, USD, EUR, AZN, GBP, AED, CNY, TRY, GEL
constructionYearгод, 1700-2100
spaceAll, spaceLiving, spaceKitchen, effectiveArea, auxiliaryArea, landPlotAreaплощади
rooms, bedrooms, numberOfBathrooms, balconies, numberWindows, unitsCountколичества
floor, buildingFloor, ceilingHeightэтаж, этажей, высота потолков
conditionneedsRenovation, partialRenovation, renovated, designer, shellCore, newFromDeveloper
buildingTypenewBuilding, secondary, stalinka, khrushchevka, brezhnevka, czech, gostinka, prerevolutionary, townhouseRow, detached, other
wallMaterialType, constructionTech, kitchenTypeматериал стен, технология, тип кухни
amenities, buildingAmenitiesудобства в квартире и в доме - массивы кодов
utilitySystem, heating, windowView, balcony, parkingкоммуникации, отопление, вид, балкон, паркинг
safetyshelterNearby, powerBackup, autonomousHeating, waterReserve, starlink, gasAvailable, internetAvailable, elevatorWorks (да/нет)
accessibilityramp, groundLevelEntrance, wideDoors, disabledParking, wheelchairElevator (да/нет)
programseOselya, eVidnovlennya, mortgageEligible, installment
monthRentalRate, annualIncome, annualYield, paybackPeriod, propertyTax, insuranceCost, managementFee, repairsReserveинвестиционные показатели
commissionкомиссия для агентов: payer, type, value
tour3D-тур: kind, url
complexIdЖК, к которому относится квартира
photos, videoмедиа
publish, strictPhotosсм. выше

Поля для rental

Обязательные: name, type (Residential, Commercial, Industrial), address, price. Большинство полей - как у property; собственные поля аренды:

ПолеОписание
rentalTypelong - долгосрочная, short - посуточная
price, dayPrice, depositставка, ставка за сутки, залог
totalArea, totalFloors, bathroomsплощадь, этажей, ванных
minRentTime, minTermMonthsминимальный срок
availableFromсвободна с даты
checkIn, checkOutвремя заезда и выезда: from, to — час дня (15 = 15:00)
withChildren, withPetsс детьми; с животными: yes, no, with someone
furniture, furnitureListмебель
conditionTypeсостояние - те же значения, что condition у property
onsiteAmenities, internalFeatureудобства
utilitiesIncluded, utilitiesCostкоммунальные
checkInPay, onlinePay, bankTransfer, reportingDocumentsспособы оплаты и документы

Поля для complex

Обязательные: name, address.

ПолеОписание
description, descriptionPresentation, descriptionSocialописания
pricefrom, to, currency
spaceплощади квартир: from, to
apartTypeтипы квартир
classeconomy, comfort, comfortPlus, business, premium, elite
stageplanning, excavation, construction, finishing, commissioned, delivered
completionQuarterквартал сдачи
queuesочереди: name, stage, completionQuarter
sectionsNumber, floors, apartmentsNumber, parkingSpacesколичества
installment, installmentTermsрассрочка: downPaymentPct, termMonths, interestRate
infrastructureинфраструктура - массив кодов
territoryDescription, parkingDescription, infrastructureDescriptionописания
apartmentPlansпланировки: apartType, area, price, description, photos
progressход строительства: title, date, description, photos

Полная схема каждого типа со всеми значениями - компоненты ObjectWriteProperty, ObjectWriteRental, ObjectWriteComplex в /openapi.json. Они сгенерированы из тех же проверок, что выполняет сервер.

Ключ агентства

ЗапросЧто делает
PATCH /objects/{kind}/{id}/agencyперенести объект в агентство или вернуть в личные: тело {"targetAgencyId": "<id>"} или {"targetAgencyId": null}; без поля - в агентство ключа
PATCH /objects/{kind}/{id}/assigneeназначить ответственного агента: {"assignTo": "<id пользователя>"}

Личным ключом оба запроса дают 403. Перенести объект из одного агентства в другое напрямую нельзя (409 conflict) - сначала в личные. Назначить агента на личный объект или на того, кто не является активным участником агентства, тоже нельзя - 409 conflict. Права: перенести в агентство - автор объекта; вернуть в личные - менеджер, владелец агентства или автор; назначить любого - менеджер и выше, агент - только себя.

События

object.created, object.updated, object.published, object.deleted - см. Вебхуки.

Связанные статьи

Эта статья была полезной?