Zillow ZIP Code Scraper: For Sale, Rentals & Sold
Pricing
from $1.00 / 1,000 home saveds
Zillow ZIP Code Scraper: For Sale, Rentals & Sold
Scrape Zillow by ZIP code: homes for sale (agent, FSBO, foreclosures), rentals and recently sold homes with sold date and price, in one run. Price, Zestimate, beds, baths, photos, agent contacts and 150+ facts. Export to CSV, Excel or JSON.
Pricing
from $1.00 / 1,000 home saveds
Rating
0.0
(0)
Developer
Epic Scrapers
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Zillow ZIP Code Scraper: homes for sale, rentals and sold homes by ZIP code
Zillow ZIP Code Scraper turns a list of ZIP codes into a spreadsheet of every home Zillow has there. Pick the statuses you want (for sale, for rent and recently sold) and get them all in one run, one row per home, each row tagged with the ZIP code and status it came from. Switch on full property details to add the description, every photo, the listing agent's name, phone and email, price and tax history, schools, climate risk and 150+ facts.
It is built for real estate investors, wholesalers, agents and brokers, lenders, direct-mail marketers and researchers who work ZIP code by ZIP code.
- All statuses in one run. For sale (agent-listed, by owner, new construction, foreclosures, auctions, coming soon), for rent and recently sold, for every ZIP code you add. Zillow only lets you search one status at a time; this scraper runs each one for you and puts everything in one dataset.
- Sold homes with their sale date. Every sold row has
lastSoldDate, andlastSoldPricein states that disclose sale prices. Filter by Sold within (30, 90, 365 days…) and get the most recent sales first. - Every home in the ZIP code. Results are clipped to the ZIP code's boundary, and ZIP codes with more than 1,000 homes are split into map tiles automatically. Seattle 98103 returned all 1,434 sales of the last 600 days in 8 seconds.
- Your spending limit is respected. The run checks your maximum cost before saving each batch and before loading details, and stops before it would charge more. You are never charged past it.
- Bad input never wastes a run. Invalid or unknown ZIP codes are skipped with a clear message, and the rest are scraped.
- Search and details in one Actor. No need to feed a second Actor with zpids: switch on details and every row is complete.
- No Zillow account, API key or proxy setup. Export to JSON, CSV, Excel or Google Sheets, or call it through the Apify API.
What can you do with it?
| Goal | How |
|---|---|
| Get the whole market of a ZIP code | Select all three Listing statuses and set Max results per ZIP code to 0. |
| Pull sold comps | Select Recently sold, set Sold within to 180, and filter by beds and home type. |
| Find motivated sellers | Select For sale and Sale types: For sale by owner, Pre-foreclosures, Foreclosed, Auctions. |
| Build an agent lead list by ZIP code | Turn on Include full property details and use listingAgent, coListingAgent and broker. |
| Estimate rental yield | Select For sale and For rent for the same ZIP codes, and compare price with rentZestimate and actual rents. |
| Track new listings every day | Schedule a run with Days on Zillow 1 and Sort by: Newest. |
| Farm a territory for direct mail | Add all ZIP codes of the territory and export the addresses with searchedZipCode to group them. |
Quick start
- Click Try for free and sign in to Apify.
- Add one or more ZIP codes, such as
78704and02134. - Choose the Listing statuses: for sale, for rent, recently sold, or all three.
- For a first run, keep Max results per ZIP code at
200. - Click Start. When the run finishes, open the Output tab and export the data.
{"zipCodes": ["78704", "02134"],"statuses": ["forSale", "forRent", "sold"],"maxItemsPerZip": 200}
Sold comps of the last 90 days with full details:
{"zipCodes": ["98103", "98117"],"statuses": ["sold"],"soldInLast": 90,"bedsMin": 3,"maxItemsPerZip": 0,"includeDetails": true}
Distressed and by-owner listings, plus rentals between $1,500 and $2,500:
{"zipCodes": ["33012", "30318"],"statuses": ["forSale", "forRent"],"saleTypes": ["owner", "preForeclosure", "foreclosed", "auction"],"rentMin": 1500,"rentMax": 2500,"maxItemsPerZip": 0}
Input
| Field | What it does |
|---|---|
| ZIP codes | 5-digit US ZIP codes, one per line or pasted as a comma-separated list. Invalid entries are skipped with a warning. |
| Listing statuses | For sale, For rent, Recently sold. Each selected status is searched in every ZIP code. |
| Max results per ZIP code | Homes saved per ZIP code and status. 0 saves every match. |
| Include full property details | Adds the full property page to each home (see Output). Charged per home. |
| Sort by | Newest first by default: the latest listings, and the most recent sales for sold homes. |
| Sale types | For sale only: agent-listed, by owner (FSBO), new construction, foreclosures, auctions, coming soon, pre-foreclosures, foreclosed. |
| Price, rent, beds, baths | Price applies to homes for sale and sold prices; rent applies to rentals. |
| Home types | Houses, townhomes, condos, multi-family, apartments, manufactured, land. |
| Days on Zillow / Sold within | Only listings from the last N days, and only homes sold in the last N days. |
Pending and under-contract homes are left out of for-sale results, as on Zillow.
Output
Every row starts with the search it came from, followed by the home:
| Field | Example |
|---|---|
searchedZipCode, searchedStatus | 02134, sold (also forSale, forRent) |
zpid, url | 59087031, https://www.zillow.com/homedetails/59087031_zpid/ |
status, saleType | forSale, forSaleByAgent (also forSaleByOwner, newConstruction, auction, foreclosure, bankOwned, comingSoon) |
price, pricePerSqft, priceChange, priceChangedAt | 929000 |
lastSoldDate, lastSoldPrice | 2026-10-05, 615000 |
address, streetAddress, city, state, zipcode, latitude, longitude | 74 Ashford St, Allston, MA 02134 |
homeType, bedrooms, bathrooms, livingArea, lotSize, lotSizeUnit, yearBuilt | condo, 2, 1, 850 |
zestimate, rentZestimate, taxAssessedValue, taxAssessmentYear | |
daysOnZillow, listedAt, openHouses | |
brokerName, mlsName, mlsStatus, photo, virtualTourUrl, floorPlanUrl |
Rental searches return apartment buildings as one row with isBuilding, buildingName, availableUnits, minPrice, maxPrice and units (price from, per bedroom count).
With Include full property details each home also has:
| Field | Contents |
|---|---|
description, highlights | Listing description and Zillow's highlight phrases |
photos, photoCount | All listing photos, high resolution |
listingAgent, coListingAgent, broker | name, phone, and email where the MLS publishes it |
priceHistory | Every listing, price change and sale: date, event, price, source |
taxHistory | year, taxPaid, assessedValue |
schools | Assigned schools with rating (1–10), grades, distance and GreatSchools link |
monthlyHoaFee, walkScore, transitScore, bikeScore | |
climateRisk | Flood (with FEMA zone), fire, wind, heat and air risk scores |
county, countyFips, parcelId, neighborhood, mlsId | |
facts | 150+ facts: heating, cooling, parking, flooring, appliances, construction, roof, utilities, lot, HOA details, tax amount, more |
The Output tab has three views: Homes, Sold homes (sale date and price first) and Agents & contacts.
Pricing
You pay per home saved, with no monthly fee:
| Event | Free plan | Bronze | Silver | Gold and higher |
|---|---|---|---|---|
| Home saved | $0.0022 | $0.0018 | $0.0014 | $0.0010 |
| Full property details (only when switched on and loaded) | $0.0032 | $0.0027 | $0.0022 | $0.0015 |
Set a maximum cost per run in the run options: the scraper stops before reaching it and never charges past it. Details that fail to load are not charged.
Tips
- Sale prices: some states (Texas, Utah and others) don't disclose sale prices, so
lastSoldPriceis empty there.lastSoldDate,zestimateandtaxAssessedValueare still filled. - Older sales: without Sold within, Zillow's recently sold list covers about 3 years. Sort by Newest (the default) to get the latest sales first when you set a limit.
- ZIP code borders: Zillow assigns a few homes near a border to the neighboring ZIP code's search, so a small share of rows can show a different
zipcodein the address.searchedZipCodealways tells you which search found the home. - Auctions often have no list price. Their
priceis empty. - Schedule the scraper in Apify to collect new listings every day, and connect it to Google Sheets, Make, Zapier or a webhook.
FAQ
Is it legal to scrape Zillow? This scraper collects publicly visible listing data. Listing agent contact details are personal data: you are responsible for using them lawfully (for example under CAN-SPAM, TCPA or GDPR) and for respecting Zillow's terms where they apply to you.
Can I search a city or county instead? Use our Zillow Scraper for cities, counties, neighborhoods, Zillow search URLs and lists of addresses. This Actor is focused on ZIP codes.
Why do I get fewer homes than Zillow shows? Check the filters and Max results per ZIP code. Pending homes are excluded from for-sale results, as on Zillow.
Can I use it through an API? Yes. Every run can be started through the Apify API, and the results are available as JSON, CSV or Excel.
Something is missing or broken? Open an issue on the Issues tab. Bugs are fixed quickly.