Zillow Real Estate Scraper & Leads Scraper
Pricing
from $1.30 / 1,000 listing scrapeds
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 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.
⚠️ 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
zpididentifier - 🏢 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
| 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 } | 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:
| 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
✅ Capabilities & Limits
Stated up front, so you do not pay a run to find out. Derived from the actor's own input schema.
| Input / feature | Supported | Notes |
|---|---|---|
| Location | ✅ | location — required; Austin TX, Miami FL or a ZIP like 10001 |
| Listing type | ✅ | listingType — For Sale, For Rent, Recently Sold |
| Apify Residential proxy | ❌ Not sufficient | returns HTTP 403 — confirmed empirically |
| Apify Datacenter proxy | ❌ | blocked |
Unblocker endpoint via proxyConfiguration.proxyUrls | ⚠️ Required in practice | e.g. Bright Data Web Unlocker; budget for it separately from Apify |
| Result volume | ⚠️ | maxItems from 1 to 200 per run |
| Agent contact details | ❌ | not extracted |
| Off-market / FSBO | ❌ | what Zillow lists publicly for the chosen type |
| Zestimate history | ❌ | current 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
🔗 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__ - ✅ Block detection with an unbilled diagnostic naming the unblocker remedy
- ✅ 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
$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
- 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