Zillow Scraper - Homes for Sale, Rent, Sold & Price Drops
Pricing
from $1.70 / 1,000 home delivereds
Zillow Scraper - Homes for Sale, Rent, Sold & Price Drops
Scrape Zillow homes for sale, for rent and sold by city, ZIP or search URL: price, beds, baths, sqft, Zestimate, price cuts, brokerage, photos. Schedule it daily: only new listings and price drops. Optional home page with facts. Error rows are free.
Pricing
from $1.70 / 1,000 home delivereds
Rating
0.0
(0)
Developer
Scrapewise Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Zillow Scraper: homes for sale, for rent and sold, with new-listing and price-drop alerts
Scrape Zillow search results without an account, cookies or a browser. Type a US city,
ZIP code or neighborhood (any spelling: Austin, TX, austin tx, AUSTIN, 78701) or paste a search URL with your
filters, and get every home with price, beds, baths, square feet, price per sqft, lot size, home type, Zestimate and
Rent Zestimate, tax assessed value, days on Zillow, the price cut Zillow shows, the listing brokerage,
coordinates and photos. For sale, for rent and recently sold.
Built for daily monitoring: schedule the same search every morning and get only the homes that are new, plus the ones whose price changed since your last run, with the previous price and the drop in dollars and percent. A quiet day costs nothing.
At a glance
- Price per 1,000 homes: US$ 2.00
- Home page (optional): US$ 3.00 per 1,000, on top: facts, price history, tax history, schools
- Fee per run start: None
- Search by location (city, ZIP, neighborhood) or by Zillow URL: Yes
- For sale, for rent, recently sold: Yes
- Filters: price, beds, baths, square feet, lot size, year built, home type, days on Zillow, keywords, price cuts
- More than Zillow's 820 results per search: Yes, split by price range automatically
- Only new homes since the last run (
onlyNew): Yes, free when nothing is new - Price tracking between runs (
trackPriceChanges,onlyPriceDrops): Yes - Agent names and phone numbers: Never (see below)
- Error rows (bad URL, unknown place, no results): Free, with an
errorCode
One real row
From a test run on 2026-10-06 (location "Austin, TX", for sale, newest first, home pages on), shortened:
{"type": "property","zpid": "331629599","url": "https://www.zillow.com/homedetails/7910-Lennon-Dr-Austin-TX-78744/331629599_zpid/","status": "forSale","listingType": "For Sale by Agent","price": 315000,"address": "7910 Lennon Dr, Austin, TX 78744","city": "Austin","state": "TX","zipcode": "78744","latitude": 30.155565,"longitude": -97.71584,"bedrooms": 2,"bathrooms": 3,"livingAreaSqft": 1471,"pricePerSqft": 214.14,"lotAreaSqft": 967.0,"homeType": "SINGLE_FAMILY","yearBuilt": 2021,"taxAssessedValue": 354265,"daysOnZillow": 0,"listedAt": "2026-10-06T21:34:40Z","brokerageName": "Compass RE Texas, LLC","photoCount": 34,"hoaFeeMonthly": 115,"propertyTaxRate": 1.46,"mlsName": "Unlock MLS","neighborhood": "Bluff Springs","facts": {"bathroomsFull": 2, "bathroomsHalf": 1, "parkingCapacity": 2, "hasGarage": true, "hoaFeeTotal": "$115 monthly"},"highlights": ["Stainless steel appliances", "Spacious front porch", "Covered lower patio"],"hasDetails": true}
A home with a price cut on Zillow carries it on every row, home page or not:
"isPriceReduced": true, "priceReducedBy": 16000, "priceReducedAt": "2026-10-06", "priceReductionText": "$16,000 (Oct 6)".
What you can do with it
- Investors and flippers: watch Austin, Miami or Phoenix every morning for new listings under a price per sqft,
and catch every price drop on homes you already saw (
onlyNew+trackPriceChanges+onlyPriceDrops). - Agents and brokerages: follow new listings, price cuts and recent sales in your farm area, and see which brokerages list the most in each ZIP code.
- Rental search and relocation: a daily alert of new rentals in Seattle or New York that match budget and bedrooms, straight into Slack, e-mail or Google Sheets.
- Comps and market research: recently sold homes with sale date and price, Zestimate next to list price, days on market and price per sqft by ZIP code or neighborhood.
- Datasets and AI: clean, typed rows (numbers as numbers, dates as ISO) with coordinates, ready for maps and models.
Input
| Field | What it does |
|---|---|
locations | US cities, ZIP codes or neighborhoods (Austin, TX, Miami, FL, 10001, Williamsburg, Brooklyn); one search each |
startUrls | Zillow search URLs with your filters (every filter and drawn map area is kept), or home URLs (/<zpid>_zpid/, returned with the home page) |
listingType | forSale (default), forRent or sold (recently sold) |
propertyTypes | Any of houses, townhomes, multiFamily, condos, apartments, manufactured, lots; empty = all |
minPrice, maxPrice | US dollars (monthly rent for rentals) |
minBeds, maxBeds, minBaths | Bedrooms and bathrooms |
minSqft, maxSqft | Living area in square feet |
minLotSqft, maxLotSqft | Lot size in square feet (1 acre = 43,560) |
minYearBuilt, maxYearBuilt | Year built |
daysOnZillow | any, 1, 7, 14, 30, 90, 6m, 12m, 24m, 36m (for sold: sold in the last N days) |
keywords | Zillow's keyword filter (pool, waterfront, ADU) |
onlyPriceCuts | For sale: only homes Zillow shows with a reduced price |
sortBy | newest (default), relevance, priceLowToHigh, priceHighToLow, bedrooms, bathrooms, squareFeet, lotSize |
maxItems | Homes per search, default 50. 0 = up to 10,000 |
includeDetails | Also read each home's own page, charged as a separate event |
onlyNew | Deliver only homes not delivered in earlier runs of the same search |
trackPriceChanges | Add the price from the previous run and the change; with onlyNew, also deliver seen homes whose price changed |
onlyPriceDrops | With onlyNew and trackPriceChanges: of the seen homes, only price drops |
proxyConfiguration | Default Apify Proxy (datacenter) |
Example: new 3-bedroom houses in Austin up to $600,000, plus price drops, every morning:
{"locations": ["Austin, TX"],"listingType": "forSale","propertyTypes": ["houses"],"maxPrice": 600000,"minBeds": 3,"maxItems": 200,"onlyNew": true,"trackPriceChanges": true}
Recently sold condos in Miami in the last 90 days, for comps:
{"locations": ["Miami, FL"],"listingType": "sold","propertyTypes": ["condos"],"daysOnZillow": "90","maxItems": 500}
Or paste the search from your browser:
{"startUrls": ["https://www.zillow.com/seattle-wa/rentals/"],"maxItems": 100}
How daily monitoring works
The Actor remembers each search (same URL, or same location and filters) in a named key-value store in your own
account, zillow-scraper-state: zpid, last price, first and last time seen.
onlyNew: the first run delivers up tomaxItemsand marks everything it read as seen. Later runs read the newest homes first and stop when they reach homes already seen. A day with nothing new delivers nothing and costs nothing.trackPriceChanges: every row getsisNewListing,previousPrice,priceChange,priceChangePct,isPriceDrop,firstSeenAtandpreviousSeenAt.maxItemsthen counts homes checked, so the cost of a daily run stays flat.- Both on: you get new homes plus homes seen before whose price changed. Older homes that the first run never reached are recorded as a price baseline, not delivered as "new".
- Delete the key-value store to start over.
Big searches (more than 820 homes)
Zillow shows at most 20 pages of 41 homes (820) for any search. When you ask for more than that and the search is bigger, the Actor splits it into price ranges by itself (each range under 820) and reads them one after the other, so a 5,000-home city can be read in full. Without a limit above 820, nothing is split.
Output
Every home row: zpid, url, status (forSale, forRent, sold, pending, comingSoon), listingType
(Zillow's label, for example For Sale by Agent, New Construction, Foreclosure), price, priceText, currency,
pricePeriod (month for rentals), address, street, unit, city, state, zipcode, latitude,
longitude, bedrooms, bathrooms, livingAreaSqft, pricePerSqft, lotAreaSqft, homeType, zestimate,
rentZestimate, taxAssessedValue, daysOnZillow, listedAt, soldPrice and dateSold (sold homes),
isPriceReduced, priceReducedBy, priceReducedAt, priceReductionText, brokerageName, builderName,
isOwnerListing, isNewConstruction, isForeclosure, isAuction, isComingSoon, isPending, hasOpenHouse,
openHouse, has3DTour, hasVideo, isFeatured, highlight (the note Zillow shows on the card), mainPhoto,
photos, photoCount, position, searchQuery, scrapedAt.
Rental searches also return apartment buildings ("type": "building", isBuilding: true) with buildingName,
price (lowest rent) and priceMax, units (rent from, by bedrooms) and availableUnits.
With price tracking: isNewListing, previousPrice, priceChange, priceChangePct, isPriceDrop, firstSeenAt,
previousSeenAt.
With home pages (hasDetails: true): description, yearBuilt, hoaFeeMonthly, propertyTaxRate, zestimate,
rentZestimate, listedAt, lastSoldPrice, lastSoldDate, siteLastPriceChange, siteLastPriceChangeDate,
mlsName, mlsId, brokerageName, county, neighborhood, parcelId, facts (heating, cooling, appliances,
flooring, parking, garage, basement, pool, view, roof, construction, utilities, pets, lease terms and more, as listed),
factsAtAGlance, highlights, full-size photos, virtualTourUrl, pageViewCount, favoriteCount, and
priceHistory (date, event, price, price per sqft, source), taxHistory (year, tax paid, assessed value) and
schools (name, rating, grades, distance, link), for homes for sale, sold and for rent. If Zillow does not send the
history part for a home, those three fields come as null and the rest of the page is still delivered. If a home
page cannot be read, the row still comes with hasDetails: false and detailsError, and only the home is charged.
No agent contact data, by design. For listings by an agent you get the brokerage (a company) and the MLS. The
listing agent's name, phone, e-mail, photo and license are never returned. For homes listed by the owner (FSBO, for
rent by owner) you get isOwnerListing: true and no brokerage, name or phone. Phone numbers and e-mail addresses
inside the description text are replaced with [contact removed]. Use the home url to contact the seller through
Zillow.
Error codes (never charged)
errorCode | Meaning |
|---|---|
INVALID_INPUT | A value the Actor does not understand (minimum above maximum, unknown property type, a URL that is not a Zillow search or home) |
NOT_FOUND | Zillow has no place with this name (the Actor tries other spellings first), or the home was removed |
NO_RESULTS | No home for this search and filters |
BLOCKED | Zillow's bot protection refused every attempt on new IPs; run again |
NOT_REACHED | The run timeout arrived before this search or home |
TIMEOUT_TOO_SHORT | The run timeout is too short to read even the first page; raise it |
UNEXPECTED | A page came in a shape we did not expect; the rest of the run goes on |
Pricing
| Event | Per 1,000 |
|---|---|
| Home delivered | US$ 2.00 |
Home page (only with includeDetails or home URLs) | US$ 3.00 |
A daily onlyNew run on a busy Austin search that finds 80 new homes costs US$ 0.16; with home pages, US$ 0.40.
Error rows, duplicates, homes already seen and homes with an unchanged price are free, and there is no start fee.
Limitations
- Zillow sits behind a bot protection. The Actor retries refused requests on its own and never solves captchas.
On a bad day a search or a home page may
come back as
BLOCKEDorhasDetails: false(free): run it again. - "New York" means New York City; for the whole state write "New York State" or "NY". An ambiguous name (for example "Springfield") is resolved the way Zillow resolves it; add the state to be sure.
- A rental search mixes single homes and whole apartment buildings, as Zillow does.
- This Actor reads public pages only.
FAQ
Do I need a Zillow account or a US IP? No. No login, no cookies, and the default datacenter proxy works.
Can I paste a search from my browser? Yes. Price, beds, baths, home type, sort, keywords, the drawn map area and every other filter in the URL are kept.
What is the difference between isPriceReduced and isPriceDrop? isPriceReduced is the cut Zillow itself
shows on the listing. isPriceDrop compares the price with your own previous run (needs trackPriceChanges).
How do I get an alert only when a price drops? Turn on onlyNew, trackPriceChanges and onlyPriceDrops,
schedule the Task daily and send the dataset to your integration.
Can I use it from n8n, Make, Zapier or an AI agent? Yes, through the Apify app or the Apify MCP server. Error rows are free, so an agent can explore cheaply.
What if a run is cut by its timeout? The Actor stops shortly before the limit and ends successfully with what it delivered, telling you in the status message how to get the rest.
Changelog
- 0.1 (2026-10-07): first version. Search by Zillow URL or by location (city, ZIP, neighborhood, any spelling)
for sale, for rent or recently sold, with price, beds, baths, square feet, lot size, year built, home type, days on
Zillow, keywords and price-cut filters; automatic split of searches above 820 homes; Zillow's own price cuts on
every row; optional home pages;
onlyNewand price tracking between runs for daily schedules; free error rows.