Real estate professionals using Zillow data for market analytics have the competitive edge when it comes to buying, selling or flipping homes. While many traditional real estate databases have been around for decades, Zillow data offers a far more holistic view of any real estate market due to its public & open nature.
Not only is Zillow one of the largest real estate websites in existence, the real estate listings data on its website offers valuable insights into property information unavailable elsewhere, such as price trends & Zestimate pricing.
Real Estate Investing
When looking to grow your real estate business, investing in the right properties makes all the difference. Zillow properties are unique in that their property listings come with a Zestimate score you can use to compare the sale price with, leveraging Zillow’s data to find undervalued properties.
While such estimates from Zillow are far from perfect, when combined with your own intuition & business knowledge, harvesting and using this data from Zillow can help grow your business faster than your competitors.
One specific example would be finding pre-foreclosure properties on Zillow to purchase before they actually enter the legal foreclosure process. You can use Zillow search results to find these properties, and to do this at scale we can scrape data from Zillow for our own analysis, per the following video.
The rest of this article will discuss different methods and concerns you may want to consider before scraping real estate data from Zillow’s website.
Using a Zillow Scraper
Before delving down the web scraping route for downloading Zillow data, it’s important to consider the complete landscape in what official APIs you may have available from Zillow, as well as understanding the legal risks involved with scraping Zillow. Don’t just use the first Zillow scraper you find without understanding the overall landscape!
Official Zillow API
The Zillow group maintains an API you can use to officially use to extract data from Zillow through their subsidiary Bridge Interactive, however you must apply for access (which usually means enterprise pricing). If you’re a large real estate business with the budget, then check out the Zillow API and see if you can work with it.
Zillow Terms of Service
If you’re not able to use Zillow’s official API, then your next option is to scrape Zillow using a tool. However, the Zillow Terms of Service explicitly forbid “conduct[ing] automated queries (including screen and database scraping, spiders, robots, crawlers, bypassing “captcha” or similar precautions, or any other automated activity with the purpose of obtaining information from the Services) on the Services.”
While it’s not illegal to violate Zillow’s terms, if they catch you doing so they can ban your account and/or block your IP address. Furthermore, if you use a third party to help you violate Zillow’s terms, such as a Zillow data scraper, the provider of that service is breaking the law (see Tortious Interference) and likely to get sued and/or shut down.
Unofficial & Illegal Zillow Scrapers
While we can’t legally suggest using a service to violate Zillow’s terms and scrape data, we can offer an overview of the typical tools you’ll find and explain why even the best Zillow scraper is not only illegal, but generally just doesn’t work.
A few companies offer browser plugins (usually for Chrome) that you install into your browser and they promise to scrape Zillow on your behalf.
The biggest issue with these data scraping plugins is that they have the ability to “hijack” your browser and control its activity (e.g. clicking and scrolling in an automated fashion), which will stem from your IP address and Zillow account if logged in.
Zillow has plenty of anti scraping techniques it uses to prevent this type of automated access, so you jeopardize getting blocked or banned from Zillow if detected.
Furthermore, these plugins attempt to download data from Zillow HTML code hosted on Zillow’s web pages, which is constantly changing and shifting around. This usually results in missing or incorrect data from Zillow, which can be fatal for your business if using the wrong property prices.
The other set of tools will live on server farms (or you can run through proxies) and make automated requests to Zillow (often making HTTP requests with a fake user agent to trick Zillow) and download HTML files that are then parsed to find extracted data.
As mentioned with browser plugins, this method of scraping data from HTML pages is extremely error prone since Zillow is subject to shift around how it presents data at any time, for example on its property page data fields.
However, if you have the coding skills, patience and risk tolerance to build or use your own Zillow scraper, you’re free to do so but we can’t legally recommend it!
Legally Scrape Zillow
So if it’s illegal to scrape Zillow, then why did we write this article? Well there is a 100% legal way to scrape Zillow data without violating their Term of Service. The key is to not access their site automatically (either through a programming language or browser plugin).
If we simply browse Zillow as a normal human being, but record the raw web traffic that Zillow sends to our browser, then we can extract data from that recording instead of from Zillow’s website, which is perfectly legal.
This will be particularly useful for scraping surface level information in any real estate market, such as the pricing, days on market, Zestimate and more for all the properties in any location.
Scrape Real Estate Data
All you need to legally scrape Zillow is a major web browser like Chrome, Firefox, Edge or Safari and that’s it, there’s nothing to install!
1. Begin Recording Web Traffic
We next need to follow the “HAR File Web Scraper” instructions on this page to export data from Zillow, so go ahead and open a new tab in your browser, then right click on the page and hit “Inspect” to open developer tools, which will begin recording your web traffic.
2. Perform a Search on Zillow
In the new tab, navigate to Zillow’s Website and enter in a term in the Zillow search bar, e.g. Miami, FL so that you get a map of the listings. You can also use any of the filters in the search properties you may find useful (e.g. check the corresponding boxes for foreclosures).
3. Scroll Around
Once the search loads, scroll around the page a bit and try zooming in and out to get more listings. This will cause Zillow to send multiple pages of valuable information (via API calls) to your web browser, which you’re now recording.
4. Export HAR File
Once you think you’ve scrolled through enough (maybe 10 pages), you just need to click the “Network” tab under developer tools, then look for the down arrow labeled “Export HAR…” to download the data you just browsed into a HAR file.
5. Upload Your HAR File
Drag and drop your HAR file to this page, or the HAR File Web Scraper, and look for a group of requests labeled
/async-create-search-page-state as below.
You can download the individual JSON files to your computer for free or click the “Parse Group” button to combine all of the pages we scraped into downloadable CSV files.
6. Extract Data from Zillow to Excel
After clicking “Parse Group,” you’ll go to another page where you can download the Zillow search results as a CSV file. It should be the first result - just click “Download CSV” and you’ll have the data as a CSV file you can then open in Excel for detailed analysis.
You’ll get back a row for each listing. Be sure to check for duplicates - you will most likely want to de-duplicate by the
detailUrl column to make sure you get unique results. You can also use this column to find the public URL of any Zillow listing. E.g. if this value is
/b/wynd-27-wynd-28-miami-fl-9QD6KF/, then the public Zillow URL would be:
You’ll also get back the following columns which should be useful in your analysis (note we cannot tell you exactly what these are since this is an unofficial API). Also, please note that these columns will vary if you’re searching for rentals vs. homes for sale, so these may not appear exactly in your CSV file depending on your exact scraping approach.
buildingId- This appears to be an identifier for each building, but is also just the latitude and longitude coordinates of the building combined together with a -
price- The monthly rental price or price to buy
minBeds- Most likely the number of bedrooms in the property
minBaths- Most likely the number of bathrooms in the property
minArea- Most likely the square footage of the property
imgSrc- A link to an image of the listing
buildingName- Name of the building
address- Mailing address with street and city, but no zip code
detailUrl- Explained earlier, used to get the public URL of the listing
has3DModel- If the listing offers a 3D model
latLong.latitude- Latitude of the listing
latLong.longitude- Longitude of the listing
hdpData.homeInfo.daysOnZillow- Number of days the listing has been on Zillow
hdpData.homeInfo.rentZestimate- Zestimate value of the listing
Depending on your business needs, you can ignore some columns and use others. The easiest way to get started is to simply open up the CSV in Excel or Google Sheets and look for the columns that will be of interest to you.
Zillow Real Estate Properties
The method outlined above to legally scrape Zillow data is really only useful for search results from the website, as it’s an easy way to extract data from Zillow for hundreds of listings in only a few minutes. The details you’ll see for each property will be limited to what Zillow returns in its search results response as outlined above.
If you need to gather more comprehensive information on each individual listing, then you can use the
detailUrl column for each listing and just prepend
https://zillow.com to that value and open up the full details for that property page.
At this point, you may have a list of 100s or more of these properties to extract data from - and scraping Zillow will probably be extremely tempting at this point. While we can’t legally suggest you do this, depending on your coding skills, you may want to look into building a crawler that can go after the specific fields you need for this list of URLs.
Another option is to simply outsource the work - e.g. if you have a list of 500 properties from search results, you can divide the work into 10 lists of 50 and give that to 10 virtual assistants to manually record the data you need for each page. This too is a safer legal alternative to Zillow web scraping.
Contacting Real Estate Agents
In addition to the property details mentioned above, the individual Zillow listings will contain data about realtors you can get in touch with to purchase the property. While web scraping Zillow could technically get you details about each agent, you’ll have a tough time automating your outreach, as many agents need to be contacted directly through Zillow.
This is another example of why fully automated data scraping may not be a good idea, as you may be tempted to spam or abuse the Zillow platform into sending unsolicited messages that will likely get you blocked or banned.
Instead, you may want to simply visit each property listing manually and use the scraped data from the search results to prioritize your outreach. While data can help with your outreach, at the end of the day it’s still a human-to-human interaction that can only be automated so far.