Zillow Real Estate Scraper & Leads Scraper avatar

Zillow Real Estate Scraper & Leads Scraper

Pricing

Pay per usage

Go to Apify Store
Zillow Real Estate Scraper & Leads Scraper

Zillow Real Estate Scraper & Leads Scraper

Fetch real estate listings, pricing history, agent contacts, and property details from Zillow via Playwright.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

viralanalyzer

viralanalyzer

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 days ago

Last modified

Share

🏠 Zillow Real Estate Scraper — Home Listings, Prices, Zestimates & Geo Data

🔗 View on Apify Store | 🇺🇸 English | 🇧🇷 Português

Scrape real estate listings from Zillow by location — for sale, for rent, or recently sold. The actor reads Zillow's embedded search-results data and returns clean, structured records with address, price, Zestimate, beds/baths, area, geo coordinates, and listing URLs. Driven by a headless browser with residential proxies to handle Zillow's anti-bot protection.

✨ Features

  • 🏡 Location-based search — Search any US city + state (e.g. Austin TX) or ZIP code (e.g. 10001)
  • 🔁 Three listing types — For Sale, For Rent, and Recently Sold
  • 💵 Pricing data — Both the raw numeric price and the formatted price label as shown on Zillow
  • 📐 Property details — Beds, baths, and living area for each listing
  • 📊 Zestimate — Zillow's estimated market value when available
  • 📍 Geo coordinates — Latitude and longitude for mapping and spatial analysis
  • 🔗 Direct listing URLs — Full Zillow detail URL plus the listing's zpid identifier
  • 🏢 Broker info — Listing broker name when published
  • 🛡️ Anti-bot ready — Headless browser parses Zillow's __NEXT_DATA__; residential proxy by default
  • 🧭 Diagnostic mode — On a block or zero results, the run returns a setup guide (with causes and remediations) instead of charging you

📥 Input

ParameterTypeRequiredDefaultDescription
locationstringUS city + state (e.g. Austin TX, Miami FL) or a ZIP code (e.g. 10001)
listingTypestring (enum)FOR_SALEOne of FOR_SALE, FOR_RENT, RECENTLY_SOLD
maxItemsinteger25Maximum number of listings to extract. Range: 1 to 200
proxyConfigurationobject{ "useApifyProxy": true }Proxy settings. Residential proxies are required — datacenter proxies are blocked by Zillow

Input Example

{
"location": "Austin TX",
"listingType": "FOR_SALE",
"maxItems": 25,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

📤 Output

Each listing is pushed to the dataset as one record with the following fields:

FieldTypeDescription
zpidstringZillow property identifier
addressstring | nullFull street address
citystring | nullCity / community name
statestring | nullState code
zipcodestring | nullZIP code
pricenumber | nullUnformatted numeric price
priceLabelstring | nullFormatted price as displayed on Zillow (e.g. "$450,000")
bedsnumber | nullNumber of bedrooms
bathsnumber | nullNumber of bathrooms
areanumber | nullLiving area (square footage as reported by Zillow)
listingTypestringThe listing type requested (FOR_SALE, FOR_RENT, or RECENTLY_SOLD)
zestimatenumber | nullZillow's estimated market value when available
latitudenumber | nullGeographic latitude
longitudenumber | nullGeographic longitude
detailUrlstring | nullFull URL to the Zillow listing page
brokerNamestring | nullListing broker name when present
scrapedAtstringISO 8601 timestamp of extraction

Output Example

{
"zpid": "29508870",
"address": "1234 Example St, Austin, TX 78701",
"city": "Austin",
"state": "TX",
"zipcode": "78701",
"price": 450000,
"priceLabel": "$450,000",
"beds": 3,
"baths": 2,
"area": 1850,
"listingType": "FOR_SALE",
"zestimate": 462300,
"latitude": 30.2672,
"longitude": -97.7431,
"detailUrl": "https://www.zillow.com/homedetails/1234-Example-St-Austin-TX-78701/29508870_zpid/",
"brokerName": "Example Realty Group",
"scrapedAt": "2026-06-06T12:00:00.000Z"
}

ℹ️ Fields marked nullable are returned as null when Zillow does not publish that value for a given listing.

📋 Use Cases

  • Market Research — Survey active inventory, prices, and Zestimates across a target city or ZIP
  • Comparative Market Analysis (CMA) — Pull comparable homes for sale, rent, or recently sold
  • Rental Pricing — Track FOR_RENT listings to benchmark rents in a neighborhood
  • Sold-Price Tracking — Use RECENTLY_SOLD to monitor closing prices and absorption
  • Lead Generation — Collect broker names and listing URLs for outreach
  • Geo / Mapping — Plot listings on a map using the latitude/longitude fields
  • Investment Screening — Compare price, beds, baths, and area to filter candidate properties

❓ FAQ

Q: What can I put in the location field? A: A US city and state (e.g. Austin TX, Miami FL) or a ZIP code (e.g. 10001). The actor builds the Zillow search URL from this value.

Q: Why do I need residential proxies? A: Zillow blocks datacenter IPs. Residential proxies are the default and are required for reliable results. If a run is blocked, the actor saves the page HTML to the key-value store for debugging.

Q: What happens if no listings are found or the request is blocked? A: Instead of failing silently or charging you, the actor returns a diagnostic record (a setup guide with likely causes and remediations) and exits successfully without a PPE charge.

Q: How many listings can I get per run? A: Set maxItems between 1 and 200 (default 25). Results come from the first Zillow search-results page for the given location and listing type.

Q: Which listing types are supported? A: FOR_SALE (default), FOR_RENT, and RECENTLY_SOLD.

Q: Is a Zestimate always returned? A: No. zestimate is populated only when Zillow publishes one for the listing; otherwise it is null.

💰 Pricing

This actor uses Pay Per Event (PPE) pricing. You are charged per listing on the listing-scraped event — diagnostic / setup-guide runs are not charged, and the actor owner is never charged for their own runs.

For the current per-event price, see the live pricing on the actor's Apify Store page: 👉 https://apify.com/viralanalyzer/zillow-real-estate-scraper

📝 Changelog

v1.0 (Current)

  • ✅ Location-based search via city + state or ZIP code
  • ✅ Three listing types: For Sale, For Rent, Recently Sold
  • ✅ Structured output: address, price, Zestimate, beds/baths/area, geo, URLs, broker
  • ✅ Headless browser parsing of Zillow __NEXT_DATA__
  • ✅ Residential proxy by default for anti-bot resilience
  • ✅ Diagnostic setup-guide on block / zero results (no charge)
  • ✅ PPE billing on listing-scraped with owner-skip

🏠 Zillow Real Estate Scraper — Imóveis, Preços, Zestimates & Geolocalização

🇺🇸 English | 🇧🇷 Português

Extraia anúncios de imóveis do Zillow por localização — à venda, para alugar ou vendidos recentemente. O actor lê os dados de resultados de busca embutidos na página do Zillow e retorna registros estruturados com endereço, preço, Zestimate, quartos/banheiros, área, coordenadas geográficas e URLs dos anúncios. Usa um navegador headless com proxies residenciais para lidar com a proteção anti-bot do Zillow.

✨ Funcionalidades

  • 🏡 Busca por localização — Pesquise qualquer cidade + estado dos EUA (ex: Austin TX) ou CEP/ZIP (ex: 10001)
  • 🔁 Três tipos de anúncio — À Venda, Para Alugar e Vendidos Recentemente
  • 💵 Dados de preço — Tanto o preço numérico bruto quanto o rótulo de preço formatado como exibido no Zillow
  • 📐 Detalhes do imóvel — Quartos, banheiros e área de cada anúncio
  • 📊 Zestimate — Valor de mercado estimado pelo Zillow, quando disponível
  • 📍 Coordenadas geográficas — Latitude e longitude para mapeamento e análise espacial
  • 🔗 URLs diretas — URL completa da página do imóvel mais o identificador zpid
  • 🏢 Dados da imobiliária — Nome do corretor/imobiliária quando publicado
  • 🛡️ Pronto contra anti-bot — Navegador headless processa o __NEXT_DATA__ do Zillow; proxy residencial por padrão
  • 🧭 Modo diagnóstico — Em bloqueio ou zero resultados, a execução retorna um guia de configuração (com causas e correções) em vez de cobrar

📥 Entrada

ParâmetroTipoObrigatórioPadrãoDescrição
locationstringCidade + estado dos EUA (ex: Austin TX, Miami FL) ou um CEP/ZIP (ex: 10001)
listingTypestring (enum)FOR_SALEUm dos valores FOR_SALE, FOR_RENT, RECENTLY_SOLD
maxItemsinteiro25Número máximo de anúncios a extrair. Faixa: 1 a 200
proxyConfigurationobjeto{ "useApifyProxy": true }Configuração de proxy. Proxies residenciais são obrigatórios — proxies datacenter são bloqueados pelo Zillow

Exemplo de Entrada

{
"location": "Austin TX",
"listingType": "FOR_SALE",
"maxItems": 25,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"]
}
}

📤 Saída

Cada anúncio é enviado ao dataset como um registro com os seguintes campos:

CampoTipoDescrição
zpidstringIdentificador do imóvel no Zillow
addressstring | nullEndereço completo
citystring | nullCidade / comunidade
statestring | nullSigla do estado
zipcodestring | nullCEP/ZIP
pricenúmero | nullPreço numérico não formatado
priceLabelstring | nullPreço formatado como exibido no Zillow (ex: "$450,000")
bedsnúmero | nullNúmero de quartos
bathsnúmero | nullNúmero de banheiros
areanúmero | nullÁrea útil (metragem conforme reportado pelo Zillow)
listingTypestringO tipo de anúncio solicitado (FOR_SALE, FOR_RENT ou RECENTLY_SOLD)
zestimatenúmero | nullValor de mercado estimado pelo Zillow, quando disponível
latitudenúmero | nullLatitude geográfica
longitudenúmero | nullLongitude geográfica
detailUrlstring | nullURL completa para a página do anúncio no Zillow
brokerNamestring | nullNome do corretor/imobiliária quando presente
scrapedAtstringTimestamp ISO 8601 da extração

Exemplo de Saída

{
"zpid": "29508870",
"address": "1234 Example St, Austin, TX 78701",
"city": "Austin",
"state": "TX",
"zipcode": "78701",
"price": 450000,
"priceLabel": "$450,000",
"beds": 3,
"baths": 2,
"area": 1850,
"listingType": "FOR_SALE",
"zestimate": 462300,
"latitude": 30.2672,
"longitude": -97.7431,
"detailUrl": "https://www.zillow.com/homedetails/1234-Example-St-Austin-TX-78701/29508870_zpid/",
"brokerName": "Example Realty Group",
"scrapedAt": "2026-06-06T12:00:00.000Z"
}

ℹ️ Os campos marcados como anuláveis retornam null quando o Zillow não publica aquele valor para o anúncio.

📋 Casos de Uso

  • Pesquisa de Mercado — Levante o estoque ativo, preços e Zestimates em uma cidade ou CEP/ZIP alvo
  • Análise Comparativa de Mercado (CMA) — Obtenha imóveis comparáveis à venda, para alugar ou vendidos recentemente
  • Precificação de Aluguel — Acompanhe anúncios FOR_RENT para comparar aluguéis em um bairro
  • Acompanhamento de Vendas — Use RECENTLY_SOLD para monitorar preços de fechamento e absorção
  • Geração de Leads — Colete nomes de corretores e URLs de anúncios para prospecção
  • Geo / Mapeamento — Plote anúncios em um mapa usando os campos de latitude/longitude
  • Triagem de Investimentos — Compare preço, quartos, banheiros e área para filtrar imóveis candidatos

❓ Perguntas Frequentes

P: O que posso colocar no campo location? R: Uma cidade e estado dos EUA (ex: Austin TX, Miami FL) ou um CEP/ZIP (ex: 10001). O actor monta a URL de busca do Zillow a partir desse valor.

P: Por que preciso de proxies residenciais? R: O Zillow bloqueia IPs de datacenter. Proxies residenciais são o padrão e são obrigatórios para resultados confiáveis. Se uma execução for bloqueada, o actor salva o HTML da página no key-value store para depuração.

P: O que acontece se nenhum anúncio for encontrado ou a requisição for bloqueada? R: Em vez de falhar silenciosamente ou cobrar você, o actor retorna um registro de diagnóstico (um guia de configuração com causas prováveis e correções) e finaliza com sucesso, sem cobrança PPE.

P: Quantos anúncios posso obter por execução? R: Defina maxItems entre 1 e 200 (padrão 25). Os resultados vêm da primeira página de resultados de busca do Zillow para a localização e o tipo de anúncio informados.

P: Quais tipos de anúncio são suportados? R: FOR_SALE (padrão), FOR_RENT e RECENTLY_SOLD.

P: O Zestimate é sempre retornado? R: Não. O campo zestimate é preenchido apenas quando o Zillow publica um para o anúncio; caso contrário, é null.

💰 Preços

Este actor usa precificação Pay Per Event (PPE). Você é cobrado por anúncio no evento listing-scraped — execuções em modo diagnóstico / guia de configuração não são cobradas, e o proprietário do actor nunca é cobrado pelas próprias execuções.

Para o preço por evento atual, consulte a precificação ao vivo na página do actor na Apify Store: 👉 https://apify.com/viralanalyzer/zillow-real-estate-scraper

🔗 Actors Relacionados

📝 Changelog

v1.0 (Atual)

  • ✅ Busca por localização via cidade + estado ou CEP/ZIP
  • ✅ Três tipos de anúncio: À Venda, Para Alugar, Vendidos Recentemente
  • ✅ Saída estruturada: endereço, preço, Zestimate, quartos/banheiros/área, geo, URLs, corretor
  • ✅ Processamento via navegador headless do __NEXT_DATA__ do Zillow
  • ✅ Proxy residencial por padrão para resiliência anti-bot
  • ✅ Guia de configuração diagnóstico em bloqueio / zero resultados (sem cobrança)
  • ✅ Cobrança PPE no evento listing-scraped com isenção do proprietário