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 - див. Вебхуки.

Пов'язані статті

Ця стаття була корисною?