Zillow Real Estate Scraper & Leads Scraper avatar

Zillow Real Estate Scraper & Leads Scraper

Pricing

from $1.30 / 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 $1.30 / 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

7 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.

⚠️ Read before your first run. Measured empirically: Zillow's WAF blocks both Apify Datacenter and Apify Residential IP ranges — residential alone returns HTTP 403. A reliable run needs an unblocker/Web Unlocker endpoint supplied through proxyConfiguration.proxyUrls (e.g. a Bright Data Web Unlocker). Without one, expect the diagnostic row rather than listings. The diagnostic is not billed, so a blocked run costs you compute only.

✨ 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 aware — parses Zillow's __NEXT_DATA__; detects the block and reports it instead of returning nothing silently
  • 🧭 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 }Set proxyUrls to an unblocker endpoint. Apify Datacenter and Residential are both 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

✅ Capabilities & Limits

Stated up front, so you do not pay a run to find out. Derived from the actor's own input schema.

Input / featureSupportedNotes
Locationlocation — required; Austin TX, Miami FL or a ZIP like 10001
Listing typelistingType — For Sale, For Rent, Recently Sold
Apify Residential proxyNot sufficientreturns HTTP 403 — confirmed empirically
Apify Datacenter proxyblocked
Unblocker endpoint via proxyConfiguration.proxyUrls⚠️ Required in practicee.g. Bright Data Web Unlocker; budget for it separately from Apify
Result volume⚠️maxItems from 1 to 200 per run
Agent contact detailsnot extracted
Off-market / FSBOwhat Zillow lists publicly for the chosen type
Zestimate historycurrent values only

❓ 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: Is Apify's residential proxy enough? A: No. Confirmed empirically: Zillow blocks Apify Datacenter and Residential IP ranges — residential alone returns HTTP 403. Point proxyConfiguration.proxyUrls at an unblocker endpoint (Bright Data Web Unlocker or equivalent). When a run is blocked, the actor saves the page HTML to the key-value store and returns an unbilled diagnostic naming this remedy.

Q: What happens if no listings are found or the request is blocked? A: Two different outcomes, neither of them billed:

  • Blocked (anti-bot detected): a diagnostic record with causes and remediations, run exits SUCCEEDED.
  • Zero listings with no block detected (empty search, or Zillow changed its __NEXT_DATA__ structure): the run exits FAILED with a [FAIL] status message, so selector drift is not silently absorbed as "no results".

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

$0.0025 per listing returned (listing-scraped), plus the Apify platform usage of the run, billed to you at Apify's standard rates and shown on the run page.

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__
  • ✅ Block detection with an unbilled diagnostic naming the unblocker remedy
  • ✅ 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

$0.0025 por anúncio retornado (listing-scraped), mais o uso de plataforma da Apify da execução, cobrado de você nas tarifas padrão e visível na página da run.

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