{
  "markdown": "# zillow-leads-property-data\n\nCode samples, a sample dataset, and a full workflow notebook for the\n[Zillow Leads & Property Data](https://apify.com/germane_binoculars/zillow-leads-property-data)\nApify actor.\n\nThe actor pulls Zillow listings enriched with agent/broker contact info,\nfull price-history timelines, 20yr+ tax history, foreclosure/distress flags,\nschools, and the resoFacts long tail (heating/cooling/construction). Pay-per-event\npricing, no subscription: **$0.70 per 1,000 bare rows, $1.20 per\n1,000 enriched rows.**\n\n- **Actor:** https://apify.com/germane_binoculars/zillow-leads-property-data\n- **Architecture writeup:** [Predictable web scraping with web extensions](https://dev.to/kinuthia_matata_842726bc3/predictable-web-scraping-with-web-extensions-a-more-localized-apify-approach-12jn) — 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.\n\n## Try it in 30 seconds, no signup beyond an Apify account\n\nThe actor's `catalog` mode returns a cached, already-enriched snapshot\ninstantly, no bounding box, no wait:\n\n```json\n{ \"mode\": \"catalog\", \"metro\": \"Chicago\" }\n```\n\nRun it from the [Apify Console](https://apify.com/germane_binoculars/zillow-leads-property-data)\nor via `apify-client` (see `examples/` below).\n\n## What's in this repo\n\n| Path | What it is |\n|---|---|\n| `sample/sample_listings.csv` | 20 real enriched rows (Chicago/Houston/Phoenix) — flat, spreadsheet-ready |\n| `sample/sample_listings.jsonl` | Same rows, one JSON object per line, with a nested `price_history` array per listing |\n| `examples/python_quickstart.py` | Call the actor from Python via `apify-client`, wait for results, print a summary |\n| `examples/node_quickstart.js` | Same, in Node, via `apify-client` |\n| `mcp-server/` | One-tool MCP server for Claude Desktop, Cursor and any MCP client; see `mcp-server/README.md` |\n| `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 |\n\n## Field reference\n\nTwo depths, `listings` (bare) and `enriched` (the default):\n\n- **`listings`**: address, price, beds/baths, status, lot/living area, listing-type flags — whatever Zillow's own search API returns, no detail-page fetch involved. See `sample_listings.csv` for the shape (a subset of the columns shown there — the sample above is enriched-depth, listings-depth rows omit everything past the bare fields).\n- **`enriched`** (default): everything in `listings`, 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).\n\nFull field list, pricing table, and every input mode (`catalog` / `custom_search` / `recent_activity`) are documented on the [actor's own README](https://apify.com/germane_binoculars/zillow-leads-property-data).\n\n## Dedup across repeat orders\n\nEvery delivery writes a `DEDUP_UPDATE` record to the run's key-value store:\nthe union of the zpids and MLS IDs you already had plus everything just shipped.\nFeed those two arrays back into your next order's `dedupZpids`/`dedupMlsIds`\nfields and you're never charged for the same row twice. See\n`notebook/zillow_leads_workflow.ipynb` for a worked example.\n\n## Use it from an AI agent (MCP)\n\nThis actor is callable as a tool via Apify's hosted MCP server\n(`https://mcp.apify.com`) or the local `@apify/actors-mcp-server`, no manual\ninput-form filling required — `catalog` mode (the default) is a good agent\nsmoke test since it returns cached rows in seconds with no polling loop\nneeded. See the actor's own README for the full agent-facing input schema\nand the fire/poll/fetch pattern for a live-collection order.\n\n## Questions / issues\n\nThis repo is documentation and samples only — it doesn't run the actor\nitself. For a specific order that isn't behaving as expected, check that\nrun's key-value store `STATUS` record first (the actor writes a plain-English\nreason there for any zero-row or partial result), then open an issue here or\nreach out via the actor's Apify Store page.\n",
  "bytes": 4246,
  "sha": "4821bc8abbb10bdd4cfe46ea69e1d1949ad96521da56c062a0894e3f8ee0893e",
  "repo_slug": "kmatata/zillow-leads-property-data",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_kmatata_zillow_leads_property__9d483a9a/readme"
}