Zillow Real Estate Scraper avatar

Zillow Real Estate Scraper

Pricing

from $5.00 / 1,000 results

Go to Apify Store
Zillow Real Estate Scraper

Zillow Real Estate Scraper

Scrape Zillow property listings by location. Extract addresses, prices, beds/baths, square footage, Zestimate, agent info, and more.

Pricing

from $5.00 / 1,000 results

Rating

0.0

(0)

Developer

MItchell Peavler

MItchell Peavler

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Scrape property listings from Zillow for any location in the United States. Extract detailed real estate data including prices, property details, Zestimates, agent information, and more.

What does Zillow Scraper do?

This actor scrapes Zillow.com search results for a given location and returns structured property listing data. It handles Zillow's dynamic JavaScript rendering and anti-bot protections using Playwright with stealth techniques and residential proxy rotation.

Use it to:

  • Monitor real estate markets - Track listing prices, inventory, and trends in any US market
  • Build property datasets - Collect structured data for analysis, machine learning, or CRM import
  • Compare listings - Aggregate listings across neighborhoods or zip codes
  • Track price changes - Run periodically to detect new listings and price adjustments
  • Analyze Zestimates - Compare asking prices to Zillow's automated valuations

Features

  • Scrape listings by city, zip code, or neighborhood
  • Filter by listing type (for sale, for rent, recently sold)
  • Filter by price range, bedrooms, and home type
  • Sort results by price, newest, square footage, and more
  • Extracts 18+ data fields per listing
  • Handles pagination automatically
  • Stealth browser fingerprinting to avoid blocks
  • Session rotation with residential proxies
  • Human-like delays and scrolling behavior
  • Structured JSON output ready for analysis

Input Parameters

ParameterTypeRequiredDefaultDescription
locationStringYes-City and state, zip code, or neighborhood (e.g., "Austin, TX", "90210")
maxResultsIntegerNo20Maximum listings to return (0 = unlimited, max 500)
listingTypeStringNofor_saleOne of: for_sale, for_rent, sold
minPriceIntegerNo-Minimum listing price
maxPriceIntegerNo-Maximum listing price
minBedsIntegerNo-Minimum bedrooms (1-5)
maxBedsIntegerNo-Maximum bedrooms (1-5)
homeTypeStringNoallOne of: all, houses, condos, townhomes, apartments, manufactured, lots
sortByStringNodefaultSort order: default, newest, price_low, price_high, beds, baths, sqft, lot_size
includePhotosBooleanNofalseInclude photo URLs (increases scrape time slightly)
proxyConfigurationObjectNoResidentialProxy settings. Residential proxies strongly recommended.

Example Input

{
"location": "Austin, TX",
"maxResults": 50,
"listingType": "for_sale",
"minPrice": 300000,
"maxPrice": 600000,
"minBeds": 3,
"homeType": "houses",
"sortBy": "newest",
"includePhotos": true
}

Output

The actor stores results in a dataset. Each item represents one property listing with the following fields:

FieldTypeDescription
addressStringFull street address
cityStringCity name
stateStringState abbreviation
zipCodeStringZIP code
priceNumberListing price in USD
bedroomsNumberNumber of bedrooms
bathroomsNumberNumber of bathrooms
sqftNumberLiving area in square feet
lotSizeNumberLot size value
lotSizeUnitStringLot size unit (sqft or acres)
propertyTypeStringHouse, Condo, Townhouse, etc.
listingStatusStringFor Sale, Pending, Sold, etc.
daysOnZillowNumberDays the listing has been on Zillow
yearBuiltNumberYear the property was built
urlStringDirect Zillow listing URL
zestimateNumberZillow's estimated value
rentZestimateNumberZillow's estimated rent
pricePerSqftNumberPrice per square foot
hoaFeeNumberMonthly HOA fee (if applicable)
listingAgentStringListing agent or broker name
descriptionStringListing description (when available)
photoUrlsArrayProperty photo URLs (if includePhotos is true)
latitudeNumberProperty latitude
longitudeNumberProperty longitude
zpidStringZillow Property ID
scrapedAtStringISO timestamp of when the data was scraped

Example Output

{
"address": "1234 Oak Lane, Austin, TX 78701",
"city": "Austin",
"state": "TX",
"zipCode": "78701",
"price": 475000,
"bedrooms": 3,
"bathrooms": 2,
"sqft": 1850,
"lotSize": 6500,
"lotSizeUnit": "sqft",
"propertyType": "House",
"listingStatus": "For Sale",
"daysOnZillow": 12,
"yearBuilt": 2005,
"url": "https://www.zillow.com/homedetails/1234-Oak-Ln-Austin-TX-78701/12345678_zpid/",
"zestimate": 490000,
"rentZestimate": 2800,
"pricePerSqft": 257,
"hoaFee": null,
"listingAgent": "Compass Real Estate",
"description": "Beautiful 3-bedroom home in downtown Austin...",
"photoUrls": [
"https://photos.zillowstatic.com/fp/abc123-p_e.jpg"
],
"latitude": 30.2672,
"longitude": -97.7431,
"zpid": "12345678",
"scrapedAt": "2025-01-15T10:30:00.000Z"
}

Proxy Requirements

Zillow has aggressive anti-bot protections. Residential proxies are required for reliable operation. The actor is pre-configured to use Apify's residential proxy group.

If you use your own proxies, ensure they are residential-grade. Datacenter proxies will be blocked quickly.

Performance and Cost Estimates

ListingsEstimated TimeEstimated Cost (Apify)
202-3 minutes~$0.10-0.15
504-7 minutes~$0.20-0.35
1008-15 minutes~$0.40-0.70
20015-25 minutes~$0.80-1.40

Costs depend on proxy usage (residential proxies are billed per GB) and compute time. Actual costs may vary based on Zillow's response times and retry rates.

Tips for Best Results

  1. Use specific locations - "Austin, TX" works better than just "Austin"
  2. Set reasonable maxResults - Start small (20-50) to verify results before scaling up
  3. Use filters - Narrowing by price, beds, or home type reduces pages to scrape
  4. Schedule runs - Set up periodic runs to track market changes over time
  5. Monitor logs - Check run logs for CAPTCHA or rate-limiting warnings

Limitations

  • Zillow may change their page structure at any time, which could temporarily affect data extraction
  • Very high-volume scraping may trigger rate limits or blocks
  • Some fields (description, year built) are only available on detail pages and may be null in search results
  • Photo URLs are temporary and may expire after a few days
  • Maximum of 500 listings per run (Zillow limits search results to ~800 total)

This actor is provided for educational and research purposes. Users are responsible for ensuring their use complies with Zillow's Terms of Service and applicable laws. The actor does not use any Zillow API keys or authenticated access.