Cuatro herramientas de valoración. Se admiten pisos, casas y terrenos; la valoración exprés y el informe rechazan los inmuebles comerciales y los complejos residenciales con 422 business_rule; la estimación del alquiler también funciona para inmuebles comerciales.
Valoración exprés
POST /valuation/express: ámbito tools:valuation, al momento. Una llamada a la API más el precio de la valoración exprés.
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
propertyCategory | cadena | no | apartment (por defecto), house, land; commercial se rechaza con 422, cualquier otro valor (no existe complex) con 400 |
totalArea | número | uno de tres | superficie, m² |
areaM2 | número | uno de tres | igual que totalArea |
landPlotArea | número | uno de tres | superficie del terreno, m²; cuenta como superficie solo para land |
addressText | cadena | recomendado | dirección en una línea |
country, city, postalCode | cadena | no | dirección por partes |
lat, lon | número | no | coordenadas |
rooms | número | no | habitaciones |
yearBuilt | número | no | año de construcción |
floor, floorsTotal | número | no | planta y número de plantas |
houseLevels | número | no | niveles de la casa |
heatingType | cadena | no | calefacción |
price | número | no | su precio: se compara con la estimación |
currency | cadena | no | moneda del resultado |
language | cadena | no | no se usa: la respuesta exprés no lleva texto explicativo |
targetId | cadena | no | id de su inmueble: las estimaciones repetidas del mismo inmueble salen de la caché durante 7 días |
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"}'
Respuesta:
| Campo | Descripción |
|---|---|
estimate.pricePoint | valor estimado |
estimate.rangeLow, estimate.rangeHigh | horquilla |
estimate.confidence | nivel de fiabilidad: low, medium o high |
estimate.confidenceScore | fiabilidad como número de 0 a 1 |
estimate.currency | moneda |
estimate.analogs | comparables encontrados: title, address, area, rooms, pricePerM2, originalPrice, adjustedPrice, adjustments, weight, provenance, source, sourceUrl |
degraded | true en una estimación aproximada sin datos de mercado; esta no se cobra |
Sin superficie o con una propertyCategory desconocida, 400 validation; inmuebles comerciales, 422 business_rule con code: commercial_unsupported.
Informe de valoración completo
POST /valuation/report: ámbito tools:valuation, trabajo. Un informe con análisis de mercado y PDF. Los campos obligatorios dependen de propertyCategory. Envíe solo los campos de su categoría: un campo de otra categoría (por ejemplo, houseLevels en un piso, parking en una casa) se rechaza con 400. Solo piso: livingArea, kitchenArea, bathrooms, ceilingHeight, floor, storeys, balcony, elevator, parking, houseType, apartmentType. Solo casa: houseLevels. Solo terreno: zoning. Casa y terreno: utilities.
| Campo | Tipo | Descripción |
|---|---|---|
propertyCategory | cadena | apartment, house o land: obligatorio |
address | objeto | obligatorio: country, city, street (puede estar vacío), streetNumber, location (lat, lng) |
totalArea | número | m²; obligatorio para piso y casa |
landPlotArea | número | m²; obligatorio para casa; para terreno, este campo o totalArea |
condition | cadena | estado; obligatorio para piso y casa |
apartmentType | cadena | piso: Residential, Commercial, Industrial, Land plot o Complex: obligatorio |
houseType | cadena | piso: tipo de edificio, obligatorio |
floor, storeys | número | piso: planta y plantas del edificio, obligatorios |
balcony, elevator | sí/no | piso: obligatorios |
houseLevels | número | casa: niveles, de 1 a 10, obligatorio |
rooms | número | piso, casa: habitaciones |
livingArea, kitchenArea, bathrooms, ceilingHeight | número | solo piso: detalles opcionales |
yearConstruction | número | piso, casa: año de construcción |
wallMaterial, heatingType | cadena | piso, casa: material de los muros, calefacción; en una casa, heatingType es uno de central, autonomous, boiler, fireplace, mixed, gas, electric, heat_pump, solid_fuel, underfloor, none |
furnished | sí/no | piso, casa: amueblado |
parking | sí/no | solo piso: aparcamiento |
zoning | cadena | solo terreno: uso |
utilities | objeto | casa y terreno: gas, water, sewage, electricity (sí/no) |
price | número | su precio: se compara con la estimación |
currency | cadena | UAH, USD, EUR, AZN, GBP, AED, CNY, TRY, GEL |
language | cadena | idioma del informe: eng, rus, ukr, deu, spa, aze, arb, fra, zho, tur |
objectId | cadena | id de su inmueble, si lo valora |
comments | cadena | comentario a la valoración |
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": "spa",
"apartmentType": "Residential", "houseType": "panel",
"totalArea": 64, "rooms": 2, "floor": 3, "storeys": 5,
"balcony": true, "elevator": false, "condition": "good"
}'
Respuesta 202: { "jobId": "...", "status": "processing", "state": "running" }. El trabajo terminado (GET /valuation/report/jobs/{id}) contiene:
| Campo | Descripción |
|---|---|
metrics | cifras: potPrice, priceRangeLow, priceRangeHigh, avgPrice, analogCount, growth - valor de mercado, su horquilla, precio por m², número de comparables, crecimiento en % |
confidence, priceMethod, estimateType | fiabilidad del valor (high…very_low), método de cálculo, punto u horquilla |
currency | moneda de todas las cifras |
justification | por qué el valor es ese |
recommendations | recomendaciones de precio y venta |
pdfMeta | datos del informe en PDF |
analogs | comparables en los que se basa el valor (la misma tabla que en el PDF): title, address, area, rooms, pricePerM2, originalPrice, adjustedPrice, adjustments, weight, provenance, source, sourceUrl. provenance: model_estimate - referencia sin anuncio detrás |
Los inmuebles comerciales (también apartmentType Commercial o Industrial) se rechazan con 422 business_rule y code: commercial_unsupported; su alquiler se estima con POST /valuation/rent. Un complejo residencial (apartmentType: Complex): 422 con code: complex_unsupported; valore un piso o una casa del complejo.
PDF: GET /artifacts/v1/ai/appraisal/reports/{id}/pdf. Eventos: valuation.completed / valuation.failed.
Estimación del alquiler
POST /valuation/rent: ámbito tools:rent, al momento. Describa el inmueble con campos o pase el objectId de un inmueble propio o público.
| Campo | Tipo | Descripción |
|---|---|---|
objectId | cadena | inmueble en lugar de descripción |
city | cadena | obligatorio sin objectId |
totalArea | número | m²; obligatorio sin objectId |
country, district, street | cadena | dirección |
propertyCategory | cadena | tipo de inmueble |
rooms, floor | número | habitaciones, planta |
furnished | sí/no | amueblado |
condition | cadena | estado |
rentTerm | cadena | long: alquiler mensual (por defecto); short: por días. Son dos mercados distintos |
occupancyPct | número | por días: ocupación prevista, de 10 a 100 % |
monthRentalRate | número | su renta mensual: la respuesta muestra la comparación con el mercado |
declaredDayRate | número | su precio por día |
currency | cadena | moneda del resultado |
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"}'
Respuesta:
| Campo | Descripción |
|---|---|
id | id de la estimación; PDF: GET /artifacts/v1/ai/appraisal/rent/{id}/pdf |
currency | moneda |
rent.monthlyRent | renta de mercado al mes |
rent.low, rent.high | horquilla |
rent.annualRent | al año |
rent.pricePerM2 | por m² al mes |
rent.grossYieldPct | rentabilidad bruta sobre el precio del inmueble, %, si se conoce el precio |
rent.confidence | fiabilidad |
rent.basedOn | en cuántos anuncios comparables se basa la estimación |
rent.termBasis | long o short |
comps | todos los anuncios considerados y su papel en la estimación: address, area, rooms, monthlyRent/dayRent, effectiveMonthly, term, status, usedInEstimate, source, url |
Sin superficie o ciudad, 400 con un detail como "Missing or invalid: totalArea".
Revisión de informe
POST /valuation/review: ámbito tools:review. Suba un informe de valoración (PDF, DOCX, DOC, RTF; hasta 40 MB): GREM lo lee y contrasta el valor con datos de mercado.
Cuerpo: multipart/form-data:
| Parte | Descripción |
|---|---|
file | el documento del informe (o una parte document) |
language | idioma del resultado, por defecto rus |
currency | moneda, por defecto USD |
curl -X POST https://developers.grem.capital/api/v1/valuation/review \
-H "Authorization: Bearer gsk_live_xxx" \
-F "[email protected]" \
-F "language=spa" -F "currency=EUR"
El documento se lee al momento. La respuesta 202 contiene jobId, status y state:
action_required(status: need_confirm):extractedcontiene los datos leídos del documento. Revíselos y confirme:POST /valuation/review/jobs/{id}/confirm(Trabajos y resultados). Tras confirmar, el trabajo pasa arunning.failed(status: rejected): el documento no es un informe de valoración inmobiliaria.
El resultado terminado: GET /valuation/review/jobs/{id}; el informe de revisión: GET /artifacts/v1/ai/appraisal/reviews/{id}/report.pdf o report.docx. Eventos: review.completed / review.failed; el seguimiento por webhook empieza tras la confirmación.