Zillow ZIP Code Scraper – Prices & Inventory avatar

Zillow ZIP Code Scraper – Prices & Inventory

Pricing

$2.00 / 1,000 listings

Go to Apify Store
Zillow ZIP Code Scraper – Prices & Inventory

Zillow ZIP Code Scraper – Prices & Inventory

Scrape Zillow property listings from one or more US ZIP codes. Export asking prices, price changes, days on Zillow, beds, baths, square footage, broker, coordinates, and inventory counts. Simple ZIP input, predictable limits, and clean price and location views.

Pricing

$2.00 / 1,000 listings

Rating

5.0

(1)

Developer

Luke Hunter

Luke Hunter

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 hours ago

Last modified

Categories

Share

Zillow ZIP Code Scraper — Prices, Listings & Inventory

Scrape Zillow listings by ZIP code and turn Zillow search results into clean, structured property data. Enter one or more US ZIP codes and get asking prices, price changes, days on Zillow, beds, baths, square footage, brokerage, coordinates, listing URLs, and Zillow's own reported inventory count.

Built for people who want a simple Zillow ZIP scraper rather than a large configuration screen: choose ZIP codes, set a hard result limit, and run.

Try the Zillow ZIP Code Scraper on Apify

Why use this Zillow ZIP scraper?

NeedWhat this Actor gives you
Zillow listings by ZIP codeEnter 1–20 ZIP codes or paste Zillow for-sale ZIP URLs
Price researchNumeric asking price plus Zillow's displayed price text
Price-cut trackingpriceChange, datePriceChanged, and daysOnZillow
Inventory researchZillow's own zipTotalResultCount on every row
Property comparisonBeds, baths, living area, lot size, home type, tax assessment
MappingLatitude, longitude, image URL, and listing URL
Predictable spendmaxItems is a hard cap on delivered listings and therefore on cost
Clean exportsFlat rows ready for CSV, Excel, JSON, databases, or the Apify API

The Actor is intentionally focused on for-sale ZIP-code research. That makes the input simple and keeps the output useful for repeatable market analysis.

What can you do with Zillow listing data?

Compare property prices across ZIP codes

Run several ZIP codes together and compare asking prices, beds, baths, square footage, home type, brokerages, and inventory. The zipCode field stays attached to every row, so side-by-side analysis is straightforward.

Track Zillow price cuts

Use priceChange to find reduced listings and datePriceChanged to see when the latest change happened. Negative values in priceChange are price cuts.

Monitor days on market and inventory

Combine daysOnZillow with zipTotalResultCount to watch how a ZIP's active inventory and listing age change over time.

Build property-research datasets

Schedule repeat runs in Apify and export each run to CSV, Excel, JSON, a database, or another workflow through the Apify API and integrations.

Get a per-ZIP market snapshot for free

Every run also writes a ZIP market snapshot — one summary row per ZIP with median asking price, median price per square foot, median days on market, and the price-cut count/rate — built from the same listings you already scraped. It lands in its own dataset (open the marketSnapshots view under the run's Storage tab, or fetch it via the Apify API) and does not count toward your billed listings.

How to scrape Zillow by ZIP code

  1. Enter one or more five-digit US ZIP codes, for example 90210 or 10001.
  2. Set Maximum listings. This is your hard result and cost cap.
  3. Click Start.
  4. Open the Listings, Prices only, Locations, or All fields dataset view.
  5. Export the data as CSV, Excel, JSON, or access it programmatically.

You can also paste a Zillow for-sale URL such as:

https://www.zillow.com/homes/for_sale/90210/

The Actor extracts the ZIP code automatically.

Input

{
"zipCodes": ["90210", "10001"],
"maxItems": 100,
"maxPagesPerZip": 20
}
FieldTypeDefaultDescription
zipCodesstring[]required1–20 US ZIP codes. Zillow for-sale ZIP URLs are also accepted.
maxItemsinteger1001–5000. Hard cap on listings delivered across the whole run.
maxPagesPerZipinteger201–20. Safety cap on Zillow search-result pages fetched per ZIP.

For most users, the only settings that matter are ZIP codes and Maximum listings.

Zillow data fields

CategoryFields
Identityzpid, zipCode
Addressaddress, addressStreet, addressCity, addressState, addressZipcode
Priceprice, priceDisplay, currencySymbol
Propertybeds, baths, area, lotAreaValue, lotAreaUnit, homeType, statusType
Market signalsdaysOnZillow, priceChange, datePriceChanged, taxAssessedValue
ListingbrokerName, imageUrl, detailUrl, isZillowOwned
Locationlatitude, longitude
InventoryzipTotalResultCount
FreshnessscrapedAt

Missing values are returned as null. The Actor does not invent or infer missing listing data.

Zillow output example

{
"zpid": "20533678",
"zipCode": "90210",
"address": "3084 Franklin Canyon Dr, Beverly Hills, CA 90210",
"price": 3895000,
"priceDisplay": "$3,895,000",
"beds": 6,
"baths": 5,
"area": 4073,
"homeType": "SINGLE_FAMILY",
"daysOnZillow": 125,
"priceChange": -300000,
"taxAssessedValue": 4052357,
"brokerName": "Keller Williams Beverly Hills",
"latitude": 34.128544,
"longitude": -118.40726,
"detailUrl": "https://www.zillow.com/homedetails/3084-Franklin-Canyon-Dr-Beverly-Hills-CA-90210/20533678_zpid/",
"zipTotalResultCount": 263,
"scrapedAt": "2026-09-21T00:00:00.000Z"
}

Use it as a Zillow listings API

The Actor can be called from any application through the Apify API. No separate Zillow API key is required.

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("lukehunter/zillow-zip-scraper").call(
run_input={
"zipCodes": ["90210", "10001"],
"maxItems": 100,
"maxPagesPerZip": 20,
}
)
for listing in client.dataset(run["defaultDatasetId"]).iterate_items():
print(listing["zipCode"], listing["address"], listing["price"])

Use Apify schedules for recurring market snapshots, and webhooks or integrations to send completed datasets into the rest of your workflow.

Pricing and cost control

This Actor uses pay per delivered listing pricing.

Current configured rate: $0.002 per listing delivered. Check the Apify Pricing tab for the latest published rate.

Listings deliveredCost at $0.002/listing
100$0.20
1,000$2.00
5,000$10.00

There is no charge for merely starting a run. maxItems gives you a clear upper bound on the number of billable listings.

Listings are de-duplicated by zpid within a run.

Reliability and data quality

The Actor is designed to fail visibly rather than quietly return misleading data.

  • If Zillow blocks the request before any listings are found, the run fails instead of returning an apparently successful empty dataset.
  • Built-in quality checks detect malformed or degraded Zillow responses and reject pages that no longer look like normal listing data instead of quietly treating them as valid.
  • Individual listings can still have fields that Zillow does not provide. Missing values are returned as null rather than guessed.
  • zipTotalResultCount gives you Zillow's own reported search total so you can compare it with the number of rows your limits allowed the run to deliver.
  • Missing values stay null; they are not guessed.
  • Duplicate zpid values are removed within the run.

Important limitations

  • For-sale ZIP searches only. This Actor does not currently scrape rentals, sold listings, city searches, school districts, or custom map areas.
  • No Zestimate field. It reads the fields available from the ZIP search results used by this Actor and does not open every property detail page.
  • Up to 20 ZIP codes per run. Split larger jobs across multiple runs.
  • maxItems and maxPagesPerZip can intentionally stop a run before every Zillow result is collected.
  • Zillow inventory and prices change continuously. Every row is a point-in-time observation identified by scrapedAt.
  • Individual agent names, phone numbers, and email addresses are not collected. brokerName is the brokerage company when Zillow publishes it.
  • The Actor does not use CAPTCHA bypass, proxy rotation, credential capture, or impersonation.
  • This is an independent tool and is not affiliated with, endorsed by, or connected to Zillow Group, Inc. Zillow is a trademark of its owner. You are responsible for using the data in accordance with applicable terms and laws.

FAQ

Can I scrape Zillow by ZIP code?

Yes. Enter one or more five-digit US ZIP codes and the Actor returns the for-sale listings Zillow publishes for those ZIP searches.

Can I export Zillow listings to CSV or Excel?

Yes. Every run writes a standard Apify dataset that can be downloaded as CSV, Excel, JSON, and other supported formats.

Can I compare Zillow prices across multiple ZIP codes?

Yes. Put multiple ZIP codes in one run. Each result includes its source zipCode, making it easy to group or compare markets.

Can I track Zillow price reductions?

Yes. priceChange contains Zillow's most recent signed price change when available. Negative values indicate a reduction.

Can I schedule Zillow data collection?

Yes. Use Apify schedules to run the same input automatically, then compare datasets over time.

Does this scrape Zillow rentals or sold properties?

No. This Actor is deliberately focused on for-sale listings by ZIP code.

Do I need a Zillow API key or account?

No separate Zillow API key or Zillow login is required.

How do I control the cost?

Set maxItems. It is a hard cap on the number of listings delivered across the run and therefore on billable results.