Zillow Scraper: Homes for Sale, Rentals & Sold (US)
Pricing
from $2.00 / 1,000 searches
Zillow Scraper: Homes for Sale, Rentals & Sold (US)
Scrape Zillow listings by city, ZIP, neighborhood or search URL: for sale, for rent and recently sold, with price, Zestimate, beds, baths, size, photos and agent. Optional property details: description, facts, year built, HOA, taxes. No result cap: big searches are split by map area.
Pricing
from $2.00 / 1,000 searches
Rating
0.0
(0)
Developer
Tauqeer Abbas
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share

Scrape Zillow listings for any US city, ZIP code, neighborhood or county, or straight from a Zillow search URL: homes for sale, rentals and recently sold homes. Every listing is one item in the dataset: price or rent, address and coordinates, beds, baths, size, lot, home type, Zestimate and rent Zestimate, days on Zillow, broker and photos. Turn on property details to add each home's price history, tax history and nearby schools, its description, facts, year built, HOA fee, agent and MLS id, and every photo in full size.
What it does
- Searches by location (as you'd type it in Zillow's search box) with status, sort and filters: price or rent, bedrooms, bathrooms, size, home type.
- Takes Zillow search URLs copied from your browser: the map area and filters you set on Zillow are kept.
- Takes properties (URLs or zpids) and returns their full details.
- No 820-result cap. Zillow stops a search after 20 pages; when you ask for more, the actor splits the map into smaller areas and collects them all, without duplicates.
- Pure HTTP, no browser: fast and light (256 MB). An optional browser fallback handles Zillow's bot protection if it ever blocks a run.
Input examples
Homes for sale in a city:
{"locations": ["Austin, TX"],"maxItemsPerSearch": 500}
Rentals under $3,500 with 2+ bedrooms, newest first:
{"locations": ["Brooklyn, NY", "Jersey City, NJ"],"status": "for_rent","sort": "newest","priceMax": 3500,"bedsMin": 2}
Recently sold condos, with property details:
{"locations": ["San Diego, CA"],"status": "sold","homeTypes": ["condo"],"includeDetails": true,"maxItemsPerSearch": 100}
A search URL and some properties:
{"searchUrls": ["https://www.zillow.com/los-angeles-ca/rentals/"],"properties": ["19954164", "https://www.zillow.com/homedetails/.../2084112_zpid/"]}
Output
Each listing contains:
| Field | Example |
|---|---|
zpid, url | 51576664, https://www.zillow.com/homedetails/…/51576664_zpid/ |
status, statusText, listingType | FOR_SALE, House for sale, For Sale by Agent |
price, priceText | 895000, $895,000 (monthly rent for rentals) |
address, street, city, state, zipcode | 8435 Farralone Ave, West Hills, CA 91304 |
latitude, longitude | 34.22322, -118.61126 |
beds, baths, livingArea, lotArea, lotAreaUnit | 4, 2, 1569, 0.28, acres |
homeType | SINGLE_FAMILY, CONDO, TOWNHOUSE, MULTI_FAMILY, LOT, MANUFACTURED |
zestimate, rentZestimate, taxAssessedValue | 892400, 3707, 94202 |
daysOnZillow | 6 |
soldPrice, dateSold | sold homes: 2900000, 2026-08-12 |
brokerName | Berkshire Hathaway HomeServices California Properties |
imgSrc, photos | the main photo and the listing's photos |
has3DModel, hasVideo | true, false |
Apartment buildings (rentals) come as one item with isBuilding,
buildingName, minRent, maxRent, availableUnits and units (rent by
bedroom count).
With property details each listing also has:
| Field | Example |
|---|---|
priceHistory | [{"date": "2026-10-06", "event": "Listed for sale", "price": 895000, "pricePerSquareFoot": 570, "source": "CRMLS"}, …] |
taxHistory | [{"year": 2025, "taxPaid": 1506.82, "assessedValue": 92359, "taxIncreaseRate": 0.027}, …] |
schools | [{"name": "Nevada Avenue Elementary School", "rating": 5, "grades": "K-5", "distance": 0.2, "link": "https://www.greatschools.org/…"}, …] |
description, yearBuilt | the listing's own text, 1959 |
facts | heating, cooling, parking, appliances, flooring and more, as Zillow lists them |
monthlyHoaFee, propertyTaxRate, lastSoldPrice, priceChange | 350, 1.18, 610000, -15000 |
agentName, agentPhone, brokerName, mlsId, mlsName | Renee Rosen, 818-917-1891, …, SR26202652, CRMLS |
county, parcelId, neighborhood | Los Angeles County, 2010003056, West Hills |
pageViewCount, favoriteCount, photoCount, photos | every photo in full size |
Plus search and searchIndex, the input that found the listing. Fields a
listing doesn't have are empty. Sold prices are blank in non-disclosure
states (Texas, Utah and others): Zillow doesn't publish them.
Pricing
Pay per event: platform usage is included in every price; you never pay Apify compute, proxy or storage on top. A search that returns nothing is free.
| Event | Price | When charged |
|---|---|---|
| Run start | $0.00005 | every run |
search | $0.002 | each location or search URL that delivered at least one listing |
listing | $1.00 / 1,000 | each listing pushed to the dataset |
listing-details | $1.50 / 1,000 | each listing pushed with its property details |
Examples: 5 locations × 200 listings = $0.00005 + 5 × $0.002 + 1,000 × $0.001 = $1.01. The same with details: $2.51.
Your spending limit (set in the run configuration) is always respected: the actor stops before exceeding it.
Tips
- Big searches: set
maxItemsPerSearchabove 820 to get everything in an area; the order (sort) then holds within each map area. - Search URLs are the easiest way to use Zillow's own map and filters: draw the area on zillow.com, set the filters, copy the URL.
- Property details take about 3 seconds per home (one extra request): leave them off if the listing fields are enough.
Proxy
US residential proxies are recommended (the default: Apify residential, US). If Zillow's bot protection blocks an IP, the run moves to a new one and carries on. With Browser fallback on (and at least 1 GB of memory), it can also open Zillow in a real Chrome to get past a block.