Você precisa implementar um recurso imobiliário que encontre listagens ativas em uma cidade, dentro de um raio ou delimitado por um polígono personalizado—e você precisa que isso funcione esta semana. Ao final deste guia, você será capaz de pesquisar dados de propriedades ao vivo por localização, coordenadas e polígonos usando a API de Dados do Zillow em Tempo Real no Zyla API Hub, analisar os campos de resposta que você se importa (zpid, preço, endereço, zestimate, quartos, banheiros) e integrá-lo ao seu aplicativo ou a um fluxo de trabalho de agente de IA.
O que esta API faz e quando usá-la
A API de Dados do Zillow em Tempo Real fornece pesquisa programática em listagens do Zillow. Você pode:
- Pesquisar por localização (cidade, condado, bairro ou CEP) com paginação e filtros de status.
- Pesquisar em torno de um ponto de lat/long com um diâmetro (milhas ou quilômetros não especificados pela documentação do hub; trate isso como um “raio de pesquisa” abstrato).
- Pesquisar dentro de um polígono arbitrário para limites geográficos mais detalhados.
Integrações típicas incluem UIs de pesquisa de propriedades, roteamento de leads com base em geofences de listagens, trabalhos diários de atualização de comparações e sistemas de alerta que disparam quando novas listagens “FOR_SALE” aparecem dentro de um polígono.
Esta API está disponível no Zyla API Hub, um marketplace com mais de 10.000 APIs públicas sob uma única conta, uma chave de API e um modelo de assinatura.
Começando no Zyla API Hub
Para obter uma chave de API:
- Acesse a página da API de Dados do Zillow em Tempo Real e inicie um teste: Iniciar teste de 7 dias na API de Dados do Zillow em Tempo Real.
- Clique em Assinar (ou Iniciar Teste Gratuito quando disponível) e obtenha sua chave de API.
- Use a chave no cabeçalho de Autorização como: Authorization: Bearer YOUR_API_KEY.
A cobrança no Zyla é por assinatura + cota (não por chamada). Verifique a página da API para opções de acesso e preços atuais.
Endpoints que você pode chamar hoje
Todas as requisições são GETs para URLs do Zyla Hub e devem incluir seu cabeçalho de Autorização. Abaixo estão os três endpoints disponíveis com suas URLs e parâmetros exatos.
1) Pesquisa (por cidade/condado/bairro/CEP)
Método: GET
URL: https://zylalabs.com/api/7341/real-time-zillow-data-api/11667/search
Parâmetros:
- location (string, obrigatório): e.g., Los Angeles, CA
- page (string, opcional): e.g., 2
- home_status (string, opcional): e.g., FOR_SALE
Curl oficial (copiar/colar):
curl -s -X GET "https://zylalabs.com/api/7341/real-time-zillow-data-api/11667/search?location=Los+Angeles%2C+CA&page=2&home_status=FOR_SALE" \
-H "Authorization: Bearer YOUR_API_KEY"
Exemplo de resposta oficial:
{
"status": "OK",
"request_id": "81fc95df-86f3-44b7-a3dc-1d81abcd7a97",
"parameters": {
"page": 2,
"home_status": "FOR_SALE",
"sort": "DEFAULT",
"listing_type": "BY_AGENT",
"location": "Los Angeles, CA"
},
"data": [
{
"zpid": "136702358",
"homeStatus": "FOR_SALE",
"detailUrl": "https://www.zillow.com/homedetails/24425-Woolsey-Canyon-Rd-SPC-39-Canoga-Park-CA-91304/136702358_zpid/",
"address": "24425 Woolsey Canyon Rd Spc 39, Canoga Park, CA 91304",
"streetAddress": "24425 Woolsey Canyon Rd Spc 39",
"city": "Canoga Park",
"state": "CA",
"country": "USA",
"zipcode": "91304",
"latitude": 34.235462,
"longitude": -118.661224,
"homeType": "MANUFACTURED",
"price": 99500,
"currency": "USD",
"zestimate": 178100,
"rentZestimate": 3439,
"taxAssessedValue": 21901,
"bathrooms": 2,
"bedrooms": 4,
"livingArea": 1818,
"daysOnZillow": 5,
"isFeatured": false,
"isPreforeclosureAuction": false,
"timeOnZillow": 498172000,
"isNonOwnerOccupied": true,
"isPremierBuilder": false,
"isZillowOwned": false,
"unit": "Spc 39",
"isShowcaseListing": false,
"listingSubType": {
"is_FSBA": true
},
"palsId": "3007_SR26162189",
"id": "136702358",
"rawHomeStatusCd": "ForSale",
"marketingStatusSimplifiedCd": "For Sale by Agent",
"imgSrc": "https://photos.zillowstatic.com/fp/1d8602169bd359c27caa6d6e25cdf662-p_e.jpg",
"hasImage": true,
"statusType": "FOR_SALE",
"statusText": "Casa à venda",
"countryCurrency": "$",
"unformattedPrice": 99500,
"addressStreet": "24425 Woolsey Canyon Rd Spc 39",
"addressCity": "Canoga Park",
"addressState": "CA",
"addressZipcode": "91304",
"isUndisclosedAddress": false,
"shouldShowRequestOnPrice": false,
"beds": 4,
"baths": 2,
"area": 1818,
"latLong": {
"latitude": 34.235462,
"longitude": -118.661224
},
"flexFieldText": "5 dias em…
O que você normalmente lerá de cada item em dados:
- zpid: identificador único da listagem que você pode armazenar em seu DB e usar como uma chave idempotente.
- preço e moeda: preço de venda numérico e sua moeda (e.g., USD).
- endereço, cidade, estado, zipcode: informações de exibição e geocodificação para sua UI.
- quartos, banheiros, área útil: especificações principais para filtros e badges.
- latitude, longitude (e latLong): colocação no mapa e cálculos de proximidade.
- zestimate e rentZestimate: valores de referência para contexto de preços.
- homeStatus (e.g., FOR_SALE) e daysOnZillow: status e recência.
Paginando: use o parâmetro page para percorrer as páginas de resultados. A resposta ecoa a página de entrada. Construa sua UI/worker de paginação para incrementar a página até sua condição de parada (como não haver mais resultados) com base na lógica de sua aplicação.
2) Pesquisa por Coordenadas (ponto central + diâmetro)
Método: GET
URL: https://zylalabs.com/api/7341/real-time-zillow-data-api/11668/search-by-coordinates
Parâmetros:
- long (string, obrigatório): e.g., -118.504744
- lat (string, obrigatório): e.g., 34.01822
- diameter (string, opcional): e.g., 2
Curl oficial (copiar/colar):
Exemplo de resposta (excerto fornecido pela listagem do hub):
Use isso quando os usuários moverem um mapa ao redor de um ponto central ou quando você geofence ao redor de uma loja, escola ou estação de transporte. A resposta inclui os mesmos campos principais que o endpoint de Pesquisa.
3) Pesquisa por Polígono (geofence arbitrário)
Método: GET
URL: https://zylalabs.com/api/7341/real-time-zillow-data-api/11669/search-by-polygon
Parâmetros:
- polygon (string, obrigatório): pares de coordenadas long lat separados por espaços (nesta ordem), separados por vírgulas. Exemplo fornecido abaixo.
Curl oficial (copiar/colar):
Exemplo de resposta (excerto fornecido pela listagem do hub):
Use isso para pesquisas em formato de bairro, zonas de atendimento escolar, áreas de inundação ou outros limites não padrão. O parâmetro polígono é uma única string; certifique-se de codificá-lo em URL como no exemplo de curl.
Autenticação e cabeçalhos
- Cabeçalho: Authorization: Bearer YOUR_API_KEY
- Nenhum outro cabeçalho é necessário na documentação do hub.
- Todos os exemplos abaixo visam as URLs do hub em zylalabs.com exatamente como mostrado.
Exemplo mínimo em Python: pesquisar listagens “FOR_SALE” em Los Angeles (página 2)
Este exemplo chama o endpoint de Pesquisa e extrai os campos principais que um cartão de listagem típico precisa. Ele espelha os parâmetros do curl oficial.
import os
import requests
API_KEY = os.getenv("ZYLA_API_KEY", "YOUR_API_KEY")
url = "https://zylalabs.com/api/7341/real-time-zillow-data-api/11667/search"
params = {
"location": "Los Angeles, CA",
"page": "2",
"home_status": "FOR_SALE"
}
headers = {
"Authorization": f"Bearer {API_KEY}"
}
resp = requests.get(url, params=params, headers=headers, timeout=30)
resp.raise_for_status()
payload = resp.json()
print("Status:", payload.get("status"))
print("Request ID:", payload.get("request_id"))
for item in payload.get("data", []):
listing = {
"zpid": item.get("zpid"),
"status": item.get("homeStatus") or item.get("statusType"),
"price": item.get("price"),
"currency": item.get("currency"),
"address": item.get("address"),
"city": item.get("city") or item.get("addressCity"),
"state": item.get("state") or item.get("addressState"),
"zipcode": item.get("zipcode") or item.get("addressZipcode"),
"bedrooms": item.get("bedrooms") or item.get("beds"),
"bathrooms": item.get("bathrooms") or item.get("baths"),
"livingArea": item.get("livingArea") or item.get("area"),
"latitude": item.get("latitude") or (item.get("latLong") or {}).get("latitude"),
"longitude": item.get("longitude") or (item.get("latLong") or {}).get("longitude"),
"zestimate": item.get("zestimate"),
"rentZestimate": item.get("rentZestimate"),
"detailUrl": item.get("detailUrl"),
"imgSrc": item.get("imgSrc"),
"daysOnZillow": item.get("daysOnZillow")
}
print(listing)
Notas:
- A resposta inclui tanto campos normalizados (e.g., quartos, banheiros) quanto às vezes nomes alternativos (camas, banheiros, área). O exemplo acima verifica ambos.
- Lat/long pode aparecer tanto no nível superior quanto dentro de latLong. O trecho recua se necessário.
- Use request_id para registro e correlação entre tentativas.
Detalhes práticos de implementação
- Paginando: o parâmetro page é uma string na interface do hub. Incremente-o como strings (“1”, “2”, “3”, …). Pare quando sua aplicação decidir que não há mais resultados relevantes.
- Filtrando por status: home_status aceita valores como FOR_SALE (como mostrado). Mantenha seus filtros de UI alinhados com os valores permitidos que você passa.
- Consultas de localização: location aceita entradas legíveis por humanos, como “Los Angeles, CA”. Para consultas de CEP ou bairro, passe esses nomes diretamente na localização.
- Coordenadas vs polígono: prefira coordenadas + diâmetro para pesquisas circulares simples (e.g., “dentro de 2 unidades deste ponto”). Use polígonos para formas precisas ao redor de bairros, zonas escolares ou limites personalizados.
- Cache e polling: se você atualizar periodicamente, armazene zpid e timestamps atualizados em seu DB para evitar duplicatas. A resposta inclui campos de status e zestimate úteis para detecção de mudanças.
- Unidades e moeda: os preços aparecem na moeda “USD” nos exemplos. As unidades de área do lote podem ser “sqft” em algumas respostas. Exiba os valores como estão na resposta para clareza.
Casos de uso do mundo real que você pode implementar esta semana
- Página de pesquisa da cidade: Use o endpoint de Pesquisa com localização para renderizar cartões. Adicione paginação com page=2,3,…
- Pesquisa “Perto de mim”: Use Pesquisa por Coordenadas centrada na localização do dispositivo do usuário. Ajuste o diâmetro para corresponder à sua UX (e.g., um controle deslizante).
- Alertas de polígono: Armazene polígonos definidos pelo usuário para “áreas de vigilância.” Execute Pesquisa por Polígono em um cronograma e envie e-mail ou notifique quando uma nova listagem FOR_SALE aparecer (compare por zpid).
- Ferramenta de desenho de mapa: Deixe os usuários desenhar uma forma em um mapa e converter para uma string de parâmetro de polígono (pares lon lat). Chame Pesquisa por Polígono e mostre os resultados como pinos.
- Roteamento de leads: Ingestão de resultados e roteamento para agentes com base na cidade da listagem ou na associação ao polígono.
Chamando esta API de agentes de IA via MCP
Toda API no Zyla pode ser invocada de um cliente compatível com MCP (Claude Code, Cursor, Windsurf e outros) através do endpoint MCP. Forneça sua chave via a string de consulta da URL MCP e emita chamadas de ferramenta que mapeiem para os mesmos endpoints e parâmetros do hub que você vê acima. Veja MCP para detalhes. Um fluxo típico:
- Configure seu cliente MCP com o endpoint MCP e sua chave.
- Instruir o agente a chamar os endpoints de Pesquisa ou geoespaciais usando as URLs e parâmetros exatos do hub mostrados neste artigo.
- Analise os mesmos campos JSON (zpid, preço, endereço, zestimate, latitude/longitude) para tarefas subsequentes, como redigir resumos de propriedades ou atualizar seu CRM.
Exemplos de ponta a ponta para cada estilo de pesquisa
Pesquisa por cidade/CEP
Use quando você tiver uma cidade ou código postal inserido pelo usuário.
Analise data[].zpid, data[].price, data[].address, data[].bedrooms, data[].bathrooms, data[].livingArea para cartões de UI.
Raio de geofence (centro do mapa)
Use após o usuário mover/zoomer um mapa, ou para cobrir um raio centrado em um POI.
Exiba pinos usando latitude/longitude e mostre detailUrl quando um pino for clicado.
Limite de polígono
Use para zonas escolares, limites de HOA ou qualquer fluxo de trabalho de desenho personalizado no mapa. Codifique pares “lon lat”, separados por vírgulas, e escape a string da URL.
Preocupações operacionais
- Tratamento de erros: registre status e request_id para depuração. Implemente backoff e tentativas de acordo com os padrões do seu aplicativo quando ocorrerem erros de transporte.
- Quotas: sua assinatura governa as cotas mensais. Monitore o uso em seu painel do Zyla. Não há pagamento por chamada aqui; é assinatura + cota.
- Frescura dos dados: projete sua cadência de sincronização com base nas expectativas de seus usuários. Se você precisar de atualizações quase em tempo real, consulte partes geográficas menores com mais frequência.
- Normalização: persista um esquema derivado em seu DB com os campos que sua UI precisa, indexados por zpid, e mantenha uma coluna JSON de origem para auditoria.
Para onde ir a seguir
- Navegue e assine no Zyla: Zyla API Hub.
- Integre a API de Dados do Zillow em Tempo Real agora: Iniciar teste de 7 dias na API de Dados do Zillow em Tempo Real.
FAQ
P1: Que cabeçalho eu preciso para autenticar?
A1: Use Authorization: Bearer YOUR_API_KEY. Obtenha sua chave na página da API no Zyla após se inscrever.
P2: Posso filtrar apenas listagens ativas?
A2: Sim. Passe home_status=FOR_SALE onde suportado (e.g., o endpoint de Pesquisa). A resposta ecoa seus parâmetros para que você possa verificar os filtros aplicados.
P3: Como faço para lidar com paginação?
A3: Use o parâmetro page como uma string e incremente-o para páginas subsequentes. Os parâmetros da resposta.page ecoam a página atual.
P4: Qual é a diferença entre pesquisas por coordenadas e por polígono?
A4: Coordenadas + diâmetro cria uma pesquisa circular em torno de um único ponto. Pesquisas por polígono aceitam um limite arbitrário (pares lon lat) para geofences precisas.
P5: Existe um plano gratuito?
A5: Não há plano gratuito. Você pode iniciar um teste a partir da listagem da API. Verifique a página da API para opções de acesso e preços atuais.
Pronto para implementar? Abra a listagem do marketplace e inicie seu teste para obter uma chave de API: API de Dados do Zillow em Tempo Real. Com uma única conta no Zyla API Hub, você pode chamar esta e milhares de outras APIs de imóveis e habitação sob uma única chave.