About zillow-leads-property-data
zillow-leads-property-data is a documentation and sample repository for an Apify actor that collects Zillow listings, with optional property and contact enrichment. It supports lead-generation workflows that use listing details, agent contacts, and property histories.
Key features
- 01Bare or enriched listing data
- 02Agent and broker contact details
- 03Price and tax history timelines
- 04Foreclosure, school, and property details
- 05Samples, quickstarts, and workflow notebook
Use cases
- 01Finding listings with agent phone numbers
- 02Building a lead-generation dataset
- 03Deduplicating listings across repeat orders
MCP support
The repository describes an actor callable through Apify's hosted MCP server or the local `@apify/actors-mcp-server`. It includes an MCP server directory, but this repository itself provides documentation and samples rather than running the actor.
Configuration
Local server config is the same for every client. Copy it into your client’s MCP config file.
We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.
Tools
Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.
Details
From the project READMEzillow-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.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.