Zillow Search Scraper avatar

Zillow Search Scraper

Try for free

7 days trial then $20.00/month - No credit card required now

Go to Store
Zillow Search Scraper

Zillow Search Scraper

axlymxp/zillow-search-scraper
Try for free

7 days trial then $20.00/month - No credit card required now

Zillow Search Scraper Scrapes Zillow property listings by location. Supports For Sale, For Rent, and Sold searches. Inputs: - query: Location ("New York, NY") - searchType: "For Sale", "For Rent", or "Sold" Outputs property data in JSON including price, address, beds/baths, status, and listing ID.

This Apify Actor scrapes property listings from Zillow based on a location search query. It supports searching properties that are For Sale, For Rent, or have been Sold.

Features

  • Search properties by location query (e.g. city names, addresses)
  • Filter by listing type (For Sale, For Rent, Sold)
  • Get detailed property information
  • Handles pagination automatically
  • Robust error handling and retry mechanisms
  • Bypasses Zillow's anti-scraping protections

Installation

Prerequisites

  • Python 3.9+
  • Apify CLI (optional, for local development)

Local Setup

  1. Clone this repository
  2. Create a virtual environment:
    1python -m venv .venv
    2source .venv/bin/activate  # On Windows: .venv\Scripts\activate
  3. Install dependencies:
    pip install -r requirements.txt

Deployment to Apify

  1. Log in to your Apify account
  2. Create a new Actor
  3. Deploy this code to the Actor
  4. Configure the Actor's input

Input Parameters

The Actor accepts the following input parameters:

ParameterTypeDescriptionDefault
queryStringLocation to search for (e.g. "New York, NY")"New York, NY"
searchTypeStringType of property search ("For Sale", "For Rent", "Sold")"For Sale"

Output

The Actor outputs JSON objects containing property listing data with fields like:

  • Price
  • Address
  • Property details (beds, baths, sqft)
  • Listing status
  • Zillow listing ID
  • Additional property information

Note: The exact data fields available may vary depending on the listing type and what information Zillow provides.

Usage

Running Locally

1# Activate virtual environment
2source .venv/bin/activate  # On Windows: .venv\Scripts\activate
3
4# Run the Actor locally
5apify run
6
7# Or run directly with Python
8python -m src

API Usage Example

1const Apify = require('apify');
2
3Apify.main(async () => {
4    const input = {
5        query: "San Francisco, CA",
6        searchType: "For Rent"
7    };
8    
9    const client = Apify.newClient();
10    const run = await client.actor("your-username/zillow-search-scraper").call(input);
11    
12    // Process results
13    const dataset = await client.dataset(run.defaultDatasetId).listItems();
14    console.log(`Found ${dataset.items.length} listings`);
15});

Code Structure

  • src/main.py - Main entry point and orchestration logic
  • src/zillow.py - Zillow API client implementation
  • src/pxutils.py - Utilities for handling PerimeterX protection
  • src/__main__.py - Script entry point

Limitations

  • Zillow limits search results to 1000 listings per search
  • Some listing details may be incomplete depending on Zillow's data availability
  • Rate limiting may occur with excessive usage

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgements

Developer
Maintained by Community

Actor Metrics

  • 2 monthly users

  • 1 bookmark

  • >99% runs succeeded

  • Created in Feb 2025

  • Modified 2 days ago

Categories