๐Ÿก Zillow ZIP Code Search Scraper avatar

๐Ÿก Zillow ZIP Code Search Scraper

Pricing

from $3.99 / 1,000 results

Go to Apify Store
๐Ÿก Zillow ZIP Code Search Scraper

๐Ÿก 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

ScrapeFlow

ScrapeFlow

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

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_cffi slips 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, and latLong
  • ๐Ÿ“ฆ 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 โ€” maxItems limits 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

FieldTypeDescription
zipCodes โญarray of stringsUS ZIP codes to search. One Zillow query per ZIP. Bulk input supported.
forSaleByAgentbooleanInclude broker / MLS listings. Default true.
forSaleByOwnerbooleanInclude FSBO listings. Default false.
forRentbooleanInclude rentals. When true, priceMax becomes the max monthly rent. Default false.
soldbooleanSearch recently sold homes instead of active listings. Default false.
priceMaxintegerMaximum sale price (or rent if forRent). 0 = no cap.
priceMinintegerMinimum sale price (or rent if forRent). 0 = skip.
daysOnZillowenum"", 1, 7, 14, 30, 90, 6m, 12m, 24m, 36m.
maxItemsintegerListings per ZIP. 0 = unlimited. Zillow itself caps each search at ~800.
proxyConfigurationobjectOptional 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

FieldWhat 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)

  1. ๐Ÿ” Log in at console.apify.com โ†’ Actors.
  2. ๐Ÿ” Find Zillow ZIP Code Search Scraper and open it.
  3. โš™๏ธ Set the inputs:
    • Add one or more ZIP codes.
    • Toggle which listing types you want (sale / FSBO / rent / sold).
    • Set maxItems per ZIP (e.g. 50).
    • Leave proxy on no proxy to start โ€” actor will auto-fallback if needed.
  4. โ–ถ๏ธ Click Start.
  5. ๐Ÿ“บ Watch the live log โ€” each listing prints as it is collected.
  6. ๐Ÿ“ฅ Open the Dataset tab when the run finishes.
  7. ๐Ÿ“ค 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: true to 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.

EventDescription
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 maxItems to 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.


  • ๐Ÿ“œ 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 maxItems reasonable, 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!