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ção | Obrigatória (Token de API, Bearer) |
| Método HTTP | GET |
| Resposta | JSON |
| Versão | 1 |
URL do recurso
https://mapaprop.app/api/action/mapaprop-chat-ai-v1/search
Parâmetros
| Chave | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| operation | int | não | ID da operação. Constantes |
| type | int | não | ID do tipo de propriedade. Constantes |
| zone1 | int | não | ID do estado |
| zone2 | int | não | ID do município |
| zone3 | int | não | ID da cidade/bairro |
| priceMin | number | não | Preço mínimo |
| priceMax | number | não | Preço máximo |
| currency | string | não | Có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¤cy=USD HTTP/1.1
Host: mapaprop.app
Content-Type: application/x-www-form-urlencoded
Content-Length: 0
Authorization: Bearer {access_token}
Resposta
| Objeto | Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|---|
| Response | total | int | sim | Quantidade total de propriedades que correspondem aos filtros |
| propertyIds | Array of int | sim | IDs das propriedades correspondentes (até 100) | |
| aggregations | Aggregations | sim | Detalhamento dos resultados | |
| Aggregations | operations | Array of OperationCount | sim | Quantidade de propriedades por operação, dentro do resultado filtrado |
| types | Array of TypeCount | sim | Quantidade de propriedades por tipo, dentro do resultado filtrado | |
| states | Array of ZoneCount | sim | Quantidade de propriedades por estado (zone1) | |
| counties | Array of ZoneCount | sim | Quantidade de propriedades por município (zone2) | |
| cities | Array of ZoneCount | sim | Quantidade de propriedades por cidade/bairro (zone3) | |
| currencies | Array of CurrencyStats | sim | Quantidade e estatísticas de preço por moeda | |
| priceRanges | Array of PriceRange | não | Faixas de preço com quantidade de propriedades por moeda (somente se houver dados) | |
| OperationCount | id | int | sim | ID da operação |
| description | string | sim | Descrição traduzida da operação | |
| count | int | sim | Quantidade de propriedades com essa operação | |
| TypeCount | id | int | sim | ID do tipo de propriedade |
| description | string | sim | Descrição traduzida do tipo | |
| count | int | sim | Quantidade de propriedades com esse tipo | |
| ZoneCount | id | int | sim | ID da zona |
| count | int | sim | Quantidade de propriedades nessa zona | |
| CurrencyStats | currency | string | sim | Código da moeda |
| count | int | sim | Quantidade de propriedades nessa moeda | |
| priceMin | int | não | Preço mínimo nessa moeda | |
| priceMax | int | não | Preço máximo nessa moeda | |
| priceAvg | int | não | Preço médio nessa moeda | |
| PriceRange | currency | string | sim | Moeda da faixa |
| label | string | sim | Etiqueta da faixa | |
| count | int | sim | Quantidade de propriedades nessa faixa | |
| from | int | não | Limite inferior (ausente na primeira faixa) | |
| to | int | não | Limite 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).