๐ก Zillow ZIP Code Search Scraper
Pricing
from $3.99 / 1,000 results
๐ก Zillow ZIP Code Search Scraper
๐ Scrape Zillow listings by ZIP code at scale. Pull homes ๐ for sale, rent, or sold with price ๐ฐ, beds ๐๏ธ, baths ๐, photos ๐ธ, Zestimateยฎ & more. Smart proxy fallback (no proxy โ datacenter โ residential) keeps results flowing even on tough days.
Pricing
from $3.99 / 1,000 results
Rating
0.0
(0)
Developer
ScrapeLabs
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
๐ Scrape Zillow listings by ZIP code at scale. Pull homes for sale, rent, sold, FSBO, and more โ with prices ๐ฐ, beds/baths ๐๏ธ๐, square footage ๐, photos ๐ธ, Zestimateยฎ, broker info, and exact lat/long coordinates. Built for speed, accuracy, and tough anti-bot defenses with smart proxy fallback.
๐ก Why Choose This Scraper?
- โก Lightning-fast โ concurrent pagination across multiple ZIPs at once
- ๐ง Smart proxy fallback โ direct โ ๐ข datacenter โ ๐๏ธ residential (3 retries). Sticks once it works.
- ๐ก๏ธ Browser-grade fingerprinting โ TLS + HTTP/2 impersonation via
curl_cffislips past Cloudflare-style defenses - ๐พ Live-saving โ every listing is pushed to the dataset the moment it is parsed. A crash mid-run still leaves you with usable data.
- ๐ฏ Real fields, not guesses โ pulls the same payload the Zillow website sees, including
hdpData.homeInfo, photo carousels, andlatLong - ๐ฆ Bulk ZIP input โ paste 1 ZIP or 1,000 in one run
- ๐ Generous free tier โ start scraping with no proxy at all
โจ Key Features
- ๐ฎ Bulk ZIP search โ one Zillow request per ZIP, parallelized
- ๐ Status filters โ for-sale by agent, FSBO, for-rent, recently sold
- ๐ฐ Price filters โ min/max sale price OR max monthly rent (auto-switches with "For Rent")
- ๐ Days-on-Zillow filter โ last 24h, 7d, 14d, 30d, 90d, 6m, 12m, 24m, 36m
- ๐ข Per-ZIP cap โ
maxItemslimits how many listings each ZIP returns - ๐ธ Photo URLs โ full carousel of listing photos at multiple sizes
- ๐ Geo-coordinates โ exact lat/long per home for mapping pipelines
- ๐ก๏ธ Auto proxy ladder โ escalates only when blocked, never wastes proxy quota when direct works
- ๐ Retry logic โ exponential backoff with jitter on 429/5xx
- ๐ Real-time logs โ see each listing land as it is pushed
๐ฅ Input
{"zipCodes": ["10014", "07306"],"forSaleByAgent": true,"forSaleByOwner": false,"forRent": false,"sold": false,"priceMax": 4000000,"priceMin": 0,"daysOnZillow": "","maxItems": 50,"proxyConfiguration": { "useApifyProxy": false }}
Field reference
| Field | Type | Description |
|---|---|---|
zipCodes โญ | array of strings | US ZIP codes to search. One Zillow query per ZIP. Bulk input supported. |
forSaleByAgent | boolean | Include broker / MLS listings. Default true. |
forSaleByOwner | boolean | Include FSBO listings. Default false. |
forRent | boolean | Include rentals. When true, priceMax becomes the max monthly rent. Default false. |
sold | boolean | Search recently sold homes instead of active listings. Default false. |
priceMax | integer | Maximum sale price (or rent if forRent). 0 = no cap. |
priceMin | integer | Minimum sale price (or rent if forRent). 0 = skip. |
daysOnZillow | enum | "", 1, 7, 14, 30, 90, 6m, 12m, 24m, 36m. |
maxItems | integer | Listings per ZIP. 0 = unlimited. Zillow itself caps each search at ~800. |
proxyConfiguration | object | Optional Apify proxy. Default: no proxy. Auto-fallback if Zillow blocks. |
๐ค Output
Each pushed item is the full Zillow listing object enriched with searchZipCode. Trimmed example:
{"searchZipCode": "10014","zpid": "79983681","statusType": "FOR_SALE","statusText": "Active","price": "$700,000","unformattedPrice": 700000,"address": "138 W 10th St APT 3RW, New York, NY 10014","addressCity": "New York","addressState": "NY","addressZipcode": "10014","beds": 1,"baths": 1.0,"area": 0,"homeType": "CONDO","daysOnZillow": 20,"zestimate": 707400,"rentZestimate": 7656,"brokerName": "Listing by: Douglas Elliman","imgSrc": "https://photos.zillowstatic.com/fp/f7d637ffc322501c9f39e1df2b0a038e-p_e.jpg","detailUrl": "https://www.zillow.com/homedetails/138-W-10th-St-APT-3RW-New-York-NY-10014/79983681_zpid/","latitude": 40.734512,"longitude": -74.000626,"hdpData": { "homeInfo": { /* full Zillow homeInfo */ } },"carouselPhotosComposable": { /* photo gallery */ }}
Output field reference
| Field | What it is |
|---|---|
searchZipCode ๐ฎ | The ZIP this row was scraped from |
zpid ๐ | Zillow's unique property ID |
statusType / statusText ๐ฆ | Listing status (FOR_SALE, RECENTLY_SOLD, FOR_RENT, โฆ) |
price / unformattedPrice ๐ฐ๐ต | Formatted + numeric price |
address ๐ | Full street address |
beds / baths / area ๐๏ธ๐๐ | Property specs |
homeType ๐ | CONDO, SINGLE_FAMILY, TOWNHOUSE, โฆ |
daysOnZillow ๐
| Days since first listed |
zestimate / rentZestimate ๐๐ต | Zillow's automated valuations |
brokerName ๐ข | Listing agent / brokerage |
imgSrc / carouselPhotosComposable ๐ธ | Primary photo + full gallery |
detailUrl ๐ | Direct Zillow listing link |
latitude / longitude ๐ | Exact coordinates |
hdpData.homeInfo ๐งพ | The complete Zillow HDP payload |
๐ How to Use (Apify Console)
- ๐ Log in at console.apify.com โ Actors.
- ๐ Find Zillow ZIP Code Search Scraper and open it.
- โ๏ธ Set the inputs:
- Add one or more ZIP codes.
- Toggle which listing types you want (sale / FSBO / rent / sold).
- Set
maxItemsper ZIP (e.g. 50). - Leave proxy on no proxy to start โ actor will auto-fallback if needed.
- โถ๏ธ Click Start.
- ๐บ Watch the live log โ each listing prints as it is collected.
- ๐ฅ Open the Dataset tab when the run finishes.
- ๐ค Export to JSON / CSV / Excel / API.
๐ค Use via API
curl -X POST "https://api.apify.com/v2/acts/<USERNAME>~zillow-zip-code-search-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"zipCodes": ["10014", "07306"],"forSaleByAgent": true,"priceMax": 4000000,"maxItems": 50}'
Async (start the run, then poll the run / dataset endpoints):
curl -X POST "https://api.apify.com/v2/acts/<USERNAME>~zillow-zip-code-search-scraper/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"zipCodes":["90210"], "maxItems": 25}'
๐ฏ Best Use Cases
- ๐ Real-estate market analysis โ track active inventory and sold comps per ZIP
- ๐ Lead generation โ agents/brokers prospecting fresh listings in their farm areas
- ๐ง Investment research โ find undervalued properties using Zestimate vs. asking price
- ๐ฐ Journalism & data viz โ neighborhood-level housing data for stories and dashboards
- ๐ค AI / ML pipelines โ clean, structured listings to train pricing or recommendation models
- ๐๏ธ Rental pricing โ toggle
forRent: trueto benchmark rents in a ZIP - ๐บ๏ธ Geo analysis โ use built-in lat/long to drop points on a map
๐ฐ Pricing
This actor uses Apify's pay-per-event model โ you only pay for what you scrape.
| Event | Description |
|---|---|
apify-actor-start ๐ | Small one-time charge per run. First 5 seconds of compute on Apify. |
apify-default-dataset-item ๐ฆ | Charged per listing pushed to the dataset. |
๐ก Tip: start with no proxy + low
maxItemsto estimate cost. Scale up once the numbers look right.
โ Frequently Asked Questions
Q: Does this need a proxy?
A: No. By default the actor runs direct. It only escalates to a datacenter proxy if Zillow blocks, then to a residential proxy (with 3 retries) if that also fails. Once it finds a working transport, it sticks with it for the rest of the run.
Q: Why does Zillow cap each ZIP at ~800 listings?
A: That's a Zillow website limit, not a scraper limit. For dense ZIPs, narrow your search with a priceMax or daysOnZillow filter to slice the inventory into smaller buckets.
Q: Does this work for rentals?
A: Yes โ set forRent: true. The priceMax field then becomes the max monthly rent.
Q: Can I scrape sold homes?
A: Yes โ set sold: true. You'll see RECENTLY_SOLD in the statusType field.
Q: What if a ZIP fails?
A: Failures are isolated per ZIP. Other ZIPs keep running. Failed ZIPs are logged in the final summary and produce no rows for that section.
Q: How are duplicates handled?
A: Listings are deduplicated by zpid within each ZIP before being pushed.
Q: Why are some area fields 0?
A: Zillow does not publish square footage for every listing (especially co-ops and some condos). The area: 0 mirrors what the Zillow API returns.
โ๏ธ Legal & Cautions
- ๐ Data is collected from publicly available Zillow pages.
- ๐ค Use responsibly โ respect Zillow's Terms of Service and applicable laws (GDPR, CCPA, etc.).
- ๐ซ Do not scrape private accounts or paywalled content.
- ๐ข Be a good citizen: keep
maxItemsreasonable, leave proxy fallback enabled.
๐จ Support & Feedback
- ๐ฌ Found a bug or have a feature idea? Open an issue from the Actor's Issues tab.
- โญ If this saved you time, a Store rating goes a long way!