zillow-leads-property-data
an actor pulls Zillow listings enriched with agent/broker contact info, full price-history timelines, 20yr+ tax history, foreclosure/distress flags, schools, and the resoFacts long tail (heating/cooling/construction).
README
zillow-leads-property-data
Code samples, a sample dataset, and a full workflow notebook for the Zillow Leads & Property Data Apify actor.
The actor pulls Zillow listings enriched with agent/broker contact info, full price-history timelines, 20yr+ tax history, foreclosure/distress flags, schools, and the resoFacts long tail (heating/cooling/construction). Pay-per-event pricing, no subscription: $0.70 per 1,000 bare rows, $1.20 per 1,000 enriched rows.
- Actor: https://apify.com/germane_binoculars/zillow-leads-property-data
- Architecture writeup: Predictable web scraping with web extensions — why this actor runs on a real browser session instead of a proxy farm, and what that buys you against Zillow's PerimeterX + AWS WAF.
Try it in 30 seconds, no signup beyond an Apify account
The actor's catalog mode returns a cached, already-enriched snapshot
instantly, no bounding box, no wait:
{ "mode": "catalog", "metro": "Chicago" }
Run it from the Apify Console
or via apify-client (see examples/ below).
What's in this repo
| Path | What it is |
|---|---|
sample/sample_listings.csv |
20 real enriched rows (Chicago/Houston/Phoenix) — flat, spreadsheet-ready |
sample/sample_listings.jsonl |
Same rows, one JSON object per line, with a nested price_history array per listing |
examples/python_quickstart.py |
Call the actor from Python via apify-client, wait for results, print a summary |
examples/node_quickstart.js |
Same, in Node, via apify-client |
mcp-server/ |
One-tool MCP server for Claude Desktop, Cursor and any MCP client; see mcp-server/README.md |
notebook/zillow_leads_workflow.ipynb |
A realistic lead-gen workflow: run the actor, dedupe against a prior export, filter to rows with agent phone numbers, export a clean CSV |
Field reference
Two depths, listings (bare) and enriched (the default):
listings: address, price, beds/baths, status, lot/living area, listing-type flags — whatever Zillow's own search API returns, no detail-page fetch involved. Seesample_listings.csvfor the shape (a subset of the columns shown there — the sample above is enriched-depth, listings-depth rows omit everything past the bare fields).enriched(default): everything inlistings, plus agent/broker contact (name, phone, email, brokerage, MLS attribution), full price-history and 20yr+ tax-history timelines, foreclosure/distress signals, assigned + nearby schools, HOA fees, and the resoFacts long tail (heating/cooling/parking/construction).
Full field list, pricing table, and every input mode (catalog / custom_search / recent_activity) are documented on the actor's own README.
Dedup across repeat orders
Every delivery writes a DEDUP_UPDATE record to the run's key-value store:
the union of the zpids and MLS IDs you already had plus everything just shipped.
Feed those two arrays back into your next order's dedupZpids/dedupMlsIds
fields and you're never charged for the same row twice. See
notebook/zillow_leads_workflow.ipynb for a worked example.
Use it from an AI agent (MCP)
This actor is callable as a tool via Apify's hosted MCP server
(https://mcp.apify.com) or the local @apify/actors-mcp-server, no manual
input-form filling required — catalog mode (the default) is a good agent
smoke test since it returns cached rows in seconds with no polling loop
needed. See the actor's own README for the full agent-facing input schema
and the fire/poll/fetch pattern for a live-collection order.
Questions / issues
This repo is documentation and samples only — it doesn't run the actor
itself. For a specific order that isn't behaving as expected, check that
run's key-value store STATUS record first (the actor writes a plain-English
reason there for any zero-row or partial result), then open an issue here or
reach out via the actor's Apify Store page.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.