Zillow Search Scraper
Pricing
from $0.67 / 1,000 listings
Zillow Search Scraper
Search Zillow homes for sale, for rent or recently sold by city, ZIP code or map point. Get price, beds, baths, living area, Zestimate, rent Zestimate, photos and broker for up to 1,000 listings per location, with many locations in one run.
Pricing
from $0.67 / 1,000 listings
Rating
0.0
(0)
Developer
Scrappa
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
16 hours ago
Last modified
Categories
Share
Search Zillow for homes for sale, for rent or recently sold in any US city, ZIP code, county or neighborhood. Each listing comes back as one clean row with price, beds, baths, living area, Zestimate, rent Zestimate, broker and photos. Add many places to one run to compare markets or build a lead list.
What data can you extract?
| Field | Type | Description |
|---|---|---|
zpid | Integer | Zillow property ID. Use it with the Zillow Property Details Scraper. |
url | String | Link to the home on Zillow. Empty for apartment buildings, which have no single home page. |
address | String | Full address: street, city, state and ZIP code. |
streetAddress, city, state, zipcode | String | Address parts as separate columns. |
latitude, longitude | Number | Map position of the home. |
homeType | String | Zillow home type: singleFamily, condo, townhome, multiFamily, manufactured, lot or apartmentComplex. |
homeStatus | String | Listing status: forSale, forRent, recentlySold, comingSoon or similar. |
price | Integer | List price in USD, or the monthly rent for rentals. For sold homes, the sale price where the state publishes it (some states, such as Texas, do not). |
pricePerSqft | Integer | Price per square foot in USD. |
bedrooms, bathrooms | Number | Number of bedrooms and bathrooms. |
livingArea | Integer | Living area in square feet. |
lotSizeSqft | Integer | Lot size in square feet. Zillow lots given in acres are converted. |
yearBuilt | Integer | Year the home was built. |
daysOnZillow | Integer | Days since the listing went live on Zillow. |
listedAt | String | ISO 8601 date and time the listing went live on Zillow. |
lastSoldAt | String | ISO 8601 date of the last sale, for sold homes. |
zestimate, rentZestimate | Integer | Zillow's estimated home value and monthly rent in USD, when Zillow shows them. |
taxAssessedValue, taxAssessmentYear | Integer | Assessed value for property tax in USD and the year of the assessment. |
brokerName, mlsStatus | String | Listing brokerage and the status in the MLS (the local listing database). |
openHouses | Array | Upcoming open houses, each with ISO 8601 start and end times. |
hasVirtualTour | Boolean | True when the listing has a 3D tour. |
photoUrl, photoCount | String, Integer | Main photo in high resolution and the number of photos. |
photos | Array | All high resolution photo URLs, when Include photo list is on. |
buildingName, buildingId | String, Integer | Only on apartment buildings: building name and Zillow building ID. |
priceMin, priceMax, availableUnits, units | Number, Array | Only on apartment buildings: rent range, number of available units and the lowest rent per bedroom count. |
searchLocation | String | The location from your input that found this listing. |
scrapedAt | String | ISO 8601 date and time the listing was collected. |
Use cases
- Investors can export every home for sale in their target ZIP codes and sort by price per square foot.
- Agents and brokers can track new listings, price cuts and open houses in their farm area.
- Analysts can compare list prices with Zestimate and rent Zestimate to find homes priced below their estimated value.
- Property managers can collect rental listings and apartment rent ranges for a rent survey.
- Proptech teams can feed fresh Zillow listings into their own apps, maps and dashboards.
How to use
- Add one place per entry to Locations: a city with state, a ZIP code, a county or a neighborhood. Or enter a point as latitude,longitude.
- Choose For sale, For rent or Recently sold.
- Set price, bedroom, bathroom and home type filters if you need them.
- Set Maximum listings per location and start the run.
{"locations": ["Austin TX","78704","47.674,-122.1215"],"listingType": "forSale","minBeds": 3,"maxPrice": 800000,"homeTypes": ["singleFamily","townhome"],"sortBy": "newest","maxItems": 200}
Input
| Field | Type | Required | Description |
|---|---|---|---|
locations | Array | Yes | US places to search, one per entry: a city with state ("Austin TX"), a ZIP code ("78704"), a county or a neighborhood. You can also enter a point as latitude,longitude ("47.674,-122.1215") to search around it. |
listingType | String | No | Which homes to search. |
maxItems | Integer | No | Most listings to save for each location. Zillow shows at most 1,000 listings per search, so split large areas into ZIP codes to get more. |
minPrice | Integer | No | Lowest price in USD. For rentals this is the monthly rent. |
maxPrice | Integer | No | Highest price in USD. For rentals this is the monthly rent. |
minBeds | Integer | No | Fewest bedrooms. |
maxBeds | Integer | No | Most bedrooms. |
minBaths | Number | No | Fewest bathrooms, for example 1.5. |
maxBaths | Number | No | Most bathrooms. |
homeTypes | Array | No | Keep only these home types. Leave empty for all types. |
minLivingArea | Integer | No | Smallest living area in square feet. |
minLotSize | Integer | No | Smallest lot in square feet. One acre is 43,560 sq ft. |
minYearBuilt | Integer | No | Earliest year the home was built. |
keywords | String | No | Words that must appear in the listing, for example "pool" or "waterfront". |
sortBy | String | No | Order of the results. With a limit, the order decides which listings you get. |
radiusMiles | Number | No | Search radius around latitude,longitude entries. Place names use their own Zillow boundary. |
includePhotos | Boolean | No | Add the full list of high resolution photo URLs to each listing. The main photo is always included. |
Output example
{"zpid": 29412345,"url": "https://www.zillow.com/homedetails/29412345_zpid/","address": "4512 Ridgeview Dr, Austin, TX 78745","streetAddress": "4512 Ridgeview Dr","city": "Austin","state": "TX","zipcode": "78745","latitude": 30.21843,"longitude": -97.79562,"homeType": "singleFamily","homeStatus": "forSale","price": 549000,"pricePerSqft": 297,"currency": "USD","bedrooms": 3,"bathrooms": 2,"livingArea": 1848,"lotSizeSqft": 7405,"yearBuilt": 1987,"daysOnZillow": 6,"listedAt": "2026-10-11T15:42:10Z","lastSoldAt": null,"zestimate": 541300,"rentZestimate": 2795,"taxAssessedValue": 498210,"taxAssessmentYear": 2025,"brokerName": "Austin Hill Country Realty","mlsStatus": "Active","openHouses": [{"start": "2026-10-18T19:00:00Z","end": "2026-10-18T21:00:00Z"}],"hasVirtualTour": true,"photoUrl": "https://photos.zillowstatic.com/fp/7c1e2b9d4a6f8e03b5d2c1a9e8f7b6a5-p_f.jpg","photoCount": 24,"photos": ["https://photos.zillowstatic.com/fp/7c1e2b9d4a6f8e03b5d2c1a9e8f7b6a5-p_f.jpg","https://photos.zillowstatic.com/fp/3b8d0e6f2a4c9b1d7e5f3a2c8b6d4e1f-p_f.jpg"],"searchLocation": "Austin TX","scrapedAt": "2026-10-17T15:00:00Z"}
Pricing
$1.00 per 1,000 listings, plus a one-time start fee of $0.00005 per run. You pay only for listings saved to the dataset. Lookups of place names are free.
FAQ
How many listings can I get per location?
Zillow shows at most 1,000 listings for one search. To get more, split a large city into ZIP codes or neighborhoods and add each one as a location. A listing found by more than one location is saved and charged only once.
Which places can I search?
Any US city, county, ZIP code or neighborhood that Zillow knows. Write a city as "Austin TX". If a place is not found, the Actor logs it, continues with the other locations and lists it in the run status. You can also search around a map point with latitude,longitude and Radius for points (miles).
Why do some sold homes have no price?
Some US states, such as Texas and Utah, do not publish sale prices. Zillow then shows no price for sold homes there. The Zestimate and the sale date are still included.
How does the home type filter work?
Zillow search has no home type filter, so the Actor removes other home types from each page before it saves them. You only pay for the listings that match. Zillow returns at most 1,000 listings per search, so the filter checks those 1,000. For rare home types in a large city, search by ZIP code instead.
Is scraping Zillow legal?
The Actor reads public listing data that anyone can see on Zillow without an account. Rules depend on your location and use case. Check the applicable laws and Zillow's terms, and handle personal data, such as agent names, with care.
Can I start runs through the Apify API?
Yes. Send a POST request to https://api.apify.com/v2/acts/thescrappa~zillow-search-scraper/runs with your input as JSON, or use an Apify client library. Read the results from the run's default dataset.
Can I connect the results to other tools?
Yes. Use Apify integrations to send the results to Make, Zapier, n8n, Google Sheets, Slack or a webhook, or download them as JSON, CSV or Excel.
What happens when a location fails?
The Actor retries short Zillow outages, then logs the error and continues with the next location. The run fails only when no location could be searched.