๐ก Zillow ZIP Code Search Scraper
Pricing
from $5.99 / 1,000 results
๐ก Zillow ZIP Code Search Scraper
๐ก Zillow ZIP Code Search Scraper extracts listings by ZIP code from Zillow, helping you analyze market trends, prices, and property data fast. ๐ Ideal for real estate research, lead gen, and investing. ๐ Easy to run, optimized for speed!
Pricing
from $5.99 / 1,000 results
Rating
0.0
(0)
Developer
Scrapier
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day 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!