Zillow ZIP Search Scraper - Listings & Prices avatar

Zillow ZIP Search Scraper - Listings & Prices

Pricing

from $1.00 / 1,000 listings

Go to Apify Store
Zillow ZIP Search Scraper - Listings & Prices

Zillow ZIP Search Scraper - Listings & Prices

Scrape Zillow listings for any US ZIP code: homes for sale, for rent or recently sold, with price, Zestimate, Rent Zestimate, beds, baths, area, days on Zillow, price cuts and coordinates. Rental buildings priced from their units. Follows every page, no browser.

Pricing

from $1.00 / 1,000 listings

Rating

0.0

(0)

Developer

Tom Awake

Tom Awake

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

13 hours ago

Last modified

Share

What does Zillow ZIP Search Scraper do?

Zillow ZIP Search Scraper extracts every Zillow listing for the US ZIP codes you give it: homes for sale, for rent, or recently sold. You get the price, the Zestimate and Rent Zestimate, beds, baths, living area, lot size, home type, days on Zillow, price cuts, open houses, broker, coordinates and the listing URL. It works like a Zillow API for ZIP-code searches.

  • Follows every results page. Zillow shows about 41 listings per page, and the actor pages through until it reaches your limit. Measured: 264 listings over 7 pages for 90210.
  • Rental buildings, priced. On Zillow, apartment buildings have no price of their own, only per-unit rents. In a sample of 123 rentals, 73 were buildings. The actor reads their starting rent, rent range, bedroom range and available units. Measured: rental price coverage rose from 42 % to 98 %.
  • Filters that keep paging. A minimum price, bedrooms or a home type is applied during collection. Ask for 100 condos and you get 100 condos, not the condos found among the first 100 listings.
  • No browser. The actor reads Zillow's own page data, which is fast and light.

What data can you extract from Zillow?

DataFields
Priceprice, priceText, zestimate, rentZestimate, priceChange, priceReduction
Homebeds, baths, livingAreaSqft, lotAreaValue, lotAreaUnit, homeType, homeStatus
MarketdaysOnZillow, openHouse, brokerName, listingType
Locationaddress, street, city, state, zipcode, latitude, longitude
Rental buildingsisBuilding, buildingName, availableUnits, minRent, maxRent, bedsRange, units
Linkszpid, detailUrl, imageUrl

Coverage measured on 3 ZIP codes (90210, 10001, 60614), 123 listings per type:

FieldFor saleFor rentSold
price100 %98 %100 %
zestimate57 %15 %92 %
rentZestimate22 %28 %57 %
baths100 %41 %97 %
livingAreaSqft84 %30 %72 %
daysOnZillow98 %40 %100 %
priceChange18 %15 %
latitude, longitude100 %98 %90 %

Rental buildings carry per-unit data (units, bedsRange, rent range) instead of a single home's baths and area, which is why those columns are thinner for rentals.

How to scrape Zillow by ZIP code

  1. Enter one or more ZIP codes.
  2. Choose for sale, for rent or recently sold.
  3. Optionally set filters: price range, minimum bedrooms, home types.
  4. Click Start, then download JSON, CSV or Excel, or read the results through the API.

How much does it cost to scrape Zillow?

You pay per listing returned: $0.0015 each, that is $1.50 per 1,000. Subscription plans pay less, down to $0.0007 per listing. There is no start fee.

JobListingsCost
One ZIP code, first page~41about $0.06
One ZIP code, 200 listings200about $0.30
20 ZIP codes, 200 each4,000about $6

If a run reaches the spending limit you set, the output stops at that limit and never goes past it.

Input example

{
"zipCodes": ["90210", "10001", "60614"],
"listingType": "forSale",
"priceMin": 500000,
"minBedrooms": 2,
"homeTypes": ["CONDO", "TOWNHOUSE"],
"maxItemsPerZip": 200
}

Output example

{
"zpid": "20534770",
"address": "624 Cole Pl, Beverly Hills, CA 90210",
"listingType": "forSale",
"price": 25000000,
"zestimate": null,
"beds": 6,
"baths": 6,
"livingAreaSqft": 6586,
"homeType": "SINGLE_FAMILY",
"daysOnZillow": 1,
"priceChange": -2998000,
"priceReduction": "$2,998,000 (Sep 17)",
"openHouse": "Sun. 1-4pm",
"latitude": 34.10872,
"longitude": -118.3981,
"detailUrl": "https://www.zillow.com/homedetails/624-Cole-Pl-Beverly-Hills-CA-90210/20534770_zpid/"
}

Use the Zillow API in Python

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("DataIO/zillow-zip-search-scraper").call(run_input={
"zipCodes": ["90210"], "listingType": "forSale", "maxItemsPerZip": 100,
})
for home in client.dataset(run["defaultDatasetId"]).iterate_items():
print(home["address"], home["price"], home["zestimate"])

It also works from JavaScript, Make, Zapier, n8n, and from AI agents through the Apify MCP server.

Other actors you might like

FAQ

The actor reads listings that Zillow shows publicly, without logging in. Zillow's terms of use restrict automated access. You decide whether and how to use the data, and it is your responsibility to respect those terms and the laws that apply to you.

Why do I need residential proxies?

Zillow blocks datacenter addresses. Measured: HTTP 403 on every attempt from datacenter proxies, and 123 listings with no refusal from US residential proxies. The default setting already uses US residential proxies.

Why is the Zestimate sometimes empty?

Zillow does not publish a Zestimate for every home in search results: in the sample, 57 % of homes for sale and 92 % of recently sold homes had one.

Can I track a ZIP code every day?

Yes. Schedule the actor and compare price, priceChange and daysOnZillow from one run to the next to catch new listings and price cuts.

Source

Public Zillow search pages. This actor is not affiliated with or endorsed by Zillow.