Zillow Search Scraper avatar

Zillow Search Scraper

Pricing

$19.99/month + usage

Go to Apify Store
Zillow Search Scraper

Zillow Search Scraper

🏠 Zillow Search Scraper (zillow-search-scraper) extracts Zillow search listings—prices, beds/baths, addresses, photos, agent details & URLs. 🔎 Fast, reliable, anti-blocking. 📊 Export CSV/JSON or API. 🚀 Ideal for market research, comps, investors & lead gen.

Pricing

$19.99/month + usage

Rating

0.0

(0)

Developer

ScrapeFlow

ScrapeFlow

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

0

Monthly active users

16 days ago

Last modified

Share

Zillow Search Scraper

Zillow Search Scraper is a fast, reliable Zillow web scraping tool that extracts structured property data from Zillow search results at scale. It solves the challenge of capturing clean, structured Zillow listing data for analysis by offering two robust extraction modes (API-style with dynamic zoom and HTML pagination). Built for marketers, developers, data analysts, investors, and researchers, this Zillow search results scraper enables large-scale Zillow property data extraction for comps, market analysis, and lead generation workflows — with easy Zillow to CSV export and API access. 🚀

What data / output can you get?

Below are the primary fields the actor saves to the Apify dataset from Zillow search pages. Values come from public listings and are normalized consistently across extraction methods.

Data fieldDescriptionExample value
zpidZillow property ID (stringified)"55826232"
idAlias of zpid for convenience"55826232"
priceFormatted price string"$1,000,000"
unformattedPriceNumeric price parsed from price1000000
addressFull address string"3810 Hawthorne Ave, Dallas, TX 75219"
addressStreetStreet component"3810 Hawthorne Ave"
addressCityCity component"Dallas"
addressStateState abbreviation"TX"
addressZipcodeZIP code (5-digit)"75219"
bedsNumber of bedrooms3
bathsNumber of bathrooms3
areaLiving area (sqft)2622
detailUrlAbsolute URL to listing page"https://www.zillow.com/homedetails/..."
statusTypeListing status type"FOR_SALE"
statusTextHuman-readable status text"House for sale"
imgSrcPrimary image URL"https://photos.zillowstatic.com/..."
latLongLatitude/longitude object{"latitude": 32.822216, "longitude": -96.811325}
zestimateZillow’s estimated value (if available)994000

Bonus metadata saved with each item includes fields such as rawHomeStatusCd, marketingStatusSimplifiedCd, hasImage, countryCurrency, isZillowOwned, hdpData, media flags (has3DModel, hasVideo), carouselPhotosComposable, provenance fields (foundFromSearchUrl, zoomQuadrantSequence), and more. Results are stored in an Apify dataset, so you can export to JSON, CSV, or Excel with one click.

Key features

  • 🧭 Bold extraction modes for scale
    Choose between three modes: PAGINATION_WITH_DYNAMIC_ZOOM_INCREASE for large result sets (splits map bounds into quadrants to surpass normal caps), PAGINATION_WITHOUT_ZOOMING_IN for HTML-based pagination when APIs are blocked, and MAP_MARKERS for lightweight map results (capped).

  • 🛡️ Automatic proxy fallback
    Starts without a proxy and automatically falls back to Apify Residential proxies with retry logic when blocks occur. If you set a proxy in proxyConfiguration, the actor will honor and lock that choice for the full run.

  • 📥 Live, incremental saving
    Items are pushed to the dataset as they’re collected, reducing risk of data loss on long runs and making it simple to monitor progress in real time.

  • 📦 Bulk processing at speed
    Feed multiple Zillow search URLs or keywords to scrape Zillow listings across cities, neighborhoods, or custom map views in one run — ideal for a Zillow listing scraper at market scale.

  • 🔄 Developer-friendly workflow
    Run as a Python Zillow scraper via Apify’s API/SDKs. Integrate with pipelines as a Zillow API alternative, and plug outputs into your data stack or automations (Make, Zapier, n8n).

  • 📊 Clean, structured outputs
    Normalized fields (price, unformattedPrice, address components, beds, baths, area, status, zestimate, lat/long, media) ready for Zillow to CSV export, dashboards, or analytics.

  • 🗺️ Zillow map search scraper support
    Full URL inputs with searchQueryState let you target specific map bounds and filtering, perfect for comps, rental scans, and geo-specific Zillow real estate data scraper use cases.

How to use Zillow Search Scraper - step by step

  1. Sign in to Apify and open the actor
    Log in at console.apify.com and find “zillow-search-scraper” in the Actors section.

  2. Add your input data
    Paste one or more Zillow search URLs or keywords into searchUrls. For the most precise control (map bounds, filters), provide full Zillow URLs that include searchQueryState.

  3. Choose the extraction method

    • PAGINATION_WITH_DYNAMIC_ZOOM_INCREASE: Best for large result sets; splits the map into quadrants to go beyond normal pagination caps.
    • PAGINATION_WITHOUT_ZOOMING_IN: HTML pagination, useful if the async API is blocked.
    • MAP_MARKERS: Map results only (safer cap around hundreds per URL).
  4. Set limits
    Configure maxItems to control how many listings to collect per search URL.

  5. Configure proxies (optional)
    Leave proxyConfiguration empty for automatic handling, or explicitly enable Apify Proxy. The actor will respect your proxy choice throughout the run.

  6. Start the run
    Click Start. The actor saves results to the dataset in real time and logs progress, retries, and proxy decisions.

  7. Review and export results
    Go to the Run’s Dataset tab. Export to JSON, CSV, or Excel for immediate use in analytics, CRMs, or data warehouses.

Pro tip: Trigger via API to orchestrate recurring jobs and pipe results into your data pipeline. If you send sortOrder within the URL’s searchQueryState, the actor will honor it; when provided via API as sortOrder, it will be applied to eligible URLs.

Use cases

Use caseDescription
Real estate comps & valuationBuild comps by collecting recent listings and zestimate data for targeted map bounds to improve pricing models.
Rental market scansUse this Zillow rental listings scraper workflow to track availability, prices, and inventory across neighborhoods.
Investor deal sourcingScrape Zillow listings at scale to feed acquisition pipelines and rank opportunities by beds, baths, area, and price.
Competitive market analysisMonitor property status and pricing trends with a Zillow real estate data scraper for ongoing market intelligence.
Data enrichment & analyticsEnrich BI dashboards by exporting Zillow to CSV and joining with internal datasets for geo and zip-level insights.
API-driven pipelinesUse as a Zillow API alternative in ETL jobs (Python/SDK) to refresh inventory snapshots on schedules.
Academic & policy researchCollect standardized Zillow property data extraction for studies on affordability, density, and urban planning.

Why choose Zillow Search Scraper?

Built for precision, automation, and reliability, this Zillow listing scraper avoids flaky browser extensions and delivers structured outputs you can trust.

  • ⚡ Dynamic zoom pagination for scale
    Go beyond typical pagination caps by splitting large map areas into quadrants automatically.

  • 🧩 Developer-ready and automation-friendly
    Run through Apify API/SDKs as a Python Zillow scraper in CI/CD, ETL, or serverless tasks.

  • 📈 Clean, consistent structure
    Normalized fields (price, unformattedPrice, address components, zestimate) tailored for analytics and CSV exports.

  • 🛡️ Robust anti-blocking strategy
    Automatic fallback from direct requests to residential proxies with retries and proxy locking once stable.

  • 🌍 Flexible targeting via map bounds
    Provide full URLs with searchQueryState for precise Zillow map search scraper coverage and reproducible runs.

  • 💰 Cost-effective and scalable
    Designed for batch workloads, from local tests to production-grade Zillow scraping service pipelines.

In short: a stable, production-ready Zillow data scraper that turns Zillow search results into structured, analysis-ready datasets.

Yes — when done responsibly. This actor collects data from publicly available Zillow search pages and does not access private, logged-in, or paywalled content.

Guidelines for compliant use:

  • Only collect public listing information.
  • Respect Zillow’s terms and applicable laws (e.g., GDPR, CCPA) in your jurisdiction.
  • Avoid abusive request rates and adhere to ethical data use.
  • Consult your legal team for edge cases and regulatory requirements in your region.

Input parameters & output format

Example JSON input

{
"searchUrls": [
"https://www.zillow.com/dallas-tx/?category=SEMANTIC&searchQueryState=%7B%22isMapVisible%22%3Atrue%2C%22mapBounds%22%3A%7B%22north%22%3A33.10483509834637%2C%22south%22%3A32.53008985410089%2C%22east%22%3A-96.3544578671875%2C%22west%22%3A-97.2004051328125%7D%2C%22filterState%22%3A%7B%22sort%22%3A%7B%22value%22%3A%22globalrelevanceex%22%7D%7D%2C%22isListVisible%22%3Atrue%2C%22usersSearchTerm%22%3A%22Dallas%2C%20TX%22%2C%22category%22%3A%22cat1%22%2C%22regionSelection%22%3A%5B%7B%22regionId%22%3A38128%2C%22regionType%22%3A6%7D%5D%7D"
],
"extractionMethod": "PAGINATION_WITH_DYNAMIC_ZOOM_INCREASE",
"maxItems": 20,
"proxyConfiguration": {
"useApifyProxy": false
}
}

Parameters

  • searchUrls (array, required): List of Zillow search URLs (full URLs with searchQueryState recommended) or keywords/locations. Supports bulk input.
    • Default: none (must provide at least one)
  • extractionMethod (string, optional): One of:
    • PAGINATION_WITH_DYNAMIC_ZOOM_INCREASE (default)
    • PAGINATION_WITHOUT_ZOOMING_IN
    • MAP_MARKERS Description: Dynamic zoom splits large map areas; HTML pagination avoids API calls; Map markers mode is limited to roughly hundreds per URL.
  • maxItems (integer, optional): Maximum number of property listings to scrape per search URL (1–10,000). Default: 20.
  • proxyConfiguration (object, optional): Proxy settings. By default, requests start without a proxy. On blocks, the actor falls back to Apify Residential proxy with retries. If you enable Apify Proxy, that choice is locked for the entire run. Default prefill: {"useApifyProxy": false}.

Example JSON output (single item)

{
"zpid": "55826232",
"palsId": null,
"id": "55826232",
"rawHomeStatusCd": "FOR_SALE",
"marketingStatusSimplifiedCd": null,
"providerListingId": "*APID55826232*",
"imgSrc": "https://photos.zillowstatic.com/fp/abc123-p_e.jpg",
"hasImage": true,
"detailUrl": "https://www.zillow.com/homedetails/3810-Hawthorne-Ave-Dallas-TX-75219/55826232_zpid/",
"statusType": "FOR_SALE",
"statusText": "House for sale",
"countryCurrency": "$",
"price": "$1,000,000",
"unformattedPrice": 1000000,
"address": "3810 Hawthorne Ave, Dallas, TX 75219",
"addressStreet": "3810 Hawthorne Ave",
"addressCity": "Dallas",
"addressState": "TX",
"addressZipcode": "75219",
"isUndisclosedAddress": false,
"streetViewURL": null,
"streetViewMetadataURL": null,
"shouldShowRequestOnPrice": false,
"beds": 3,
"baths": 3,
"area": 2622,
"latLong": {
"latitude": 32.822216,
"longitude": -96.811325
},
"isZillowOwned": false,
"flexFieldText": null,
"contentType": "Property",
"hdpData": {},
"isSaved": false,
"isUserClaimingOwner": false,
"isUserConfirmedClaim": false,
"pgapt": null,
"sgapt": null,
"zestimate": 994000,
"shouldShowZestimateAsPrice": false,
"has3DModel": false,
"hasVideo": false,
"isHomeRec": false,
"hasAdditionalAttributions": false,
"isFeaturedListing": false,
"isShowcaseListing": false,
"list": true,
"relaxed": false,
"carouselPhotosComposable": {
"baseUrl": "https://photos.zillowstatic.com/fp/{photoKey}-p_e.jpg",
"communityBaseUrl": null,
"photoData": [
{ "photoKey": "abc123" }
],
"communityPhotoData": null,
"isStaticUrls": false
},
"isPaidBuilderNewConstruction": false,
"foundOnSearchPage": 1,
"foundFromSearchUrl": "https://www.zillow.com/dallas-tx/?category=SEMANTIC&searchQueryState=...",
"zoomQuadrantSequence": []
}

Note: Some fields may be null or absent depending on the listing (e.g., streetViewURL, marketingStatusSimplifiedCd, media flags). The actor normalizes list/map results and ensures consistent keys where possible.

FAQ

Which extraction method should I use?

Use PAGINATION_WITH_DYNAMIC_ZOOM_INCREASE for large result sets or when you need to go beyond typical pagination caps by splitting the map into smaller quadrants. If the async API is blocked, switch to PAGINATION_WITHOUT_ZOOMING_IN (HTML pagination). Use MAP_MARKERS for lighter map-result scans with a conservative cap.

Can I scrape multiple locations or searches in one run?

Yes. Add multiple entries to searchUrls (full Zillow URLs with searchQueryState recommended). The actor will process them in bulk and save results as they come in.

Does this work for rentals as well as for-sale listings?

Yes. The actor is a Zillow search results scraper — it extracts whatever results your input URL or keyword resolves to, including rentals or for-sale inventory based on the search settings embedded in the URL.

Do I need to log in or provide cookies?

No. This Zillow scraping service operates on publicly available search pages and the async endpoint. No login or cookie management is required.

How do I export data to CSV or Excel?

Open your run’s Dataset in Apify and choose Export to CSV, JSON, or Excel. This makes Zillow to CSV export a one-click operation.

Is there an API or Python integration?

Yes. You can run the actor via Apify’s REST API or SDKs as a Python Zillow scraper in your pipelines. It’s also suitable as a lightweight Zillow API alternative for programmatic data collection.

Does it include Zestimate values and coordinates?

Yes. When available, zestimate is extracted (from hdpData.homeInfo) and latLong coordinates are included in each item.

How does proxy handling work?

The run starts without a proxy. If requests are blocked, it automatically falls back to Apify Residential proxies with retry logic. If you configure proxyConfiguration explicitly, that choice is used and locked for the full run.

Closing CTA / Final thoughts

Zillow Search Scraper is built to turn Zillow search pages into clean, structured datasets for analysis, enrichment, and automation. With dynamic zoom for scale, bulk processing, and normalized outputs (including price, address components, beds/baths, area, status, images, zestimate, and coordinates), it’s ideal for marketers, developers, analysts, investors, and researchers.

Run it in the Apify Console or via API as a Python Zillow scraper to automate pipelines and exports. Start extracting smarter real estate insights with a robust Zillow listing scraper and Zillow API alternative — at scale.