How to extract data from Zillow and import it into Google Sheets using the Zillow API

Zillow is one of the biggest real estate databases in the world. Keep reading to learn how to import Zillow data into Google Sheets, the easy way.

In this tutorial, you’ll learn how to connect the Zillow API to Google Sheets in 5 steps:

  1. Install the Apipheny add-on
  2. Obtain the Zillow API Key and Host
  3. Choose your Zillow API endpoint
  4. Enter Zillow API request into Apipheny
  5. Run the Zillow API request in your Google Sheet

Step 1.) Install and open the Apipheny add-on for Google Sheets

Apipheny is an API connector for Google Sheets. You can use Apipheny to connect your Google Sheets to unlimited API data sources, make unlimited API requests, and more. There is a 30 day free trial included.

1.) Install Apipheny by opening the following link on desktop and then clicking the Install button in the Google Marketplace: https://apipheny.io/install

2.) After you’ve installed Apipheny, open a Google Sheet and then click on the Extensions dropdown in the menu at the top.

In the dropdown list you should see Apipheny. Click Apipheny then click Import API to open the Apipheny sidebar in your Google Sheet.

open apipheny

Tip: you can open a new Google Sheet by entering this URL in your browser: sheet.new

Step 2.) Obtain the Zillow API Key and Host

To get started with the Zillow API, you’ll first want to access the https://rapidapi.com/s.mahmoud97/api/zillow56/pricing page to subscribe. We choose the free Basic plan:

The Pricing page
The Pricing page

Go to the Endpoints page and in the mid section scroll down until you find the Header Parameters. In the right section choose Shell => cURL and you’ll find the cURL command:

The Header Parameters section
The Header Parameters section

Copy the Header Parameters (X-RapidAPI-Key and X-RapidAPI-Host) to a safe location because you’ll need it later!

Step 3.) Choose your Zillow API endpoint

In this section, we’ll show you how to browse the Zillow API documentation to find an API URL that retrieves the information you need from Zillow and imports it into your Google Sheet. If you already know your Zillow API URL, or you want to use the same example URL as us, just skip to Step 4.

First, open the Zillow API documentation page on RapidAPI: https://rapidapi.com/s.mahmoud97/api/zillow56

The left side of the window contains the endpoints available for the Zillow API:

Zillow API Documentation

If you click on the Property details item, a page containing the Reviews API documentation will be displayed. At the right side of the window will have the cURL command containing the endpoint URL and headers:

Property Details endpoint documentation
Property Details endpoint documentation

Zillow API endpoint examples

The GET Agent Reviews endpoint, which gets agent reviews by the agent’s zuid:

Method: GET
API URL Path: https://zillow56.p.rapidapi.com/agent_reviews?zuid=zuid_value
Headers:
    Header 1 Key:
       X-RapidAPI-Key
    Header 1 Value:
       your_key
    Header 2 Key:
       X-RapidAPI-Host
    Header 2 Value:
       your_host

Don’t forget to replace your_key and your_host with the values you get in Step 2. Replace zuid_value with a real zuid.


The GET Search for agents endpoint, which searches for agents by location and name:

Method: GET
API URL Path: https://zillow56.p.rapidapi.com/search_agents?location=location_value
Headers:
    Header 1 Key:
       X-RapidAPI-Key
    Header 1 Value:
       your_key
    Header 2 Key:
       X-RapidAPI-Host
    Header 2 Value:
       your_host

Don’t forget to replace your_key and your_host with the values you get in Step 2. Replace location_value with a real zuid.


The GET Property details endpoint, which gets a property’s details by its zpid:

Method: GET
API URL Path: https://zillow56.p.rapidapi.com/property?zpid=id_value
Headers:
    Header 1 Key:
       X-RapidAPI-Key
    Header 1 Value:
       your_key
    Header 2 Key:
       X-RapidAPI-Host
    Header 2 Value:
       your_host

Don’t forget to replace your_key and your_host with the values you get in Step 2. Replace id_value with a real zpid.


Zillow API pagination

Pagination is a process that is used to divide a large dataset into smaller chunks (pages). Usually the endpoints that return a list of resources support pagination. 

Some of the Zillow API endpoints use the pagination option. This means you need to add the page (the number of the page you want to obtain) parameter at the end of the URL.

Each endpoint that needs pagination will have in its documentation, in the Optional parameters section, relevant information about the page parameter and and how to use it.

Example:
https://zillow56.p.rapidapi.com/search_url?url=https%3A%2F%2Fwww.zillow.com%2Fhomes%2Ffor_sale%2F2_p%2F%3FsearchQueryState%3D%257B%2522pagination%2522%253A%257B%2522currentPage%2522%253A2%257D%252C%2522mapBounds%2522%253A%257B%2522west%2522%253A-112.39143704189931%252C%2522east%2522%253A-110.78468655361806%252C%2522south%2522%253A32.79032628812945%252C%2522north%2522%253A33.7227901388417%257D%252C%2522isMapVisible%2522%253Atrue%252C%2522filterState%2522%253A%257B%2522con%2522%253A%257B%2522value%2522%253Afalse%257D%252C%2522apa%2522%253A%257B%2522value%2522%253Afalse%257D%252C%2522mf%2522%253A%257B%2522value%2522%253Afalse%257D%252C%2522ah%2522%253A%257B%2522value%2522%253Atrue%257D%252C%2522sort%2522%253A%257B%2522value%2522%253A%2522globalrelevanceex%2522%257D%252C%2522land%2522%253A%257B%2522value%2522%253Afalse%257D%252C%2522manu%2522%253A%257B%2522value%2522%253Afalse%257D%252C%2522apco%2522%253A%257B%2522value%2522%253Afalse%257D%257D%252C%2522isListVisible%2522%253Atrue%257D&page=2

In the example above, the data set will be divided in sets of 40 records per page (because this number is set by the API), and only the second page (page number 2) will be displayed in Google Sheets.

Step 4.) Enter the Zillow API request in Apipheny

Now for the last step, go back to your Google Sheet and make sure that the Apipheny add-on is open with the Import tab open.

With the Import Tab open, enter these details into the add-on:

Method: At the top of the Apipheny sidebar, select the HTTP method (GET or POST) as required by your API endpoint. For this example, we are using the GET method.

API URL: In Step 3, we explained how you can find the Zillow REST API endpoint that you need. Now copy the complete URL into the Apipheny add-on, where it says API URL Path, followed by any GET parameters required for your query.

For this example, we are using the Search for properties endpoint, which searches for filtered properties by address, neighborhood, city, or ZIP code. The corresponding URL for this endpoint is:

https://zillow56.p.rapidapi.com/search?location=location_value

If you use this same endpoint, make sure to replace location_value with a real location.

Headers. In the Headers section of the Apipheny add-on, add two rows with the following keys and values:

Header 1
Key:
X-RapidAPI-Key
Value:
your_key

Header 2
Key:
X-RapidAPI-Host
Value:
your_host

Don’t forget to replace your_key and your_host with the values you get at Step 2.)

Apipheny add-on with the Zillow API request entered

Step 5.) Run the Zillow API Request

Finally, to get the Zillow API data in your Google Sheet, just click the Run button at the bottom of the Apipheny add-on and then wait for the Zillow API data to be imported into your Google Sheet:

Zillow API data in Google Sheets using the Apipheny add-on

After making a successful request to the Zillow API, try querying a different Zillow API endpoint, or try using one of the more advanced features in the Apipheny add-on, such as:

  • Save and schedule your Zillow API request
  • Make a POST request to the Zillow API (if available)
  • Use the custom =APIPHENY() function to call the Zillow API request inside your spreadsheet
  • Create a Zillow API request by referencing the value of a cell in the API URL with three curly braces eg. {{{Sheet1!A1}}}


Crypto API tutorials and more:


API Tutorials



API Knowledge

What is an API?
What is an API URL?
What are parameters?
What is an endpoint?
What is an API key/token?
What is basic authentication?
What are headers?
What is a GET request?
What is a POST request?