Zillow Scraper - Property Listings, Prices & Leads avatar

Zillow Scraper - Property Listings, Prices & Leads

Pricing

from $0.94 / 1,000 property scrapeds

Go to Apify Store
Zillow Scraper - Property Listings, Prices & Leads

Zillow Scraper - Property Listings, Prices & Leads

Scrape Zillow homes for sale, for rent & recently sold by city, ZIP or URL: price, Zestimate, beds/baths, sqft, lot, photos, price & tax history, schools and listing-agent contacts (name, phone, email). Lead scoring + monitor mode. No API key, no browser.

Pricing

from $0.94 / 1,000 property scrapeds

Rating

0.0

(0)

Developer

Scrape Sage

Scrape Sage

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

1

Monthly active users

13 days ago

Last modified

Share

Zillow Scraper — Listings, Prices, History & Agent Leads

Disclaimer: This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Zillow Group, Inc. or any of its subsidiaries. All trademarks mentioned are the property of their respective owners. "Zillow" is referenced only to describe the publicly available website this Actor collects data from.

Extract complete Zillow property data — for sale, for rent, and recently sold — by city, ZIP, neighborhood, or URL. Get price, Zestimate & rent Zestimate, beds/baths, square footage, lot size, home type, status, days on Zillow, price-change flags, photos and full geo. Switch on full details to add description, year built, HOA, parcel/county, price history, tax history, schools, interior facts — and the listing agent + broker contacts (name, phone, email, license, MLS) that turn every listing into a real-estate lead.

No login, no cookies, no browser — fast JSON extraction straight from Zillow's own data, over residential proxies for reliability.

Why this Zillow scraper?

Most Zillow scrapers stop at the listing card, hide the lead-bearing fields behind a premium tier, or nickel-and-dime you with start fees and per-field add-ons. This actor ships the richest dataset in the category at a challenger price:

DataTypical scrapersThis actor
Price, beds/baths, sqft, lot, status
Zestimate + rent Zestimate + tax-assessed valuepartial
FSBO / new-construction / foreclosure / coming-soon flags
Price-change & days-on-Zillow (price-drop signals)
Price history + tax history💲 premium✅ opt-in
Schools (name, rating, grades, distance)✅ opt-in
Interior facts (heating, cooling, appliances, parking…)✅ opt-in
Listing agent + broker contacts (name, phone, email, license, MLS)💲 $0.07/listing elsewhere✅ opt-in
Deduplicated agent-lead records✅ opt-in
Lead score (0–100) per property & per agent
Monitor mode — only new / price-changed listings
Start fee💲 common$0 — never

Use cases

  • Real-estate lead generation — pull listing agent and broker contacts (phone, email, license, brokerage) from every property; or flip on FSBO-only to find for-sale-by-owner sellers who need an agent, a cash offer, or a wholesaler. Score leads by leadScore.
  • Investor & wholesaler deal flow — monitor a market for new listings and price cuts (priceChange, daysOnZillow, monitorStatus), compare to zestimate, and filter by price band, beds, home type, and days on Zillow.
  • Comps, CMAs & market analytics — price, sqft, pricePerSquareFoot, price history and tax history for any city or ZIP feed comparative market analysis and valuation models.
  • Rental market intelligence — scrape forRent listings with rent Zestimates and per-unit pricing across a metro.
  • Property data enrichment — paste a list of property URLs to hydrate your CRM/database with full Zillow details, schools and agent attribution.
  • Brokerage & PropTech pipelines — feed MLS-linked listing data into CRMs, dashboards and AI agents on a schedule.

How to use

  1. Sign up for Apify — the free plan is enough to try this actor.
  2. Open the Zillow Scraper, enter one or more locations (e.g. Austin, TX) or ZIP codes, pick a Listing type, and click Start.
  3. Watch property records stream into the dataset table. Turn on Include full property details to add history, schools and agent contacts.
  4. Export as JSON, CSV, Excel, XML, or RSS — or pull results programmatically via the Apify API.

Input

{
"locations": ["Austin, TX"],
"listingType": "forSale",
"minPrice": 300000,
"maxPrice": 700000,
"minBeds": 3,
"homeTypes": ["houses"],
"daysOnZillow": "7",
"includePropertyDetails": true,
"extractAgentLeads": true,
"maxResults": 100,
"monitorMode": false
}
  • locationsCity, ST (Austin, TX), City, State name, a neighborhood, or a 5-digit ZIP.
  • zipCodes — ZIP codes (alternative to locations).
  • searchUrls — paste Zillow search/results URLs (their own filters are respected).
  • propertyUrls — paste individual …/homedetails/…_zpid/ URLs to scrape full property details directly.
  • startUrls — any mix of search/property URLs (auto-detected).
  • listingTypeforSale (default), forRent, or sold.
  • forSaleByOwnerOnly — return only FSBO listings (investor/wholesaler seller leads).
  • minPrice / maxPrice / minBeds / maxBeds / minBaths / minSqft / maxSqft / minYearBuilt / maxYearBuilt — numeric filters.
  • homeTypeshouses, condos, townhomes, multi-family, apartments, manufactured, lots-land.
  • daysOnZillow1, 7, 14, 30, 90 (newly listed).
  • sortrelevant, newest, price_asc, price_desc, beds, lot_size.
  • includePropertyDetails (default false) — full per-property data + price/tax history + schools + agent & broker contacts.
  • extractAgentLeads (default false) — also emit one deduplicated agent-lead record per listing agent.
  • maxResults / maxResultsPerSearch — overall and per-search caps.
  • maxRunSeconds (default 240) — soft time budget so scheduled runs never hit the platform timeout. Raise it for big pulls.
  • monitorMode (default false) — only new / price-changed listings (see below).

Output

One record per property (type: "property"), plus optional agent-lead records (type: "agent"):

{
"type": "property",
"zpid": "29508552",
"url": "https://www.zillow.com/homedetails/123-Main-St-Austin-TX-78701/29508552_zpid/",
"statusType": "FOR_SALE",
"statusText": "House for sale",
"price": 450000,
"zestimate": 462300,
"rentZestimate": 2650,
"taxAssessedValue": 401200,
"priceChange": -15000,
"address": "123 Main St, Austin, TX 78701",
"city": "Austin",
"state": "TX",
"zipcode": "78701",
"latitude": 30.2649,
"longitude": -97.7426,
"bedrooms": 3,
"bathrooms": 2,
"livingArea": 1820,
"homeType": "Single Family",
"daysOnZillow": 5,
"isFsbo": false,
"brokerName": "Realty ABC",
"yearBuilt": 1998,
"hoaFee": "$45/mo",
"county": "Travis County",
"priceHistory": [{ "date": "2026-06-15", "event": "Price change", "price": 450000 }],
"taxHistory": [{ "year": 2024, "taxPaid": 8120, "value": 401200 }],
"schools": [{ "name": "Austin High", "rating": 8, "level": "High", "distance": 1.2 }],
"agentName": "Jane Broker",
"agentPhone": "(512) 555-0100",
"agentEmail": "jane@realtyabc.com",
"agentLicenseNumber": "TX-998877",
"mlsId": "1234567",
"leadScore": 78,
"leadSignals": ["agentEmail", "agentPhone", "priceCut", "fresh"],
"source": "zillow",
"scrapedAt": "2026-06-23T12:00:00.000Z"
}

Empty fields are omitted (no always-blank columns in CSV/Excel). A field is missing only when Zillow doesn't publish it.

Monitor mode — only new & changed listings

Turn on monitorMode and the actor remembers every listing it has seen (by zpid, plus a price/status fingerprint). On the next run it returns only new listings or ones whose price or status changed, each tagged monitorStatus: "new" | "changed". This works independently of Apify Schedules — schedule the actor hourly/daily and every run delivers a clean diff, perfect for new-listing and price-drop alerts. Use distinct monitorStoreName values to track several markets separately.

How much does it cost to scrape Zillow?

This Actor uses Apify's pay-per-event pricing: you are charged only for the results it delivers, with no monthly rental and no start fee. The events it can charge are:

  • Property scraped - One Zillow property with all standard listing fields – price, Zestimate & rent Zestimate, tax-assessed value, beds, baths, living area, lot, home type, status, days on Zillow, price-change, full address, coordinates, photos, FSBO/new-construction/foreclosure flags and a 0–100 lead score. No start fee, no add-on for filters or pagination.
  • Property details add-on - Charged once per property only when 'Include full property details' is on and the detail page is parsed successfully: full description, year built, lot size, HOA, parcel/county, price history, tax history, schools, interior facts (heating/cooling/appliances/flooring/parking) AND the listing agent + broker contacts (name, phone, email, license, MLS). Added on top of the property fee.
  • Agent lead - One deduplicated real-estate agent lead built from a listing's attribution – agent name, phone, email, license number, brokerage, broker phone and MLS, with a 0–100 lead score. Only emitted when 'Extract agent leads' is on.

The current price of each event is shown on the Pricing tab of this page. Set a maximum total charge on the run if you want a hard cap on spend, and use the input limits to control how much the Actor fetches.

Automate & schedule

Run this actor on autopilot and pull results into your own stack:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });
const run = await client.actor('scrapesage/zillow-scraper').call({
locations: ['Austin, TX'],
listingType: 'forSale',
minPrice: 300000,
maxPrice: 700000,
includePropertyDetails: true,
extractAgentLeads: true,
maxResults: 200,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Got ${items.length} Zillow properties & agent leads`);

Integrate with any app

Connect the dataset to 5,000+ apps — no code required:

  • Make — multi-step automation scenarios.
  • Zapier — push new listings or agent leads straight into your CRM.
  • Slack — get notified when a monitored market gets a new listing or price drop.
  • Google Drive / Sheets — auto-export every run to a spreadsheet.
  • Airbyte — pipe results into your data warehouse.
  • GitHub — trigger runs from commits or releases.

Use with AI assistants (MCP)

The output is clean, LLM-ready JSON. You can call this actor from Claude, ChatGPT, or any agent framework through the Apify MCP server — ask your assistant to "find 3-bed houses under $600k in Austin listed this week and list the agent contacts" and let it run this scraper for you.

Agent-ready: autonomous payments (x402 & Skyfire)

This actor is agent-ready — AI agents can discover it, run it, and pay for it autonomously, with no Apify account and no human in the loop. It uses pay-per-event pricing and limited permissions, so it qualifies for Apify's agentic-payment standards:

  • x402 — an open, HTTP-native payment protocol. Agents pay per run in USDC on the Base network directly through the Apify MCP server — no account, no API key.
  • Skyfire — agent-to-service payments for fully autonomous AI-agent workflows.

Building an AI agent, MCP tool, or autonomous data pipeline? This scraper is ready to plug in and pay as it goes.

More scrapers from scrapesage

Build a complete real-estate & lead-gen stack:

Tips

  • Big cities: Zillow caps a single search at ~500–800 results. To exhaust a large metro, split runs by price band, home type, or ZIP code.
  • Speed & cost: leave includePropertyDetails off for fast, cheap bulk listing pulls; turn it on only when you need history, schools or agent contacts.
  • Large pulls: raise maxRunSeconds (e.g. 1800) and the run's timeout together; the default 240s soft budget keeps scheduled/health runs well under 5 minutes.
  • Proxies: keep the default Residential proxy — Zillow blocks datacenter IPs.
  • Recurring monitoring: combine Schedules with monitorMode to track only what's new.

FAQ

How do I scrape Zillow listings for a city or ZIP? Put the city in locations (Austin, TX) or the ZIP in zipCodes, choose a listingType, and run. Add filters (price, beds, home type, days on Zillow) to narrow results.

Does it need a Zillow API key or login? No. The actor reads Zillow's own publicly rendered data over residential proxies — no API key, no account, no browser.

Can I get the listing agent's contact details? Yes — turn on includePropertyDetails to add the agent and broker name, phone, email, license number and MLS to each property, and extractAgentLeads to also get one deduplicated agent record per agent.

How do I get only new listings or price drops? Turn on monitorMode and schedule the actor — each run returns only new or price/status-changed listings, tagged monitorStatus.

Can I export to Google Sheets, CSV, or Excel? Yes — one click in the dataset view, or automatically on every run via the Google Drive integration.

Why is a field missing? Empty fields are omitted to keep exports clean. A field is absent only when Zillow doesn't publish it for that listing. Known source-gated cases: Zestimate is missing on many active MLS listings; agent email is almost never public; the listing agent's direct phone depends on the MLS region (some, e.g. Dallas/NTREIS, expose only the broker phone — which the actor still returns); and recently-sold prices are login-walled by Zillow (see below).

Why don't sold listings have a price? Zillow gates the exact sale price and price history of sold homes behind a login for anonymous access. The actor still returns every sold home's address, beds/baths/sqft, home type, year built, schools and the sale date (dateSold) — just not the closing price. forSale and forRent listings are fully priced.

How are rental apartment buildings handled? Large forRent results are often whole apartment buildings rather than single units. Those records include the building name, rent range (minRent/maxRent), bedroom range, unit count, and the building's leasing phone — a ready-made rental lead.

It returned 0 results / said it was blocked — why? Zillow runs PerimeterX anti-bot. The actor defends against it with US residential proxies, aggressive IP rotation, and an OpenStreetMap geocode fallback that drives Zillow's reliable internal search API when the public page is being challenged. In the rare event Zillow blocks every attempt in a run, the actor finishes cleanly (you are not billed) with a status message — just re-run.

Is scraping Zillow legal? This actor collects publicly available data only. You are responsible for using the data in compliance with applicable laws (e.g. GDPR/CCPA for personal data) and Zillow's terms.

Data & lawful use

This Actor reads business and professional listings that the professionals themselves published to be found: names, roles, firms, ratings and the contact details shown on the public listing. Because those details belong to identifiable people, treat the output as personal data. If you are in the EU or UK you are the data controller for what you do with it: have a lawful basis (usually legitimate interest for B2B prospecting or market research), keep any outreach relevant to the professional's line of work, honour opt-outs and deletion requests, and do not use the output for spam.

Under Apify's Standard Actor Contract, which governs your use of this Actor, you are the controller of any personal data in your input and output and scrapesage acts only as your processor: that data is processed solely to run your job, written only to your own Apify storage, never used for any other purpose and never shared onward. If you need help with a data-subject request that involves this Actor's output, open an issue on the Issues tab.

Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Zillow Group, Inc. or any of its subsidiaries. All trademarks mentioned are the property of their respective owners.

"Zillow" and any related marks are the property of their respective owners and are used here only in a descriptive, nominative sense - to identify the publicly accessible website from which this Actor collects data. This Actor is not an official Zillow product, is not authorised or certified by Zillow Group, Inc., and does not distribute Zillow software. It collects only publicly available information; you are responsible for ensuring your use of that data complies with applicable laws, regulations and the terms of the source website.

Need help?

Open an issue on the actor's Issues tab, or visit the Apify help center. Feature requests are welcome — this actor is actively maintained.