Четыре инструмента оценки. Поддерживаются квартиры, дома и земельные участки; экспресс-оценка и отчет отклоняют коммерческую недвижимость и жилые комплексы с 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; отслеживание для вебхука начинается после подтверждения.