Чотири інструменти оцінки. Підтримуються квартири, будинки і земельні ділянки; експрес-оцінка і звіт відхиляють комерційну нерухомість і житлові комплекси з 422 business_rule; оцінка оренди працює і для комерційної нерухомості.
Експрес-оцінка
POST /valuation/express - область tools:valuation, відповідає одразу. Виклик API плюс ціна експрес-оцінки.
| Поле | Тип | Обов'язкове | Опис |
|---|---|---|---|
propertyCategory | рядок | ні | apartment (за замовчуванням), house, land; commercial відхиляється з 422, будь-яке інше значення (категорії complex немає) - з 400 |
totalArea | число | одне з трьох | площа, м² |
areaM2 | число | одне з трьох | те саме, що totalArea |
landPlotArea | число | одне з трьох | площа ділянки, м²; рахується площею лише для land |
addressText | рядок | бажано | адреса одним рядком |
country, city, postalCode | рядок | ні | адреса частинами |
lat, lon | число | ні | координати |
rooms | число | ні | кімнат |
yearBuilt | число | ні | рік побудови |
floor, floorsTotal | число | ні | поверх і поверховість |
houseLevels | число | ні | рівнів у будинку |
heatingType | рядок | ні | опалення |
price | число | ні | ваша ціна - порівняється з оцінкою |
currency | рядок | ні | валюта результату |
language | рядок | ні | не використовується: в експрес-відповіді немає тексту пояснень |
targetId | рядок | ні | id вашого об'єкта: повторні оцінки того самого об'єкта 7 днів беруться з кешу |
curl -X POST https://developers.grem.capital/api/v1/valuation/express \
-H "Authorization: Bearer gsk_live_xxx" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 5b8c3f7e-2a71-4c55-8d0e-9f1a6b2c4d10" \
-d '{"propertyCategory":"apartment","addressText":"Torstraße 12, Berlin","totalArea":64,"rooms":2,"currency":"EUR"}'
Відповідь:
| Поле | Опис |
|---|---|
estimate.pricePoint | оцінка вартості |
estimate.rangeLow, estimate.rangeHigh | діапазон |
estimate.confidence | рівень впевненості: low, medium або high |
estimate.confidenceScore | впевненість числом від 0 до 1 |
estimate.currency | валюта |
estimate.analogs | знайдені аналоги: title, address, area, rooms, pricePerM2, originalPrice, adjustedPrice, adjustments, weight, provenance, source, sourceUrl |
degraded | true, якщо це груба оцінка без даних ринку; така оцінка не списується |
Без площі або з невідомою propertyCategory - 400 validation; комерційна нерухомість - 422 business_rule з code: commercial_unsupported.
Повний звіт про оцінку
POST /valuation/report - область tools:valuation, завдання. Звіт з аналізом ринку і PDF. Набір обов'язкових полів залежить від propertyCategory. Передавайте лише поля своєї категорії: поле іншої категорії (наприклад, houseLevels для квартири, parking для будинку) відхиляється з 400. Лише квартира: livingArea, kitchenArea, bathrooms, ceilingHeight, floor, storeys, balcony, elevator, parking, houseType, apartmentType. Лише будинок: houseLevels. Лише ділянка: zoning. Будинок і ділянка: utilities.
| Поле | Тип | Опис |
|---|---|---|
propertyCategory | рядок | apartment, house або land - обов'язкове |
address | об'єкт | обов'язкове: country, city, street (може бути порожнім), streetNumber, location (lat, lng) |
totalArea | число | м²; обов'язкове для квартири і будинку |
landPlotArea | число | м²; обов'язкове для будинку; для ділянки потрібне це поле або totalArea |
condition | рядок | стан; обов'язкове для квартири і будинку |
apartmentType | рядок | квартира: Residential, Commercial, Industrial, Land plot або Complex - обов'язкове |
houseType | рядок | квартира: тип будинку - обов'язкове |
floor, storeys | число | квартира: поверх і поверхів у будинку - обов'язкові |
balcony, elevator | так/ні | квартира: обов'язкові |
houseLevels | число | будинок: рівнів, від 1 до 10 - обов'язкове |
rooms | число | квартира, будинок: кімнати |
livingArea, kitchenArea, bathrooms, ceilingHeight | число | лише квартира: необов'язкові деталі |
yearConstruction | число | квартира, будинок: рік побудови |
wallMaterial, heatingType | рядок | квартира, будинок: матеріал стін, опалення; для будинку heatingType - одне з central, autonomous, boiler, fireplace, mixed, gas, electric, heat_pump, solid_fuel, underfloor, none |
furnished | так/ні | квартира, будинок: меблі |
parking | так/ні | лише квартира: паркінг |
zoning | рядок | лише ділянка: призначення |
utilities | об'єкт | будинок і ділянка: gas, water, sewage, electricity (так/ні) |
price | число | ваша ціна - порівняється з оцінкою |
currency | рядок | UAH, USD, EUR, AZN, GBP, AED, CNY, TRY, GEL |
language | рядок | мова звіту: eng, rus, ukr, deu, spa, aze, arb, fra, zho, tur |
objectId | рядок | id вашого об'єкта, якщо оцінюєте його |
comments | рядок | коментар до оцінки |
curl -X POST https://developers.grem.capital/api/v1/valuation/report \
-H "Authorization: Bearer gsk_live_xxx" \
-H "Content-Type: application/json" \
-d '{
"propertyCategory": "apartment",
"address": { "country": "Germany", "city": "Berlin", "street": "Torstraße", "streetNumber": "12" },
"currency": "EUR", "language": "eng",
"apartmentType": "Residential", "houseType": "panel",
"totalArea": 64, "rooms": 2, "floor": 3, "storeys": 5,
"balcony": true, "elevator": false, "condition": "good"
}'
Відповідь 202: { "jobId": "...", "status": "processing", "state": "running" }. Готове завдання (GET /valuation/report/jobs/{id}) містить:
| Поле | Опис |
|---|---|
metrics | цифри: potPrice, priceRangeLow, priceRangeHigh, avgPrice, analogCount, growth - ринкова вартість, її діапазон, ціна за м², кількість аналогів, зростання у % |
confidence, priceMethod, estimateType | наскільки надійна вартість (high…very_low), яким методом пораховано, точка чи діапазон |
currency | валюта всіх цифр |
justification | чому вартість саме така |
recommendations | рекомендації щодо ціни і продажу |
pdfMeta | дані PDF-звіту |
analogs | аналоги, на яких побудовано вартість (та сама таблиця, що в PDF): title, address, area, rooms, pricePerM2, originalPrice, adjustedPrice, adjustments, weight, provenance, source, sourceUrl. provenance: model_estimate - орієнтир без оголошення за ним |
Комерційна нерухомість (зокрема apartmentType Commercial або Industrial) відхиляється з 422 business_rule і code: commercial_unsupported - її оренду оцінить POST /valuation/rent. Житловий комплекс (apartmentType: Complex) - 422 з code: complex_unsupported: оцінюйте окрему квартиру або будинок у ньому.
PDF: GET /artifacts/v1/ai/appraisal/reports/{id}/pdf. Подія - valuation.completed / valuation.failed.
Оцінка оренди
POST /valuation/rent - область tools:rent, відповідає одразу. Описуйте об'єкт полями або передайте objectId свого чи публічного об'єкта.
| Поле | Тип | Опис |
|---|---|---|
objectId | рядок | об'єкт замість опису |
city | рядок | обов'язкове без objectId |
totalArea | число | м²; обов'язкове без objectId |
country, district, street | рядок | адреса |
propertyCategory | рядок | тип нерухомості |
rooms, floor | число | кімнати, поверх |
furnished | так/ні | з меблями |
condition | рядок | стан |
rentTerm | рядок | long - помісячна оренда (за замовчуванням), short - подобова. Це різні ринки |
occupancyPct | число | подобова оренда: очікуване завантаження, від 10 до 100 % |
monthRentalRate | число | ваша місячна ставка - відповідь покаже, як вона співвідноситься з ринком |
declaredDayRate | число | ваша ставка за добу |
currency | рядок | валюта результату |
curl -X POST https://developers.grem.capital/api/v1/valuation/rent \
-H "Authorization: Bearer gsk_live_xxx" \
-H "Content-Type: application/json" \
-d '{"propertyCategory":"apartment","country":"Germany","city":"Berlin","totalArea":50,"rooms":2,"currency":"EUR"}'
Відповідь:
| Поле | Опис |
|---|---|
id | id оцінки; PDF - GET /artifacts/v1/ai/appraisal/rent/{id}/pdf |
currency | валюта |
rent.monthlyRent | ринкова оренда на місяць |
rent.low, rent.high | діапазон |
rent.annualRent | на рік |
rent.pricePerM2 | за м² на місяць |
rent.grossYieldPct | валова дохідність до ціни об'єкта, %, якщо ціна відома |
rent.confidence | впевненість |
rent.basedOn | скільки порівнянних оголошень лягло в основу |
rent.termBasis | long або short |
comps | усі розглянуті оголошення та їхня доля в розрахунку: address, area, rooms, monthlyRent/dayRent, effectiveMonthly, term, status, usedInEstimate, source, url |
Без площі чи міста - 400 з detail на кшталт "Missing or invalid: totalArea".
Перевірка чужого звіту
POST /valuation/review - область tools:review. Завантажте звіт про оцінку (PDF, DOCX, DOC, RTF; до 40 МБ) - GREM прочитає його і перевірить вартість на ринкових даних.
Тіло - multipart/form-data:
| Частина | Опис |
|---|---|
file | документ звіту (або частина document) |
language | мова результату, rus за замовчуванням |
currency | валюта, USD за замовчуванням |
curl -X POST https://developers.grem.capital/api/v1/valuation/review \
-H "Authorization: Bearer gsk_live_xxx" \
-F "[email protected]" \
-F "language=eng" -F "currency=EUR"
Документ читається одразу. Відповідь 202 містить jobId, status і state:
action_required(status: need_confirm) - полеextractedмістить дані, витягнуті з документа. Перевірте і підтвердьте:POST /valuation/review/jobs/{id}/confirm(Завдання і результати). Після підтвердження завдання переходить уrunning.failed(status: rejected) - документ не є звітом про оцінку нерухомості.
Готовий результат - GET /valuation/review/jobs/{id}; звіт перевірки - GET /artifacts/v1/ai/appraisal/reviews/{id}/report.pdf або report.docx. Події - review.completed / review.failed; відстеження для вебхука починається після підтвердження.