Zillow Real Estate Scraper & Leads Scraper avatar

Zillow Real Estate Scraper & Leads Scraper

Pricing

from $2.50 / 1,000 listing scrapeds

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

from $2.50 / 1,000 listing scrapeds

Rating

0.0

(0)

Developer

viralanalyzer

viralanalyzer

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 hours 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