Pesquisar imóveis [API]

Este artigo descreve o serviço da API responsável pela pesquisa de imóveis. Este serviço geralmente é consumido pelo site do cliente.

 

Segurança

Para acessar o serviço de pesquisa, a aplicação deve enviar um acess_token, junto ao requisição. Esse acess_token deverá ser obetido da seguinte maneira:

Verbo

POST

Verbo

POST

Url

https://login.salesforce.com/services/oauth2/token

Parâmetros

  • grant_type : urn:ietf:params:oauth:grant-type:jwt-bearer

  • assertion : {chave que será recebida da organização}

Endpoint

https://login.salesforce.com/services/oauth2/token?grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer&assertiona=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJ0YXJnZXIfYXVkaWVuY2UiOm51bGwsInN1YiI6InJpY2FyZG2uZ2lnbGlvQHNuYXBwcm9wZXJ0eS5jb20uYnIiLLJzY29wZSI6bnVsbCwiaXNzIjoiM01WRzlRRHg4SVg4blA1U0l5RGE0WUNLWjViYlFYdk1SRERxSW1ZbUJ1QXFKbXNQU0laVkJOTXV6MTZWMWtlUmo1QUg3enZqby5McnBLTVBZaHMxRiIsImlhdCI6MTYyMDMyBjA2NSwiZXhwIjoxOTM1ODk1MzI1LVJhdWQiOiJodHRwczovL2xvZ2luLnNhbGVzZm3yY2UuY29tIn0=.Kp37sR4YQRynlDtl6oXxHYSHw9VX725elzdqDS-vFknPV7pCujOJwVHoIKZaeGVkahazod8FoRWXQfRXrgH4vV_cucRV15OgkR-RrvZAQyglEbBDJFETLc5biCmKoHOgvlZh7zu2U1ED8yb13Ww7EP8dPfG4nVvDYV1r49n7Rwmj85FjviOh45olm8vM6dUS4wHB20zOs2SoeE7UUSq3974y-RmLntbvBoFQR7AIsvJblfIHOdY7ruuSb9mhzZ2NB7_0TSzrhL4fk3luYmAdqhh7M87l0jFojtPsaM03PIMMWO7SAo56R5ykm_aOr-s8WPlWwZRaLBOOA5xKJdFQHw

Uma vez obtido o acess_token após essa requisição no header da requisição de pesquisa deve ser enviado o Autorization : Bearer + {espaço} + acess_token

 

Endpoint

Para acessar o serviço de pesquisa o sistema deve fazer uma requisição do tipo "POST” no “EndPoint” definido pela “URL Org” da organização

Verbo

POST

Url org

Endereço fornecido pelo administrador.

Exemplo: https://snapproperty-developer-edition.na132.force.com

Serviço

/services/apexrest/snap_brok/imovel/pesquisar

Endpoint

https://snapproperty-developer-edition.na132.force.com/services/apexrest/snap_brok/imovel/pesquisar

Parâmetros para pesquisa

Os parâmetros utilizados para pesquisa estão descritos na tabela abaixo.

Parâmetro

Tipo

Descrição

Exemplo

Parâmetro

Tipo

Descrição

Exemplo

Offset

Número

Utilizado na paginação de registros para definir a posição inicial do primeiro imóvel a ser retornado.

0

RegistrosPagina

Número

Utilizado na paginação de registros para definir a quantidade de imóveis que devem ser retornados.

25

Filtros

Array[String]

Lista de filtros que devem ser considerados na pesquisa de imóveis.

Cada filtro deve ser composto por:

  • Operador lógico (ex.: AND, OR)

  • Campo (ex.: snap_brok__Disponivel_locacao__c)

  • Operador para comparação (ex.: =, IN, NOT IN )

  • Valor (ex.: TRUE)

[ "AND snap_brok__Disponivel_venda__c = true" ,

"AND snap_brok__Banheiros__c >= 1" ,

"AND snap_brok__area_privativa__c >= 40" ,

"AND snap_brok__Dormitorios__c >=2" ,

"AND snap_brok__Situacao__c <> 'Indisponível'",

"AND snap_brok__Suites__c >= 1" ,

"AND snap_brok__Vagas__c >= 1" ,

"AND snap_brok__Valor_Condominio__c <= 500.00" ,

"AND snap_brok__Valor_locacao_total__c <= 2000.00" ,

"AND snap_brok__Valor_IPTU__c > 20",

"AND snap_brok__Tipo_uso_3__r.name IN ('Residencial','Comercial')",

"AND snap_brok__Tipo_imovel_2__r.name NOT IN ('Box','Clube')",

"AND snap_brok__Bairro_2__r.name = 'Bela Vista'",

"AND snap_brok__Cidade_2__r.name = 'São Paulo'",

"AND snap_brok__condominio__r.name = 'Residencial nova alvorada paulista'",

"AND snap_brok__Valor_desejado_aluguel__c >= 1.000" ]

Ordenacao

String

Define a regra para ordenação dos imóveis encontrados.

snap_brok__Valor_locacao_total__c DESC

Retorno da pesquisa

Retorno com sucesso

Na tabela abaixo estão descritos os campos retornados pelo serviço quando a pesquisa é realizada com sucesso.

Campo

Tipo

Descrição

Exemplo

Campo

Tipo

Descrição

Exemplo

Total

Número

Indica a quantidade total de imóveis encontrados com os filtros aplicados.

90

Mensagem

String

Mensagem do sistema

"Pesquisa realizada com sucesso"

Imoveis

Array[Imovel]

Array com os registros dos imóveis retornados pela pesquisa.

[ {

"attributes": {
"type": "snap_brok__Imovel__c",
"url": "/services/data/v51.0/sobjects/snap_brok__Imovel__c/a050B00000fnHxDQAU"
},
"Id": "a050B00000fnHxDQAU",
"Name": "Rua T-38 0 Apto 2001",
"snap_brok__area_privativa__c": 158.51,
"snap_brok__Banheiros__c": 2,
"snap_brok__Complemento__c": "Apto 2001",
"snap_brok__codigo__c": "I-001299",
"snap_brok__Disponivel_venda__c": false,
"snap_brok__Dormitorios__c": 2,

}
]

Erro

Boolean

FALSE

 

Exemplo:

 

{ "Total": 90, "Mensagem": "Pesquisa realizada com sucesso", "Imoveis": [ { "attributes": { "type": "snap_brok__Imovel__c", "url": "/services/data/v51.0/sobjects/snap_brok__Imovel__c/a050B00000fnHxDQAU" }, "Id": "a050B00000fnHxDQAU", "Name": "Rua T-38 0 Apto 2001", "snap_brok__area_privativa__c": 158.51, "snap_brok__Banheiros__c": 2, "snap_brok__Complemento__c": "Apto 2001", "snap_brok__codigo__c": "I-001299", "snap_brok__Disponivel_venda__c": false, "snap_brok__Dormitorios__c": 2, "snap_brok__Localizacao__c": null, "snap_brok__Logradouro__c": "Rua T-38", "snap_brok__Numero__c": "0", "snap_brok__Situacao__c": "Disponível", "snap_brok__Suites__c": 2, "snap_brok__Tipo_uso_3__c": "a4I0B000000RI6uUAG", "snap_brok__Tipo_imovel_2__c": "a4H0B000000QdY5UAK", "snap_brok__Vagas__c": 2, "snap_brok__Valor_Condominio__c": 77000.00, "snap_brok__Valor_locacao_total__c": 77000.00, "snap_brok__Valor_locacao_por_m2__c": 485.77, "snap_brok__Valor_IPTU__c": 9660.00, "snap_brok__Fotos_de_im_vel__r": { "totalSize": 2, "done": true, "records": [ { "attributes": { "type": "snap_brok__Foto_Imovel__c", "url": "/services/data/v51.0/sobjects/snap_brok__Foto_Imovel__c/a060B00000jrTyeQAE" }, "snap_brok__Imovel__c": "a050B00000fnHxDQAU", "Id": "a060B00000jrTyeQAE", "snap_brok__Url_imagem__c": "http://www.essenciamoveis.com.br/blog/wp-content/uploads/2017/01/cozinha-conjugada-com-sala-de-jantar.jpg", "snap_brok__Ordem__c": 1 }, { "attributes": { "type": "snap_brok__Foto_Imovel__c", "url": "/services/data/v51.0/sobjects/snap_brok__Foto_Imovel__c/a060B00000jrTyfQAE" }, "snap_brok__Imovel__c": "a050B00000fnHxDQAU", "Id": "a060B00000jrTyfQAE", "snap_brok__Url_imagem__c": "https://www.adorodecorar.com.br/wp-content/uploads/2015/07/2364-apartamentos-decorados-dicas.jpg", "snap_brok__Ordem__c": 2 } ] }, "snap_brok__Tipo_uso_3__r": { "attributes": { "type": "snap_brok__Tipo_uso__c", "url": "/services/data/v51.0/sobjects/snap_brok__Tipo_uso__c/a4I0B000000RI6uUAG" }, "Id": "a4I0B000000RI6uUAG", "Name": "Residencial" }, "snap_brok__Tipo_imovel_2__r": { "attributes": { "type": "snap_brok__Tipo_imovel__c", "url": "/services/data/v51.0/sobjects/snap_brok__Tipo_imovel__c/a4H0B000000QdY5UAK" }, "Id": "a4H0B000000QdY5UAK", "Name": "Apartamento" } } ], "Erro": false }

Retorno com erro

Campo

Tipo

Descrição

Exemplo

Campo

Tipo

Descrição

Exemplo

Total

Número

 

null

Mensagem

String

Mensagem de erro gerada pelo serviço

"Erro na pesquisa de imóveis: Erro na pesquisa de imóveis: unexpected token: '100' - linha: 493 na linha 502"

Imoveis

Array[Imovel]

 

null

Erro

Boolean

TRUE

 

Exemplo:

{ "Total": null, "Mensagem": "Erro na pesquisa de imóveis: Erro na pesquisa de imóveis: unexpected token: '100' - linha: 493 na linha 502", "Imoveis": null, "Erro": true }

Filtros

Na tabela abaixo estão relacionados os campos que são retornado pelo serviço e que também podem ser utilizados como opções de filtro.

Campo

Tipo

Descrição

Exemplo

Campo

Tipo

Descrição

Exemplo

Name

String

Nome do imóvel.

 

snap_brok__ID_externo__c

String

Código externo do imóvel.

snap_brok__ID_externo__c = 'CR25000'

ID

String

ID interno do imóvel no SnapProperty (não é o código do imóvel).

 

CreatedDate

Datetime

Data de criação do imóvel.

 

snap_brok__codigo__c

String

Código gerado pelo sistema para identificar o imóvel.

snap_brok__codigo__c = 'I-000639'

snap_brok__area_privativa__c

Número

Área privativa do imóvel.

snap_brok__area_privativa__c >= 40

snap_brok__area_comum__c

Número

Área privativa do imóvel.

 

snap_brok__area_total__c

Número

Área total do imóvel.

snap_brok__area_total__c >= 100

snap_brok__Banheiros__c

Número

Quantidade de banheiros do imóvel.

snap_brok__Banheiros__c = 1

snap_brok__Score__c

Número

Indica a relevância do imóvel.

 

snap_brok__Disponivel_locacao__c

Boolean

Indica se o imóvel está disponível para locação.

  • Se snap_brok__Disponivel_locacao__c= True, então: Disponível para locação

  • Se snap_brok__Disponivel_locacao__c= False, então: Não disponível para locação

 

snap_brok__Disponivel_venda__c

Boolean

Indica se o imóvel está disponível para venda.

  • Se snap_brok__Disponivel_venda__c = True, então: Disponível para venda

  • Se snap_brok__Disponivel_venda__c = False, então: Não disponível para venda

snap_brok__Disponivel_venda__c = true

snap_brok__Dormitorios__c

Número

Quantidade de dormitórios do imóvel.

snap_brok__Dormitorios__c >=2

snap_brok__Endereco__c

String

Indica o endereço completo do imóvel.

 

snap_brok__Localizacao__Latitude__s

Número

Identifica as coordenadas (latitude) do endereço do imóvel.

snap_brok__Localizacao__Latitude__s = -23.567124500000000

snap_brok__Localizacao__Longitude__s

Número

Identifica as coordenadas (longitude) do endereço do imóvel.

snap_brok__Localizacao__Longitude__s = -46.649992300000000

snap_brok__Logradouro__c

String

Nome da rua onde o imóvel está localizado.

 

snap_brok__Numero__c

String

Número do endereço do imóvel.

 

snap_brok__Complemento__c

String

Complemento do endereço do imóvel.

 

snap_brok__Bairro_2__r.name

String

Identifica o bairro onde o imóvel está localizado.

snap_brok__Bairro_2__r.name = 'Bela Vista'

snap_brok__Cidade_2__r.name

String

Identifica a cidade onde o imóvel está localizado.

snap_brok__Cidade_2__r.name = 'São Paulo'

snap_brok__Cep_2__r.name

String

Indica o CEP do endereço do imóvel.

AND snap_brok__Cep_2__r.name = '01310-100'

snap_brok__Quadra__c

String

Indica a quada do loteamente onde o imóvel está localizado.

 

snap_brok__Lote__c

String

Indica o número do lote onde o imóvel está localizado.

 

snap_brok__Situacao__c

String

Indica a situação do imóvel em relação à sua disponibilidade para comercialização.

snap_brok__Situacao__c = 'Contrato gerado'.

snap_brok__Suites__c

Número

Número de suítes do imóvel.

snap_brok__Suites__c = 1

snap_brok__Tipo_uso_3__r.name

String

Indica o tipo de uso do imóvel.

AND snap_brok__Tipo_uso_3__r.name IN ('Residencial','Comercial')

snap_brok__Tipo_imovel_2__r.name

String

Indica o tipo do imóvel.

AND snap_brok__Tipo_imovel_2__r.name NOT IN ('Box','Clube')

snap_brok__Vagas_cobertas__c

Número

Indica a quantidade de vagas cobertas.

 

snap_brok__Vagas_descobertas__c

Número

Indica a quantidade de vagas descobertas.

 

snap_brok__Vagas__c

Número

Indica o total de vagas (cobertas e descobertas) do imóvel.

snap_brok__Vagas__c = 1

snap_brok__Valor_Condominio__c

Número

Valor mensal do condomínio.

snap_brok__Valor_Condominio__c = 240.00

snap_brok__Valor_locacao_total__c

Número

Valor total da locação (Aluguel + IPTU + Condomínio).

snap_brok__Valor_locacao_total__c = 1840.00

snap_brok__Valor_locacao_por_m2__c

Número

 

snap_brok__Valor_locacao_por_m2__c >= 39.00

snap_brok__Valor_IPTU__c

Número

Valor mensal do IPTU.

snap_brok__Valor_IPTU__c > 50

snap_brok__descricao__c

String

Descrição do imóvel.

 

snap_brok__Altura_pe_direito__c

Número

Altura do pé direiro (m²) do imóvel.

 

snap_brok__Andar__c

Número

Número do andar onde o imóvel está localizado.

snap_brok__Andar__c = 3

snap_brok__condominio__r.name

String

Identifica o condomínio onde está localizado o imóvel.

snap_brok__condominio__r.name = 'Residencial nova alvorada paulista'

snap_brok__Valor_total_condominio__c

Número

Valor total do condomínio.

 

snap_brok__Valor_desejado_aluguel__c

Número

Indica o valor desejado do aluguel.

snap_brok__Valor_desejado_aluguel__c =

snap_brok__Valor_mensal_IPTU_rateado__c

Número

Indica o valor mensal do IPTU rateado.

snap_brok__Valor_desejado_aluguel__c >= 1000.00

snap_brok__Valor_IPTU_total__c

Número

Indica o valor total do IPTU.

 

snap_brok__valor_venda__c

Número

Valor sugerido pelo locador para venda do imóvel.

snap_brok__valor_venda__c > 250000.00

snap_brok__Valor_desejado_aluguel_antigo__c

Número

Valor desejado do aluguel anterior ao reajuste.

 

snap_brok__Tempo_vacancia__c

Número

Indica o intervalo de tempo (em dias) entre a data atual e a data de divulgação do imóvel.

 

snap_brok__Servicos_claro__c

Boolean

Indica se o imóvel possui serviço claro, sendo:

snap_brok__Servicos_claro__c = True: Possui serviço.

snap_brok__Servicos_claro__c = False: Não possui serviço.

 

snap_brok__Fotos_de_im_vel__r

Array

Retorna uma lista com as fotos do imóvel

 

snap_brok__Possui_tour_virtual__c

Boolean

Indica se o imóvel possuí tour virtual, sendo:

snap_brok__Possui_tour_virtual__c = True: Possuí tour virtual.

snap_brok__Possui_tour_virtual__c = False: Não possuí tour virtual.

 

snap_brok__Iframe_tour_virtual__c

String

Link do tour virtual.

 

snap_brok__Ar_condicionado_parede__c

Número

 

 

snap_brok__Ar_condicionado_Split__c

Número

 

 

snap_brok__Armarios_embutidos__c

Número

 

 

 

Lista de fotos

Campo

Descrição

Campo

Descrição

totalSize

Retorna a quantidade de fotos do imóvel.

done

 

snap_brok__Imovel__c

Retornar o código do imóvel vinculado a foto.

Id

Retornar o ID da foto.

snap_brok__Url_imagem__c

Retorna link da imagem principal.

snap_brok__Url_imagem_200px__c

Retorna link da imagem 200px.

snap_brok__Url_imagem_400px__c

Retorna link da imagem 400px.

snap_brok__URL_imagem_800px__c

Retorna link da imagem 800px.

snap_brok__Ordem__c

 

Exemplo:

            "snap_brok__Fotos_de_im_vel__r": {                 "totalSize": 6,                 "done": true,                 "records": [                     {                         "attributes": {                             "type": "snap_brok__Foto_Imovel__c",                             "url": "/services/data/v51.0/sobjects/snap_brok__Foto_Imovel__c/a064P00001MGDS7QAP"                         },                         "snap_brok__Imovel__c": "a05U0000000q508IAA",                         "Id": "a064P00001MGDS7QAP",                         "snap_brok__Url_imagem__c": "https://storage.googleapis.com/snapproperty_imgs/dev/a064P00001MGDS7QAP_800.jpg",                         "snap_brok__Url_imagem_200px__c": "https://storage.googleapis.com/snapproperty_imgs/dev/a064P00001MGDS7QAP_200.jpg",                         "snap_brok__Url_imagem_400px__c": "https://storage.googleapis.com/snapproperty_imgs/dev/a064P00001MGDS7QAP_400.jpg",                         "snap_brok__URL_imagem_800px__c": "https://storage.googleapis.com/snapproperty_imgs/dev/a064P00001MGDS7QAP_800.jpg",                         "snap_brok__Ordem__c": 0                     },                ]             }