Zillow Real Estate Scraper & Leads Scraper
Pricing
Pay per usage
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
11 days ago
Last modified
Categories
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
zpididentifier - 🏢 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
location | string | ✅ | — | US city + state (e.g. Austin TX, Miami FL) or a ZIP code (e.g. 10001) |
listingType | string (enum) | ❌ | FOR_SALE | One of FOR_SALE, FOR_RENT, RECENTLY_SOLD |
maxItems | integer | ❌ | 25 | Maximum number of listings to extract. Range: 1 to 200 |
proxyConfiguration | object | ❌ | { "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:
| Field | Type | Description |
|---|---|---|
zpid | string | Zillow property identifier |
address | string | null | Full street address |
city | string | null | City / community name |
state | string | null | State code |
zipcode | string | null | ZIP code |
price | number | null | Unformatted numeric price |
priceLabel | string | null | Formatted price as displayed on Zillow (e.g. "$450,000") |
beds | number | null | Number of bedrooms |
baths | number | null | Number of bathrooms |
area | number | null | Living area (square footage as reported by Zillow) |
listingType | string | The listing type requested (FOR_SALE, FOR_RENT, or RECENTLY_SOLD) |
zestimate | number | null | Zillow's estimated market value when available |
latitude | number | null | Geographic latitude |
longitude | number | null | Geographic longitude |
detailUrl | string | null | Full URL to the Zillow listing page |
brokerName | string | null | Listing broker name when present |
scrapedAt | string | ISO 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
nullwhen 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_RENTlistings to benchmark rents in a neighborhood - Sold-Price Tracking — Use
RECENTLY_SOLDto 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
🔗 Related Actors
- Brazil Real Estate Scraper — Real estate listings for the Brazilian market
- Google Maps BR Scraper — Business and location data extraction
- Amazon Brazil Intelligence — E-commerce product intelligence
- CNPJ Enricher — Brazilian company data enrichment
📝 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-scrapedwith 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âmetro | Tipo | Obrigatório | Padrão | Descrição |
|---|---|---|---|---|
location | string | ✅ | — | Cidade + estado dos EUA (ex: Austin TX, Miami FL) ou um CEP/ZIP (ex: 10001) |
listingType | string (enum) | ❌ | FOR_SALE | Um dos valores FOR_SALE, FOR_RENT, RECENTLY_SOLD |
maxItems | inteiro | ❌ | 25 | Número máximo de anúncios a extrair. Faixa: 1 a 200 |
proxyConfiguration | objeto | ❌ | { "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:
| Campo | Tipo | Descrição |
|---|---|---|
zpid | string | Identificador do imóvel no Zillow |
address | string | null | Endereço completo |
city | string | null | Cidade / comunidade |
state | string | null | Sigla do estado |
zipcode | string | null | CEP/ZIP |
price | número | null | Preço numérico não formatado |
priceLabel | string | null | Preço formatado como exibido no Zillow (ex: "$450,000") |
beds | número | null | Número de quartos |
baths | número | null | Número de banheiros |
area | número | null | Área útil (metragem conforme reportado pelo Zillow) |
listingType | string | O tipo de anúncio solicitado (FOR_SALE, FOR_RENT ou RECENTLY_SOLD) |
zestimate | número | null | Valor de mercado estimado pelo Zillow, quando disponível |
latitude | número | null | Latitude geográfica |
longitude | número | null | Longitude geográfica |
detailUrl | string | null | URL completa para a página do anúncio no Zillow |
brokerName | string | null | Nome do corretor/imobiliária quando presente |
scrapedAt | string | Timestamp 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
nullquando 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_RENTpara comparar aluguéis em um bairro - Acompanhamento de Vendas — Use
RECENTLY_SOLDpara 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
- Brazil Real Estate Scraper — Anúncios de imóveis do mercado brasileiro
- Google Maps BR Scraper — Extração de dados de empresas e locais
- Amazon Brazil Intelligence — Inteligência de produtos de e-commerce
- CNPJ Enricher — Enriquecimento de dados empresariais brasileiros
📝 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-scrapedcom isenção do proprietário