# Zillow Scraper API

### Parameters

| Parameters                                                       | Description                                                                           |
| ---------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
| <p>api\_key <br><br><mark style="color:red;">required</mark></p> | This is your API key.                                                                 |
| <p>url<br><br><mark style="color:red;">required</mark></p>       | <p>Type: <code>String</code> </p><p></p><p>The Zillow API URL you want to target.</p> |

### API Example

{% tabs %}
{% tab title="cURL" %}

```
curl "https://api.scrapingdog.com/zillow?api_key=APIKEY&url=https://www.zillow.com/homes/for_sale/Brooklyn,-New-York,-NY_rb/"
```

{% endtab %}

{% tab title="Python" %}

```python
import requests
import json

url = "https://api.scrapingdog.com/zillow"
api_key = "APIKEY"
url = "https://www.zillow.com/homes/for_sale/Brooklyn,-New-York,-NY_rb/"

# Set up the parameters
params = {"api_key": api_key, "url": url}

# Make the HTTP GET request
response = requests.get(url, params=params)

# Check if the request was successful (status code 200)
if response.status_code == 200:
    # Parse the JSON content
    json_response = response.json()
    print(json_response)
else:
    print(f"Error: {response.status_code}")
    print(response.text)

```

{% endtab %}

{% tab title="Node JS" %}

```javascript
const axios = require('axios');

const apiUrl = 'https://api.scrapingdog.com/zillow';
const apiKey = 'APIKEY';
const jobSearchUrl = 'https://www.zillow.com/homes/for_sale/Brooklyn,-New-York,-NY_rb/';

// Set up the parameters
const params = { api_key: apiKey, url: url};

// Make the HTTP GET request
axios.get(apiUrl, { params })
  .then(response => {
    // Check if the request was successful (status code 200)
    if (response.status === 200) {
      // Parse the JSON content
      const jsonResponse = response.data;

      console.log('JSON Response:');
      console.log(JSON.stringify(jsonResponse, null, 2)); // Pretty print the JSON
    } else {
      console.error(`Error: ${response.status}`);
      console.error(response.data);
    }
  })
  .catch(error => {
    console.error('Error making the request:', error.message);
  });

```

{% endtab %}

{% tab title="PHP" %}

```php
<?php

$apiUrl = 'https://api.scrapingdog.com/zillow';
$apiKey = 'APIKEY';
$url= 'https://www.zillow.com/homes/for_sale/Brooklyn,-New-York,-NY_rb/';

// Set up the parameters
$params = [
    'api_key' => $apiKey,
    'url' => $url,
];

// Build the URL with parameters
$url = $apiUrl . '?' . http_build_query($params);

// Initialize cURL session
$ch = curl_init();

// Set cURL options
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// Make the HTTP GET request
$response = curl_exec($ch);

// Check for cURL errors
if (curl_errno($ch)) {
    echo 'Curl error: ' . curl_error($ch);
} else {
    // Decode the JSON response
    $jsonResponse = json_decode($response, true);

    // Check if the request was successful (status code 200)
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    if ($httpCode === 200) {
        echo 'JSON Response:' . PHP_EOL;
        echo json_encode($jsonResponse, JSON_PRETTY_PRINT) . PHP_EOL;
    } else {
        echo 'Error: ' . $httpCode . PHP_EOL;
        echo $response . PHP_EOL;
    }
}

// Close cURL session
curl_close($ch);
?>

```

{% endtab %}

{% tab title="Ruby" %}

```ruby
require 'net/http'
require 'uri'
require 'json'

api_url = 'https://api.scrapingdog.com/zillow'
api_key = 'APIKEY'
url = 'https://www.zillow.com/homes/for_sale/Brooklyn,-New-York,-NY_rb/'

# Set up the parameters
params = {
  'api_key' => api_key,
  'url' => url
}

# Build the URL with parameters
url = URI.parse(api_url)
url.query = URI.encode_www_form(params)

# Make the HTTP GET request
response = Net::HTTP.get_response(url)

# Check if the request was successful (status code 200)
if response.code.to_i == 200
  # Parse the JSON response
  json_response = JSON.parse(response.body)

  puts 'JSON Response:'
  puts JSON.pretty_generate(json_response)
else
  puts "Error: #{response.code}"
  puts response.body
end

```

{% endtab %}

{% tab title="Java" %}

```java
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

public class ScrapingDogExample {
    public static void main(String[] args) {
        String apiUrl = "https://api.scrapingdog.com/zillow";
        String apiKey = "APIKEY";
        String url = "https://www.zillow.com/homes/for_sale/Brooklyn,-New-York,-NY_rb/";

        try {
            // Set up the parameters
            String queryParams = "api_key=" + apiKey + "&url=" + url;

            // Build the URL with parameters
            URL url = new URL(apiUrl + "?" + queryParams);

            // Open the connection
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();

            // Set the request method to GET
            connection.setRequestMethod("GET");

            // Get the response code
            int responseCode = connection.getResponseCode();

            // Check if the request was successful (status code 200)
            if (responseCode == HttpURLConnection.HTTP_OK) {
                // Read the response
                BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
                StringBuilder response = new StringBuilder();
                String line;

                while ((line = reader.readLine()) != null) {
                    response.append(line);
                }

                reader.close();

                // Print the JSON response
                System.out.println("JSON Response:");
                System.out.println(response.toString());
            } else {
                // Print the error code and response
                System.err.println("Error: " + responseCode);
                BufferedReader errorReader = new BufferedReader(new InputStreamReader(connection.getErrorStream()));
                String line;

                while ((line = errorReader.readLine()) != null) {
                    System.err.println(line);
                }

                errorReader.close();
            }

            // Close the connection
            connection.disconnect();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

```

{% endtab %}

{% tab title="C#" %}

```csharp
using System;
using System.Net.Http;
using System.Threading.Tasks;

public class ScrapingDogExample
{
    public static async Task Main(string[] args)
    {
        string apiUrl = "https://api.scrapingdog.com/zillow";
        string apiKey = "APIKEY";
        string url = "https://www.zillow.com/homes/for_sale/Brooklyn,-New-York,-NY_rb/";

        try
        {
            // Set up the parameters
            string queryParams = $"api_key={apiKey}&url={url}";

            // Build the URL with parameters
            string fullUrl = $"{apiUrl}?{queryParams}";

            // Create an instance of HttpClient
            using (HttpClient client = new HttpClient())
            {
                // Send a GET request to the URL
                HttpResponseMessage response = await client.GetAsync(fullUrl);

                // Check if the request was successful (status code 200)
                if (response.IsSuccessStatusCode)
                {
                    // Read the response content
                    string jsonResponse = await response.Content.ReadAsStringAsync();

                    // Print the JSON response
                    Console.WriteLine("JSON Response:");
                    Console.WriteLine(jsonResponse);
                }
                else
                {
                    // Print the error code and response
                    Console.WriteLine($"Error: {response.StatusCode}");

                    string errorResponse = await response.Content.ReadAsStringAsync();
                    Console.WriteLine(errorResponse);
                }
            }
        }
        catch (Exception e)
        {
            Console.WriteLine($"Exception: {e.Message}");
        }
    }
}

```

{% endtab %}
{% endtabs %}

### Response

```json
{
    "zillow_listings": [
        {
            "zpid": "30777487",
            "id": "30777487",
            "rawHomeStatusCd": "ForSale",
            "marketingStatusSimplifiedCd": "For Sale by Agent",
            "imgSrc": "https://photos.zillowstatic.com/fp/ac76b7865e238c66a762a77d32ec73c7-p_e.jpg",
            "hasImage": true,
            "detailUrl": "https://www.zillow.com/homedetails/1264-E-102nd-St-Brooklyn-NY-11236/30777487_zpid/",
            "statusType": "FOR_SALE",
            "statusText": "House for sale",
            "countryCurrency": "$",
            "price": "$677,000",
            "unformattedPrice": 677000,
            "address": "1264 E 102nd Street, Canarsie, NY 11236",
            "addressStreet": "1264 E 102nd Street",
            "addressCity": "Brooklyn",
            "addressState": "NY",
            "addressZipcode": "11236",
            "isUndisclosedAddress": false,
            "beds": 3,
            "baths": 2,
            "latLong": {
                "latitude": 40.639812,
                "longitude": -73.8903
            },
            "isZillowOwned": false,
            "flexFieldText": "3 days on Zillow",
            "flexFieldType": "daysOnZillow",
            "hdpData": {
                "homeInfo": {
                    "zpid": 30777487,
                    "streetAddress": "1264 E 102nd Street",
                    "zipcode": "11236",
                    "city": "Brooklyn",
                    "state": "NY",
                    "latitude": 40.639812,
                    "longitude": -73.8903,
                    "price": 677000,
                    "bathrooms": 2,
                    "bedrooms": 3,
                    "homeType": "SINGLE_FAMILY",
                    "homeStatus": "FOR_SALE",
                    "daysOnZillow": 3,
                    "isFeatured": false,
                    "shouldHighlight": false,
                    "zestimate": 715200,
                    "rentZestimate": 3721,
                    "listing_sub_type": {
                        "is_FSBA": true
                    },
                    "isUnmappable": false,
                    "isPreforeclosureAuction": false,
                    "homeStatusForHDP": "FOR_SALE",
                    "priceForHDP": 677000,
                    "timeOnZillow": 325555000,
                    "isNonOwnerOccupied": true,
                    "isPremierBuilder": false,
                    "isZillowOwned": false,
                    "currency": "USD",
                    "country": "USA",
                    "taxAssessedValue": 734000,
                    "lotAreaValue": 4000,
                    "lotAreaUnit": "sqft",
                    "isShowcaseListing": false
                }
            },
            "isSaved": false,
            "isUserClaimingOwner": false,
            "isUserConfirmedClaim": false,
            "pgapt": "ForSale",
            "sgapt": "For Sale (Broker)",
            "zestimate": 715200,
            "shouldShowZestimateAsPrice": false,
            "has3DModel": false,
            "hasVideo": false,
            "isHomeRec": false,
            "hasAdditionalAttributions": true,
            "isFeaturedListing": false,
            "isShowcaseListing": false,
            "list": true,
            "relaxed": false,
            "info3String": "https://photos.zillowstatic.com/fp/4e66a55bd37a412d002fb678e0dbded9-zillow_web_48_23.jpg",
            "brokerName": "Listing by: Keller Williams Legendary",
            "carouselPhotos": [
                {
                    "url": "https://photos.zillowstatic.com/fp/ac76b7865e238c66a762a77d32ec73c7-p_e.jpg"
                },
                {
                    "url": "https://photos.zillowstatic.com/fp/d209ed5c59d3bdfaccf0d01d828f56a5-p_e.jpg"
                },
                {
                    "url": "https://photos.zillowstatic.com/fp/7796feccdf86fc421cc6297143e105b7-p_e.jpg"
                },
                {
                    "url": "https://photos.zillowstatic.com/fp/cd088bade978324f4b18106225f31ab2-p_e.jpg"
                },
                {
                    "url": "https://photos.zillowstatic.com/fp/3e0148bca4b196eeca26aa1d9f40801f-p_e.jpg"
                },
                {
                    "url": "https://photos.zillowstatic.com/fp/9f5d53ffdba90fc293e89d7f86d4a209-p_e.jpg"
                },
                {
                    "url": "https://photos.zillowstatic.com/fp/61babbd5e3e060bea91eeb83da36396b-p_e.jpg"
                },
                {
                    "url": "https://photos.zillowstatic.com/fp/8d90e5cdc9cac10a00a27770b0798cdb-p_e.jpg"
                },
                {
                    "url": "https://photos.zillowstatic.com/fp/bc14ead3ed00ac561b79185cf4bb774a-p_e.jpg"
                },
                {
                    "url": "https://photos.zillowstatic.com/fp/7992a681f6ff17297f7fedafc75799a7-p_e.jpg"
                },
                {
                    "url": "https://photos.zillowstatic.com/fp/63c39e8411678c60b8fd217108485539-p_e.jpg"
                },
                {
                    "url": "https://photos.zillowstatic.com/fp/cc2277d76c43f8679c61e6d2adc08fba-p_e.jpg"
                },
                {
                    "url": "https://photos.zillowstatic.com/fp/8831d5345385ddf251c1eed931b292a9-p_e.jpg"
                },
                {
                    "url": "https://photos.zillowstatic.com/fp/ba222b58a0dd9fe75077de86eb897327-p_e.jpg"
                },
                {
                    "url": "https://photos.zillowstatic.com/fp/e3ef4baa04952020fe05a68f09765a36-p_e.jpg"
                },
                {
                    "url": "https://photos.zillowstatic.com/fp/416107e9f5af797d16930e38c521d883-p_e.jpg"
                },
                {
                    "url": "https://photos.zillowstatic.com/fp/5b57c98d0033ded11e08b76271c31664-p_e.jpg"
                },
                {
                    "url": "https://photos.zillowstatic.com/fp/aa76c19b031703602edb7212c2ae6b30-p_e.jpg"
                },
                {
                    "url": "https://photos.zillowstatic.com/fp/8e7f1575d47a3238c43dbc06b8034464-p_e.jpg"
                },
                {
                    "url": "https://photos.zillowstatic.com/fp/ffd69321f1a601ee27cd1b575009fd39-p_e.jpg"
                },
                {
                    "url": "https://photos.zillowstatic.com/fp/76c52fe8061380a06615ed5dfd67445d-p_e.jpg"
                },
                {
                    "url": "https://photos.zillowstatic.com/fp/b2d5b7a8811ac750e49e998366cbba89-p_e.jpg"
                },
                {
                    "url": "https://photos.zillowstatic.com/fp/1d5efa1ae9095bef271ab19299523024-p_e.jpg"
                },
                {
                    "url": "https://photos.zillowstatic.com/fp/eccd8d309157023c62c290a2fa4cc1f3-p_e.jpg"
                },
                {
                    "url": "https://photos.zillowstatic.com/fp/464498283c83331d0c1caea947682875-p_e.jpg"
                },
                {
                    "url": "https://photos.zillowstatic.com/fp/653df121e564627e2e9fcda4e58c6d5f-p_e.jpg"
                },
                {
                    "url": "https://photos.zillowstatic.com/fp/6842c15f5a61caecd03009a22c393138-p_e.jpg"
                },
                {
                    "url": "https://photos.zillowstatic.com/fp/04c0d0b1dc56223277fc3ac1800d90ed-p_e.jpg"
                },
                {
                    "url": "https://photos.zillowstatic.com/fp/e4e3bef4be49a033ff7850c706e03812-p_e.jpg"
                }
            ]
        },
     ........
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.scrapingdog.com/zillow-scraper-api.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
