PRODUCCIÓN
Este servicio devuelve la lista de desarrollos inmobiliarios.
| Información del recurso | |
|---|---|
| Autenticación | Required |
| Método HTTP | GET |
| Respuesta | JSON |
| Versión | 1 |
URL del recurso
https://mapaprop.app/api/action/express-v1/developments
Código de ejemplo
GET /api/action/express-v1/developments?customerId=1&dateFrom=20-02-2019&dateTo=28-02-2019 HTTP/1.1
Host: mapaprop.app
Content-Type: application/x-www-form-urlencoded
Content-Length: 0
Authorization: Bearer {access_token}
Parámetros
| Clave | Tipo | Requerido | Descripción |
|---|---|---|---|
| customerId | int | no | ID del cliente para acotar la búsqueda. Por defecto usa el ID del cliente autenticado. |
| term | string | no | Término que intenta coincidir con al menos 3 caracteres en la zona, dirección o título de la propiedad. Admite búsqueda de texto completo. |
| type | int | no | Siempre se sobreescribe con 23 (Desarrollo Inmobiliario) por la API. Cualquier valor enviado por el usuario es ignorado. Constantes |
| operation | int | no | Operación de la propiedad. Constantes |
| from | int | no | Número de registro inicial. El valor por defecto es 0. |
| size | int | no | Cantidad de registros a traer en cada consulta. El valor por defecto es 7. El máximo es 20 (error de validación: "You cannot retrieve more than 20 properties at a time"). |
| branchId | int | no | ID de la sucursal donde se encuentran las propiedades. |
| stateId | int | no | ID del estado o provincia de la propiedad. |
| countyId | int | no | ID del partido o municipio de la propiedad. |
| cityId | int | no | ID de la ciudad de la propiedad. |
| tempOccupancy | int | no | Número de personas que pueden hospedarse en la propiedad. |
| dateFrom | string | no | Fecha de llegada (formato: "dd-MM-yyyy"). |
| dateTo | string | no | Fecha de salida (formato: "dd-MM-yyyy"). |
Paginación
Este endpoint utiliza paginación por offset a través de los parámetros from y size.
| Parámetro | Significado | Valor por defecto | Máximo |
|---|---|---|---|
from | Offset (base cero) del primer registro a devolver | 0 | — |
size | Cantidad de registros devueltos por solicitud | 7 | 20 |
La respuesta siempre incluye el campo total con el total de registros que coinciden con los filtros (no solo los de la página actual). Usá ese valor para saber cuándo dejar de paginar.
Cómo paginar
Para obtener la página N (índice 1) con un tamaño fijo de página:
from = (N - 1) * size
Seguí solicitando la siguiente página mientras from + size < total.
Ejemplo: paginar 25 desarrollos, 20 por página
Supongamos que una búsqueda devuelve "total": 25. Para obtener todos los resultados se necesitan 2 solicitudes:
Página 1 — registros 1 a 20:
GET /api/action/express-v1/developments?from=0&size=20
Respuesta: { "took": 8, "total": 25, "properties": [ ...20 items... ] }
Página 2 — registros 21 a 25:
GET /api/action/express-v1/developments?from=20&size=20
Respuesta: { "took": 6, "total": 25, "properties": [ ...5 items... ] }
En este punto from + size = 40 >= total = 25, por lo que no hay más páginas.
Notas
- Mantené los filtros consistentes entre páginas. Cambiar cualquier filtro entre solicitudes (por ejemplo
operation,stateId,dateFrom) reinicia el conjunto de resultados y tu offset apuntará a una colección diferente. sizeno puede superar 20. Solicitarsize=21o más devuelve un error de validación:"You cannot retrieve more than 20 properties at a time". Para recuperar conjuntos grandes debés paginar.fromes un offset, no un número de página.from=2devuelve registros a partir de la posición 3, no "página 2".- El campo
tookindica el tiempo en milisegundos que tardó la búsqueda en el servidor para esa página.
Respuesta
Un documento JSON con la lista de zonas en jerarquía donde el cliente tiene propiedades.
| Objeto | Campo | Tipo | Requerido | Descripción |
|---|---|---|---|---|
| Response | took | int | yes | Tiempo que tardó la búsqueda, en milisegundos |
| total | int | yes | Total de registros en el contexto de esta búsqueda. Podés paginarlo | |
| properties | Array of Property | yes | La lista de objetos Property | |
| Property | propertyHash | string | yes | ID único de la propiedad |
| timestamp | string | yes | Timestamp ISO8601 de cuándo se creó la propiedad | |
| lastUpdate | string | yes | Timestamp ISO8601 de la última actualización de la propiedad | |
| code | string | yes | Código único de la propiedad ingresado por el cliente | |
| branchId | int | yes | ID de la sucursal asociada a esta propiedad. GET /api/action/express-v1/branches. | |
| type | int | yes | Id del tipo de propiedad. GET /api/action/express-v1/types | |
| operation | int | yes | Id de la operación de la propiedad. Constantes | |
| propertyType | string | yes | Descripción traducida del tipo de propiedad. GET /api/action/express-v1/types | |
| propertyOperation | string | yes | Descripción traducida de la operación de la propiedad. Constantes | |
| status | string | yes | Descripción traducida del estado constructivo. Constantes | |
| mainImage | string | no | Id del tipo de propiedad. GET /api/action/express-v1/types | |
| currency | string | yes | Símbolo de moneda del precio de la propiedad. Constantes | |
| price | int | yes | Precio de la propiedad | |
| expensesCurrencies | string | no | Símbolo de moneda de las expensas mensuales/anuales. Constantes | |
| expensesPrice | int | no | Monto de las expensas mensuales/anuales | |
| taxCurrency | string | no | Símbolo de moneda de los impuestos mensuales/anuales. Constantes | |
| taxPrice | int | no | Monto de los impuestos mensuales/anuales | |
| title | string | yes | Título ingresado por el cliente | |
| address | string | yes | Dirección y número de la propiedad | |
| zipCode | string | yes | Código postal de la propiedad | |
| zone | string | yes | Descripción combinada desde ciudad (si está disponible) hasta estado | |
| countryId | int | yes | ID del país de la propiedad | |
| stateId | int | yes | ID del estado o provincia. GET /api/action/express-v1/zones | |
| countyId | int | yes | ID del partido o municipio. GET /api/action/express-v1/zones | |
| cityId | int | no | ID de la ciudad. GET /api/action/express-v1/zones | |
| countryId | int | yes | ID del país. GET /api/action/express-v1/zones | |
| country | string | yes | Nombre del país | |
| state | string | yes | Nombre del estado o provincia | |
| county | string | yes | Nombre del partido o segunda división | |
| city | string | no | Nombre de la ciudad, barrio o tercera división | |
| suspended | boolean | yes | La publicación ha sido suspendida | |
| reserved | boolean | yes | La propiedad ha sido reservada | |
| rented | boolean | yes | La propiedad ha sido alquilada | |
| sold | boolean | yes | La propiedad ha sido vendida | |
| description | string | yes | Descripción larga de la propiedad | |
| conditions | string | no | Condiciones de la propiedad. Generalmente relacionadas con los pagos | |
| bedrooms | int | no | Número de dormitorios | |
| ambiences | int | no | Número de ambientes o espacios | |
| bathrooms | int | no | Número de baños | |
| dependencies | int | no | Número de cuartos de servicio | |
| occupancy | int | no | Número de ocupantes (generalmente en alquiler temporario) | |
| toilettes | int | no | Número de toilettes (baños de media) | |
| buildingArea | int | no | Metros cuadrados de superficie construida | |
| landArea | int | no | Metros cuadrados del terreno | |
| yearsOld | int | no | Antigüedad de la propiedad | |
| ubication | string | no | Orientación cardinal de la propiedad en el edificio | |
| totalFloors | int | no | Total de pisos del edificio | |
| apartmentsPerFloor | int | no | Cantidad de departamentos por piso | |
| airConditionerType | string | no | Tipo de aire acondicionado | |
| waterHeaterType | string | no | Tipo de calefón | |
| heatingType | string | no | Tipo de calefacción | |
| balconyType | string | no | Tipo de balcón | |
| garage | int | no | Total de cocheras de la propiedad | |
| garageType | string | no | Tipo de cochera | |
| images | Array of Image | no | Array de objetos Image | |
| location | Location | yes | Objeto Location | |
| Location | lon | string | yes | Longitud geográfica de la propiedad |
| lat | string | yes | Latitud geográfica de la propiedad | |
| Image | image | string | yes | URL de la imagen |
| thumbnail | string | yes | URL del thumbnail | |
| orientation | int | yes | Orientación de la imagen. 1 = PORTRAIT, 2 = LANDSCAPE | |
| type | int | yes | Tipo de imagen. 1 = PHOTO, 2 = BLUEPRINT | |
| contentType | string | yes | Tipo de contenido de la imagen | |
| timestamp | string | yes | Timestamp ISO8601 de cuándo se subió la imagen | |
| Labels | labels | Array of labels | no | Etiquetas de la propiedad. Constantes |
| attributes | attributes | Array of json attributes | no | Todos los atributos de la propiedad |
| descriptionFormatted | description | string | no | Descripción con formato nuevo que acepta saltos de línea |
Respuesta de ejemplo
{
"took":6,
"total":3,
"properties": [
{
"zipCode":"1884",
"country":"Argentina",
"developmentProperties": [
198102
],
"landArea":133,
"county":"Almirante Brown",
"buildingArea":235,
"cityId":897,
"type":220,
"ambiences":2,
"zone":"Malvinas Argentinas, Almirante Brown, Buenos Aires, Argentina",
"price":1200000,
"airConditionerType":"Central",
"publication": [
{
"mercadolibre":false,
"plan":"no-plan"
},
{
"cabaprop":false,
"plan":"no-plan"
},
{
"zonaprop":false,
"plan":"no-plan"
},
{
"navent":false,
"plan":"no-plan"
}
],
"state":"Buenos Aires",
"branchId":1,
"images": [],
"development":true,
"descriptionFormatted":"Descripcion de un desarrollo unico del sistema.",
"bathrooms":2,
"suspended":false,
"labels": [
"laundry",
"playroom",
"suite"
],
"propertyOperation":"Venta",
"bedrooms":2,
"garages":1,
"yearsOld":12,
"reserved":false,
"lastUpdate":"2024-10-22T12:21:00.000-03:00",
"customerCountryDesc":"Argentina",
"code":"1-DESARROLLO-3",
"city":"Malvinas Argentinas",
"description":"Descripcion de un desarrollo unico del sistema.",
"alternativePrices": [],
"title":"titulo de desarrollo",
"networks": [
"4",
"5"
],
"customerCountry":1,
"countryId":1,
"seoUrl":"venta-de-desarrollo-inmobiliario-en-malvinas-argentinas-almirante-brown-buenos-aires-1-247058",
"rented":false,
"countyId":140,
"propertyType":"Desarrollo Inmobiliario",
"hightlight": {},
"currency":"ARS",
"timestamp":"2024-10-03T00:00:00.000-03:00",
"sold":false,
"address":"Calle 123 1537",
"stateId":2,
"garage":1,
"propertyHash":"1a9ad9df2c25980db55e6f74c5d62b94",
"mainImage":"https://s3.amazonaws.com/mapaprop-dev-image/photos/noimage.gif",
"garageType":"Espacio Guarda Coche",
"location": {
"lon":"-58.54596230000001",
"lat":"-34.5904958"
},
"attributes": [
{
"group_sub":"label",
"country":"ar",
"key_legacy":"hasLaundry",
"group_subtype":"spaces",
"id":"laundry",
"label":"Lavadero",
"locale":"es_AR",
"type":"bool",
"group":"propertyAttribute",
"status":true
},
{
"group_sub":"label",
"country":"ar",
"key_legacy":"petsReady",
"group_subtype":"extras",
"id":"petsReady",
"label":"Apto mascotas",
"locale":"es_AR",
"type":"bool",
"group":"propertyAttribute",
"status":true
},
{
"group_sub":"label",
"country":"ar",
"key_legacy":"playroom",
"group_subtype":"spaces",
"id":"playroom",
"label":"Playroom",
"locale":"es_AR",
"type":"bool",
"group":"propertyAttribute",
"status":true
},
{
"group_sub":"label",
"country":"ar",
"key_legacy":"hasPrivatElevator",
"group_subtype":"ammenities",
"id":"private-elevator",
"label":"Elevador privado",
"locale":"es_AR",
"type":"bool",
"group":"propertyAttribute",
"status":true
},
{
"group_sub":"label",
"country":"ar",
"key_legacy":"suite",
"group_subtype":"spaces",
"id":"suite",
"label":"Dormitorio en suite",
"locale":"es_AR",
"type":"bool",
"group":"propertyAttribute",
"status":true
}
],
"operation":1
}
]
}