BETA

Busca propriedades do cliente aplicando filtros e retorna os IDs correspondentes junto com agregações (quantidade de propriedades por operação, tipo, zona, moeda e faixa de preço). É pensado para o fluxo guiado do chat: permite mostrar contagens como "Venda (150) · Aluguel (75)" sem gastar tokens de IA, e sem trazer o detalhe completo de cada propriedade.

customerId é resolvido a partir do access token. Para obter o detalhe das propriedades encontradas, pegue os propertyIds da resposta e consulte GET /api/action/mapaprop-chat-ai-v1/properties (unindo os IDs com vírgula).

Apesar de se tratar de uma busca com filtros, este endpoint é GET, não POST: os filtros são enviados como query params, não como body.

Informações do recurso
AutenticaçãoObrigatória (Token de API, Bearer)
Método HTTPGET
RespostaJSON
Versão1

URL do recurso

https://mapaprop.app/api/action/mapaprop-chat-ai-v1/search

Parâmetros

ChaveTipoObrigatórioDescrição
operationintnãoID da operação. Constantes
typeintnãoID do tipo de propriedade. Constantes
zone1intnãoID do estado
zone2intnãoID do município
zone3intnãoID da cidade/bairro
priceMinnumbernãoPreço mínimo
priceMaxnumbernãoPreço máximo
currencystringnãoCódigo de moeda a filtrar (ex: USD)

Somente são buscadas propriedades publicadas da conta autenticada. A busca sempre limita a um máximo de 100 resultados internamente (não é paginável a partir deste endpoint; para percorrer resultados em páginas, use os propertyIds retornados junto com properties).

Código de exemplo

GET /api/action/mapaprop-chat-ai-v1/search?operation=1&type=1&zone1=1&priceMin=50000&priceMax=300000&currency=USD HTTP/1.1
Host: mapaprop.app
Content-Type: application/x-www-form-urlencoded
Content-Length: 0
Authorization: Bearer {access_token}

Resposta

ObjetoCampoTipoObrigatórioDescrição
ResponsetotalintsimQuantidade total de propriedades que correspondem aos filtros
propertyIdsArray of intsimIDs das propriedades correspondentes (até 100)
aggregationsAggregationssimDetalhamento dos resultados
AggregationsoperationsArray of OperationCountsimQuantidade de propriedades por operação, dentro do resultado filtrado
typesArray of TypeCountsimQuantidade de propriedades por tipo, dentro do resultado filtrado
statesArray of ZoneCountsimQuantidade de propriedades por estado (zone1)
countiesArray of ZoneCountsimQuantidade de propriedades por município (zone2)
citiesArray of ZoneCountsimQuantidade de propriedades por cidade/bairro (zone3)
currenciesArray of CurrencyStatssimQuantidade e estatísticas de preço por moeda
priceRangesArray of PriceRangenãoFaixas de preço com quantidade de propriedades por moeda (somente se houver dados)
OperationCountidintsimID da operação
descriptionstringsimDescrição traduzida da operação
countintsimQuantidade de propriedades com essa operação
TypeCountidintsimID do tipo de propriedade
descriptionstringsimDescrição traduzida do tipo
countintsimQuantidade de propriedades com esse tipo
ZoneCountidintsimID da zona
countintsimQuantidade de propriedades nessa zona
CurrencyStatscurrencystringsimCódigo da moeda
countintsimQuantidade de propriedades nessa moeda
priceMinintnãoPreço mínimo nessa moeda
priceMaxintnãoPreço máximo nessa moeda
priceAvgintnãoPreço médio nessa moeda
PriceRangecurrencystringsimMoeda da faixa
labelstringsimEtiqueta da faixa
countintsimQuantidade de propriedades nessa faixa
fromintnãoLimite inferior (ausente na primeira faixa)
tointnãoLimite superior (ausente na última faixa)

Exemplo de resposta

{
    "total": 18,
    "propertyIds": [2600144, 2600145, 2600150, 2600151],
    "aggregations": {
        "operations": [
            { "id": 1, "description": "Venta", "count": 18 }
        ],
        "types": [
            { "id": 1, "description": "Departamento", "count": 12 },
            { "id": 2, "description": "Casa", "count": 6 }
        ],
        "states": [
            { "id": 1, "count": 18 }
        ],
        "counties": [
            { "id": 46, "count": 10 }
        ],
        "cities": [],
        "currencies": [
            { "currency": "USD", "count": 18, "priceMin": 55000, "priceMax": 295000, "priceAvg": 165000 }
        ],
        "priceRanges": [
            { "currency": "USD", "label": "50000-100000", "count": 5, "from": 50000, "to": 100000 },
            { "currency": "USD", "label": "100000-300000", "count": 13, "from": 100000, "to": 300000 }
        ]
    }
}

Se operation, type, zone1, zone2, zone3, priceMin ou priceMax forem enviados com um valor não numérico, o serviço responde HTTP 400 com {"error": "INVALID_NUMBER", "description": "..."}, onde a descrição é específica do campo (ex: "Operation must be a number", "PriceMin must be a number").

Diferente de GET /api/action/mapaprop-chat-ai-v1/config, as aggregations deste endpoint não incluem description em states/counties/cities (somente id e count).