Zillow ZIP Code Scraper
Pricing
from $0.80 / 1,000 results
Zillow ZIP Code Scraper
Scrape Zillow by ZIP code: for sale, rent, sold. 55 filters, map tiling, price history. $0.80/1K results — the lowest price on Apify, cheaper than any alternative.
Pricing
from $0.80 / 1,000 results
Rating
0.0
(0)
Developer
Unfenced Group
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
11 hours ago
Last modified
Categories
Share


Extract US real estate listings from Zillow by ZIP code — for sale, for rent, or recently sold. $1.50 per 1,000 listings. No API key required.
Built by unfenced-group — the same team behind 280+ job board and real estate scrapers in the Apify Store.
Why this scraper?
🎯 ZIP code native input
Type any US ZIP code directly — no need to construct search URLs or navigate Zillow's interface first. Batch multiple ZIP codes in one run.
🚫 Zero silent failures
Unlike other Zillow scrapers that return empty datasets with no error, this scraper fails loudly with a clear message when no results are found — so you always know what happened.
🗂️ 40+ input filters
Price range, beds, baths, square footage, year built, days on market, property type, listing sub-type (new construction, FSBO, coming soon, foreclosure), amenities (pool, garage, A/C, waterfront), and full rental-specific filters.
📄 50+ output fields per listing
ZPID, full address, coordinates, price, Zestimate, rent Zestimate, tax assessed value, beds, baths, living area, home type, listing status, days on market, price change history, open house times, broker name, photos, and more.
📑 Automatic pagination
Dense markets (NYC, LA) return 100+ listings per ZIP. The scraper automatically pages through all results — no result cap from Zillow's search limits.
📦 Multi-ZIP batch runs
Scrape 1, 10, or 100 ZIP codes in a single run. Results are automatically deduplicated across ZIPs.
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
zipCodes | array | required | US ZIP codes to search, e.g. ["90210", "10001"] |
operationType | string | "sale" | "sale", "rent", or "sold" |
maxItems | integer | 0 | Max listings total across all ZIPs. 0 = unlimited |
fetchDetails | boolean | false | Fetch detail page for price history, schools, walk scores |
minPrice / maxPrice | integer | 0 | Sale price range in USD |
rentMin / rentMax | integer | 0 | Monthly rent range |
bedsMin / bedsMax | integer | 0 | Bedroom count range |
bathsMin | integer | 0 | Minimum bathrooms |
sqftMin / sqftMax | integer | 0 | Living area range |
yearBuiltMin / yearBuiltMax | integer | 0 | Year built range |
daysOnZillow | string | "" | Listing age: "1", "7", "14", "30", "90", "6m", "12m" |
maxHoa | integer | 0 | Max monthly HOA fee |
homeTypes | array | [] | houses, townhomes, condos, multifamily, land, apartments, manufactured |
sortBy | string | "days" | days, priceHigh, priceLow, sqft, yearBuilt, relevance |
keywords | string | "" | Keyword filter, e.g. "pool, ocean view" |
includeNewConstruction | boolean | true | Include new construction listings |
includeForeclosures | boolean | true | Include foreclosures |
includeComingSoon | boolean | true | Include coming-soon listings |
includeFSBO | boolean | true | Include For Sale By Owner |
mustHavePool | boolean | false | Pool required |
mustHaveGarage | boolean | false | Garage required |
mustHaveAC | boolean | false | Air conditioning required |
waterfront | boolean | false | Waterfront only |
openHouseOnly | boolean | false | Open house scheduled |
priceReduced | boolean | false | Price-reduced listings only |
petsAllowed | boolean | false | Pets allowed (rent only) |
inUnitLaundry | boolean | false | In-unit laundry (rent only) |
proxyConfiguration | object | RESIDENTIAL | Proxy settings — leave as default |
Output schema
Always present
| Field | Type | Description |
|---|---|---|
zpid | string | Zillow Property ID — unique identifier |
url | string | Full Zillow listing URL |
address | string | Full formatted address |
streetAddress / city / state / zipcode | string | Address components |
latitude / longitude | number | GPS coordinates |
price | number | Listing price in USD |
priceText | string | Formatted price, e.g. ",250,000" |
pricePerSqft | number | Price per square foot |
currency | string | Always "USD" |
zestimate | number | Zillow automated valuation |
rentZestimate | number | Zillow rent estimate |
taxAssessedValue | number | Most recent tax assessed value |
beds / baths / livingArea | number | Bedroom, bathroom counts; sqft |
homeType | string | SINGLE_FAMILY, CONDO, TOWNHOUSE, etc. |
listingStatus | string | FOR_SALE, FOR_RENT, RECENTLY_SOLD |
statusText | string | Display status text |
daysOnZillow | number | Days since listing was posted |
priceChange | number | Last price change (negative = reduction) |
priceChangedDate | string | ISO date of last price change |
dateSold | string | ISO date sold (sold listings only) |
isNewConstruction | boolean | New construction flag |
isComingSoon | boolean | Coming-soon flag |
isFSBO | boolean | For Sale By Owner |
isForeclosure | boolean | Bank-owned / foreclosure |
isOpenHouse | boolean | Open house is scheduled |
isPriceReduced | boolean | Price has been reduced |
brokerName | string | Listing brokerage name |
imgSrc | string | Primary listing image URL |
hasPhotos / hasVideo / has3DModel | boolean | Media availability flags |
openHouseStart / openHouseEnd | string | Open house ISO timestamps |
source | string | Always "zillow.com" |
scrapedAt | string | ISO timestamp of scrape |
With fetchDetails: true
| Field | Type | Description |
|---|---|---|
description | string | Full property description |
parcelNumber | string | County parcel/APN number |
schools | array | Assigned schools with name, rating, distance |
walkScore / transitScore / bikeScore | number | Walkability scores (0–100) |
priceHistory | array | Price event history: {date, price, event} |
taxHistory | array | Annual tax records: {year, taxPaid, value} |
hoaFee | number | Monthly HOA fee |
photos | array | Full high-resolution photo URLs |
Example output
{"zpid": "60147953","url": "https://www.zillow.com/homedetails/150-W-26th-St-APT-903-New-York-NY-10001/60147953_zpid/","address": "150 W 26th St APT 903, New York, NY 10001","streetAddress": "150 W 26th St APT 903","city": "New York","state": "NY","zipcode": "10001","country": "US","latitude": 40.7448,"longitude": -74.0,"price": 1850000,"priceText": ",850,000","pricePerSqft": 1011,"currency": "USD","zestimate": 1816900,"rentZestimate": 7500,"taxAssessedValue": 1450000,"beds": 3,"baths": 3,"livingArea": 1829,"homeType": "CONDO","listingStatus": "FOR_SALE","statusText": "For sale","daysOnZillow": 6,"priceChange": null,"priceChangedDate": null,"dateSold": null,"isNewConstruction": null,"isComingSoon": null,"isFSBO": null,"isForeclosure": null,"isOpenHouse": null,"isPriceReduced": null,"brokerName": "Compass","imgSrc": "https://photos.zillowstatic.com/fp/abc123.jpg","hasPhotos": true,"hasVideo": false,"has3DModel": true,"openHouseStart": null,"openHouseEnd": null,"source": "zillow.com","scrapedAt": "2026-06-03T20:00:00.000Z"}
Examples
1. Basic search — NYC for sale
{"zipCodes": ["10001"],"operationType": "sale","maxItems": 50}
2. Filtered search — LA condos under 00k
{"zipCodes": ["90210", "90211", "90212"],"operationType": "sale","homeTypes": ["condos"],"maxPrice": 800000,"bedsMin": 2,"maxItems": 100}
3. Rental market snapshot — Chicago
{"zipCodes": ["60601", "60602", "60603", "60604"],"operationType": "rent","rentMax": 3000,"bedsMin": 1,"petsAllowed": true,"maxItems": 200}
4. Daily new listings feed — Austin
{"zipCodes": ["78701", "78702", "78703", "78704"],"operationType": "sale","daysOnZillow": "1","maxItems": 0}
5. Recently sold comps — Beverly Hills
{"zipCodes": ["90210"],"operationType": "sold","daysOnZillow": "90","minPrice": 2000000,"maxItems": 50}
💰 Pricing
$1.50 per 1,000 listings — you only pay for successfully scraped listings.
| Results | Cost |
|---|---|
| 100 | ~$0.15 |
| 1,000 | ~$1.50 |
| 10,000 | ~$15.00 |
| 100,000 | ~$150.00 |
Flat-rate alternatives typically charge $29–$49/month regardless of usage. Use the Max results cap to control your spend exactly.
Performance
| ZIP codes | Max results | Typical duration |
|---|---|---|
| 1 | 50 | 1–2 min |
| 1 | 500 | 5–8 min |
| 5 | 500 | 10–20 min |
| 10 | 1,000 | 20–40 min |
Actual duration varies by proxy IP quality. The scraper retries automatically with fresh IPs when needed.
Known limitations
- Year built is not available in standard list results — only retrievable with
fetchDetails: true - Filter accuracy: server-rendered results use Zillow's default sort; filters take effect as the page hydrates. For strict filter enforcement, run with smaller
maxItemsvalues and verify results - Success rate: ~87–100% per run. Rare failures occur when all proxy IP attempts are blocked — simply retry the run for a fresh IP pool
Technical details
- Source: zillow.com — US residential listings only
- Memory: 2,048 MB
- Proxy: Apify RESIDENTIAL (required — Zillow blocks datacenter IPs)
- Deduplication: automatic across ZIP codes within a single run
- Output format: JSON dataset + OUTPUT and HEALTH keys in Key-Value Store
Additional services
Need scheduled runs, webhook integration, bulk data delivery, or custom filter combinations not covered by the input schema? Email info@unfencedgroup.nl — we build on request.
Part of the Unfenced Group real estate scraper portfolio.
Built by unfenced-group · Issues? Open a ticket or send a message.