Este serviço retorna a lista de imóveis da sua conta (a imobiliária dona do token). O escopo vem do access token, não é enviado como parâmetro.
| Informações do recurso | |
|---|---|
| Autenticação | Obrigatória (Token de API, Bearer) |
| Scope | express-base |
| HTTP Method | GET |
| Response | JSON |
| Version | 1 |
URL do recurso
https://mapaprop.app/api/action/express-v1/properties
Código de exemplo
GET /api/action/express-v1/properties?operation=1&buildingStatus=5&tempOccupancy=2&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
| Key | Type | Required | Descrição |
|---|---|---|---|
| term | string | no | Termo que tentará corresponder a pelo menos 3 caracteres na zona, endereço, código ou título do imóvel. Capacidade de pesquisa de texto completo. |
| address | string | no | Termo que tentará corresponder a pelo menos 3 caracteres no campo de endereço. Capacidade de pesquisa de texto completo. |
| type | int | no | Tipo de imóvel. Constantes |
| operation | int | no | Operação do imóvel. Constantes |
| from | int | no | Número do registro inicial. O padrão é 0. |
| size | int | no | Quantidade de registros a retornar em cada consulta. O padrão é 10. O máximo é 20 (erro de validação: "You cannot retrieve more than 20 properties at a time"). |
| branchId | int | no | O ID da filial onde os imóveis estão localizados. |
| buildingStatus | int | no | O estado físico do imóvel. Constantes |
| bedrooms | int | no | Quantidade de quartos do imóvel |
| ambiences | int | no | Número exato de ambientes |
| ambiencesFrom | int | no | Pesquisar a partir de um número para cima |
| ambiencesTo | int | no | Pesquisar até o número indicado |
| bathrooms | int | no | Quantidade de banheiros do imóvel |
| priceFrom | number | no | Filtro de preço mínimo. Aceita decimais (por exemplo 1500000.50). |
| priceTo | number | no | Filtro de preço máximo. Aceita decimais (por exemplo 1500000.50). |
| stateId | int | no | O ID do estado do imóvel |
| countyId | int | no | O ID do município do imóvel |
| cityId | int | no | O ID da cidade do imóvel |
| tempOccupancy | int | no | Número de pessoas que podem morar no imóvel |
| dateFrom | string | no | A data de chegada (formato: "dd-MM-yyyy") |
| dateTo | string | no | A data de saída (formato: "dd-MM-yyyy") |
Paginação
Este endpoint usa paginação por offset por meio dos parâmetros from e size.
| Parâmetro | Significado | Padrão | Máximo |
|---|---|---|---|
from | Offset baseado em zero do primeiro registro a retornar | 0 | — |
size | Número de registros retornados por requisição | 10 | 20 |
A resposta sempre inclui um campo total com o total de registros que correspondem aos seus filtros (não apenas os retornados na página atual). Use-o para saber quando parar a paginação.
Como paginar
Para obter a página N (indexada a partir de 1) com um tamanho de página fixo:
from = (N - 1) * size
Continue solicitando a próxima página enquanto from + size < total.
Exemplo: paginar 45 resultados, 20 por página
Suponha que uma pesquisa retorna "total": 45. Para obter todos os resultados são necessárias 3 requisições:
Página 1 — registros 1 a 20:
GET /api/action/express-v1/properties?operation=1&from=0&size=20
Resposta: { "took": 12, "total": 45, "properties": [ ...20 items... ] }
Página 2 — registros 21 a 40:
GET /api/action/express-v1/properties?operation=1&from=20&size=20
Resposta: { "took": 9, "total": 45, "properties": [ ...20 items... ] }
Página 3 — registros 41 a 45:
GET /api/action/express-v1/properties?operation=1&from=40&size=20
Resposta: { "took": 7, "total": 45, "properties": [ ...5 items... ] }
Neste ponto from + size = 60 >= total = 45, portanto não há mais páginas.
Observações
- Mantenha os filtros consistentes entre as páginas. Alterar qualquer filtro entre requisições (por exemplo
operation,priceFrom,stateId) reinicia o conjunto de resultados e o offset apontará para uma coleção diferente. sizenão pode exceder 20. Solicitarsize=21ou mais retorna um erro de validação:"You cannot retrieve more than 20 properties at a time". Para obter grandes conjuntos de resultados você deve paginar.fromé um offset, não um número de página.from=2retorna os registros a partir da posição 3, não "página 2".- Os filtros numéricos esperam um número inteiro. Um valor fora do intervalo de um inteiro (por exemplo, um número de 20 dígitos) ou com decimais retorna um erro de validação em vez de ser ignorado silenciosamente.
priceFromepriceTosão a exceção: aceitam decimais. - O campo
tooké o tempo em milissegundos que a pesquisa levou no servidor apenas para aquela página.
Resposta
Um documento JSON com a lista de imóveis do cliente.
| Objeto | Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
| Response | took | int | yes | Quanto tempo a pesquisa levou em milissegundos |
| total | int | yes | Quantos registros totais existem no contexto desta pesquisa. Você pode paginar por eles | |
| properties | Array of Property | yes | A lista de objetos Property | |
| Property | propertyHash | string | yes | Um ID único do imóvel |
| timestamp | string | yes | Timestamp ISO8601 de quando o imóvel foi criado | |
| lastUpdate | string | yes | Timestamp ISO8601 da última atualização do imóvel | |
| code | string | yes | Código único do imóvel inserido pelo cliente | |
| branchId | int | yes | O ID da filial à qual o imóvel pertence. GET /api/action/express-v1/branches. | |
| type | int | yes | O Id do tipo de imóvel. GET /api/action/express-v1/types | |
| operation | int | yes | O Id da operação do imóvel. Constantes | |
| propertyType | string | yes | A descrição traduzida do tipo de imóvel. GET /api/action/express-v1/types | |
| propertyOperation | string | yes | A descrição traduzida da operação do imóvel. Constantes | |
| status | string | yes | A descrição traduzida do estado de construção. Constantes | |
| mainImage | string | no | O Id do tipo de imóvel. GET /api/action/express-v1/types | |
| currency | string | yes | O símbolo de moeda do preço do imóvel. Constantes | |
| price | int | yes | O preço do imóvel | |
| expensesCurrency | string | no | O símbolo de moeda das despesas mensais/anuais do imóvel. Constantes | |
| expensesPrice | int | no | O valor das despesas mensais/anuais do imóvel | |
| taxCurrency | string | no | O símbolo de moeda dos impostos mensais/anuais do imóvel. Constantes | |
| taxPrice | int | no | O valor dos impostos mensais/anuais do imóvel | |
| title | string | yes | Título inserido pelo cliente | |
| address | string | yes | O endereço e número do imóvel | |
| zipCode | string | yes | O CEP da localização do imóvel | |
| zone | string | yes | Descrição amigável combinando cidade (se disponível) e estado | |
| countryId | int | yes | O ID do país onde o imóvel está localizado | |
| stateId | int | yes | O ID do estado onde o imóvel está localizado. GET /api/action/express-v1/zones | |
| countyId | int | yes | O ID do município onde o imóvel está localizado. GET /api/action/express-v1/zones | |
| cityId | int | no | O ID da cidade onde o imóvel está localizado. GET /api/action/express-v1/zones | |
| countryId | int | yes | O ID do país onde o imóvel está localizado. GET /api/action/express-v1/zones | |
| country | string | yes | O nome do país | |
| state | string | yes | O nome do estado | |
| county | string | yes | O nome do município ou segunda divisão geográfica | |
| city | string | no | O nome da cidade, bairro ou terceira divisão | |
| suspended | boolean | yes | A publicação foi suspensa | |
| reserved | boolean | yes | O imóvel foi reservado | |
| rented | boolean | yes | O imóvel foi alugado | |
| sold | boolean | yes | O imóvel foi vendido | |
| description | string | yes | A descrição longa do imóvel | |
| conditions | string | no | As condições detalhadas do imóvel. Geralmente relacionadas a pagamentos | |
| bedrooms | int | no | Número de quartos do imóvel | |
| ambiences | int | no | Quantidade de ambientes do imóvel | |
| bathrooms | int | no | Número de banheiros do imóvel | |
| dependencies | int | no | Número de quartos de dependência (quartos extras) | |
| occupancy | int | no | Quantidade de ocupantes (geralmente para aluguel temporário) | |
| toilettes | int | no | Número de lavabos (banheiros incompletos) no imóvel | |
| buildingArea | int | no | Metros quadrados da área construída | |
| landArea | int | no | Metros quadrados do terreno do imóvel | |
| yearsOld | int | no | Idade do imóvel | |
| ubication | string | no | Posição cardinal do imóvel no edifício | |
| totalFloors | int | no | Total de andares do edifício | |
| apartmentsPerFloor | int | no | Quantidade de apartamentos por andar | |
| airConditionerType | string | no | Tipo de ar-condicionado. | |
| waterHeaterType | string | no | Tipo de aquecedor de água. | |
| heatingType | string | no | Tipo de aquecimento. | |
| balconyType | string | no | Tipo de varanda. | |
| garage | int | no | Total de vagas de garagem do imóvel | |
| garageType | string | no | Tipo de garagem. | |
| images | Array of Image | no | Array de objetos Image | |
| location | Location | yes | Objeto Location | |
| Location | lon | string | yes | Longitude geográfica do imóvel |
| lat | string | yes | Latitude geográfica do imóvel | |
| Image | image | string | yes | URL da imagem |
| thumbnail | string | yes | URL do thumbnail | |
| orientation | int | yes | Orientação da imagem. 1 = PORTRAIT, 2 = LANDSCAPE | |
| type | int | yes | Tipo de imagem. 1 = PHOTO, 2 = BLUEPRINT | |
| contentType | string | yes | O content type da imagem | |
| timestamp | string | yes | Timestamp ISO8601 de quando a imagem foi enviada | |
| Labels | labels | Array of labels | no | Os labels do imóvel. Constantes |
| attributes | attributes | Array of json attributes | no | Todos os atributos do imóvel |
| descriptionFormatted | description | string | no | Descrição com novo formato que aceita quebras de linha |
Campos adicionais do imóvel
Além dos da tabela, cada imóvel traz estes. São os mais usados ao montar as fichas e as listagens:
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| seoUrl | string | yes | O slug do imóvel, pronto para montar a URL da sua ficha |
| typeDesc | string | yes | O tipo de imóvel já resolvido em texto (Casa, Apartamento). Poupa você de cruzar o type com types |
| operationDesc | string | yes | A operação já resolvida em texto (Venda, Aluguel) |
| descriptionFormatted | string | no | A descrição com as quebras de linha que o cliente digitou |
| publishedAt | string | no | Data ISO8601 em que o imóvel foi publicado. Serve para ordenar por novidade |
| floors | int | no | Quantidade de andares |
| garages | int | no | Quantidade de vagas de garagem |
| branchSeoUrl | string | no | O seoUrl da filial dona do imóvel |
| customerCountry | int | yes | O Id do país da imobiliária |
| customerCountryDesc | string | yes | O país da imobiliária, em texto |
| urlWebExternal | string | no | A URL do imóvel no site do cliente, se ele tiver site |
| videos | Array | no | Os vídeos cadastrados no imóvel. Vazio se não houver |
| alternativePrices | Array | no | Preços alternativos (por semana, por temporada). Vazio se não houver |
| reservations | Array | no | As reservas do imóvel, quando ele trabalha com aluguel por temporada |
| tempOccupied | boolean | no | Se o imóvel está ocupado hoje, em aluguel por temporada |
Nos inteiros opcionais, um 0 significa "não declarou", não "zero".
Quando a imobiliária não preenche um destes campos, o serviço devolve 0 em vez de omiti-lo:
totalFloors, floors, apartmentsPerFloor, toilettes, dependencies, expensesPrice e
taxPrice. Portanto "toilettes": 0 não afirma que o imóvel não tenha lavabos — afirma que
ninguém informou quantos.
Se você for exibir o dado, trate o 0 como ausência. É a convenção do objeto e vale também para
os contadores do empreendimento em
GET /developments.
developmentId — se o imóvel faz parte de um projeto
A partir de 2026-10-27 todo imóvel deste serviço traz três campos do grupo do empreendimento, sempre, seja ou não um empreendimento:
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| developmentId | int | yes | Id do empreendimento do qual este imóvel é unidade. 0 = não pertence a nenhum |
| development | boolean | yes | true somente se este imóvel FOR um empreendimento |
| developmentProperties | Array of int | yes | Os Ids de suas unidades se for um empreendimento; [] se não |
developmentId é o que permite detectar, em uma listagem qualquer, que quatro apartamentos quase
idênticos são do mesmo projeto — e buscar o projeto com
GET /developments.
Para saber se algo é um empreendimento, verifique development === true.
Até 2026-10-26 esses três campos não apareciam em um imóvel comum, então verificar a
existência da chave servia para distingui-lo de um empreendimento. Já não: as três chaves vêm
sempre. A mudança é aditiva e não quebra uma leitura de valores, mas um código que use
'developmentProperties' in prop para detectar um empreendimento agora dá o resultado
contrário.
Somente os empreendimentos trazem developmentStats. O bloco de indicadores derivados —
quantas unidades há, quantas vendidas, a faixa de preços — não aparece em um imóvel comum: não tem
unidades a partir das quais derivá-lo. Está documentado em
GET /developments.
A resposta inclui também alguns campos de uso interno da Mapaprop que não fazem parte
deste contrato e podem mudar ou desaparecer sem aviso: embeddingVersion, vectorizedAt,
configs, moderationStatus e publication. Não construa nada sobre eles.
Exemplo de resposta
{
"took": 111,
"total": 13,
"properties": [
{
"country": "Argentina",
"county": "Caballito",
"type": 20,
"zone": "Caballito, Capital Federal, Argentina",
"price": 54554,
"state": "Capital Federal",
"branchId": 773,
"images": [],
"suspended": false,
"labels": [
"mortgage-ready",
"professional-available",
"furnished",
"janitor",
"grill",
"storage",
"security",
"security-box",
"swimming-pool",
"party-saloon",
"cable-included",
"telephone-line",
"daily-dinning",
"alarm",
"front-garden",
"laundry",
"patio",
"playroom",
"private-elevator",
"suite"
],
"propertyOperation": "Alquiler Temporario",
"reserved": false,
"lastUpdate": "2019-10-29T14:13:54.000-03:00",
"customerCountryDesc": "Argentina",
"code": "1-6454656",
"description": "gran casa en haedo capital de ahora morona",
"alternativePrices": [],
"title": "gran casa en haedo capital de ahora morona",
"customerCountry": 1,
"countryId": 1,
"seoUrl": "alquiler-temporario-de-loft-en-caballito-capital-federal-1-147874",
"rented": false,
"countyId": 18,
"propertyType": "Loft",
"ambiences": 2,
"hightlight": {},
"currency": "USD",
"timestamp": "2019-10-29T00:00:00.000-03:00",
"sold": false,
"address": "paysandu 984",
"stateId": 1,
"propertyHash": "e86a6a15b7f93ae633b0b009c5c51120",
"mainImage": "https://s3.amazonaws.com/mapaprop-dev/photos/noimage.gif",
"location": {
"lon": "-58.45284939999999",
"lat": "-34.6125374"
},
"operation": 3
},
{
"country": "Argentina",
"county": "Saavedra",
"cityId": 1774,
"type": 17,
"zone": "Arroyo Corto, Saavedra, Buenos Aires, Argentina",
"price": 1,
"state": "Buenos Aires",
"branchId": 773,
"images": [
{
"image": "https://s3.amazonaws.com/mapaprop-dev/photos/1/145148/1342116.jpg",
"thumbnail": "https://s3.amazonaws.com/mapaprop-dev/photos/1/145148/1342116t.jpg",
"orientation": 2,
"imageId": 1342116,
"main": true,
"type": 2,
"contentType": "image/jpeg",
"order": 0,
"timestamp": "2017-12-20T16:27:58Z"
}
],
"suspended": false,
"labels": [],
"propertyOperation": "Alquiler Temporario",
"reserved": false,
"lastUpdate": "2018-01-16T15:36:31.000-03:00",
"paymentPeriod": "Por día",
"customerCountryDesc": "Argentina",
"code": "1-ABC635265",
"city": "Arroyo Corto",
"description": "una descripcion larga es mucho mejor que nada.",
"alternativePrices": [],
"title": "Una gran casa requiere una casita",
"customerCountry": 1,
"countryId": 1,
"seoUrl": "alquiler-temporario-de-complejo-turistico-en-arroyo-corto-saavedra-buenos-aires-1-145148",
"rented": false,
"countyId": 300,
"propertyType": "Complejo Turístico",
"hightlight": {},
"currency": "ARS",
"timestamp": "2018-01-16T00:00:00.000-03:00",
"sold": false,
"address": "Maipu 191",
"stateId": 2,
"propertyHash": "c6ed3571d0215b75c19de96d40783a1b",
"mainImage": "https://s3.amazonaws.com/mapaprop-dev/photos/1/145148/1342116t.jpg",
"location": {
"lon": "-62.40793050000002",
"lat": "-37.5996419"
},
"operation": 19
},
{
"country": "Argentina",
"occupancy": 2,
"county": "Balvanera",
"type": 1,
"zone": "Balvanera, Capital Federal, Argentina",
"price": 90000,
"state": "Capital Federal",
"branchId": 773,
"images": [
{
"image": "https://s3.amazonaws.com/mapaprop-dev/photos/1/139555/1335004.jpg",
"thumbnail": "https://s3.amazonaws.com/mapaprop-dev/photos/1/139555/1335004t.jpg",
"orientation": 2,
"imageId": 1335004,
"main": false,
"type": 1,
"contentType": "image/png",
"timestamp": "2017-12-09T16:27:54Z"
},
],
"suspended": false,
"labels": [],
"propertyOperation": "Alquiler Temporario",
"reserved": false,
"lastUpdate": "2017-11-28T21:16:48.000-03:00",
"paymentPeriod": "Por día",
"customerCountryDesc": "Argentina",
"code": "1-389398",
"expensesCurrency": "ARS",
"description": "Buena prop a estrenar",
"alternativePrices": [
{
"price": 50000.0,
"description": "Casa",
"currency": "ARS",
"id": "1863"
},
{
"price": 6500.0,
"description": "Por dia",
"currency": "ARS",
"id": "12216"
}
],
"title": "Nueva propeidad here",
"customerCountry": 1,
"countryId": 1,
"seoUrl": "alquiler-temporario-de-departamento-en-balvanera-capital-federal-1-139555",
"rented": false,
"expensesPrice": 2323,
"countyId": 91,
"propertyType": "Departamento",
"hightlight": {},
"currency": "ARS",
"timestamp": "2017-09-29T00:00:00.000-03:00",
"sold": false,
"address": "Balvanera 3993",
"zipCode": "1661",
"stateId": 1,
"propertyHash": "74f6dd0e4809f9ba1b044f3704cfef62",
"mainImage": "https://s3.amazonaws.com/mapaprop-dev/photos/1/139555/1272968t.jpg",
"taxCurrency": "ARS",
"taxPrice": 2000,
"location": {
"lon": "-58.392606099999966",
"lat": "-34.6098208"
},
"attributes": [
{
"group_sub": "label",
"country": "ar",
"key_legacy": "accessible",
"group_subtype": "ammenities",
"id": "accessible",
"label": "Accesible",
"locale": "es_AR",
"type": "bool",
"group": "propertyAttribute",
"status": true
},
],
"descriptionFormatted": "Test Images, Propiedad TestTest Images, \n\nPropiedad Test",
"operation": 19,
"status": "En Construcción"
},
]
}