Zillow Search Scraper avatar

Zillow Search Scraper

Pricing

from $0.67 / 1,000 listings

Go to Apify Store
Zillow Search Scraper

Zillow Search Scraper

Search Zillow homes for sale, for rent or recently sold by city, ZIP code or map point. Get price, beds, baths, living area, Zestimate, rent Zestimate, photos and broker for up to 1,000 listings per location, with many locations in one run.

Pricing

from $0.67 / 1,000 listings

Rating

0.0

(0)

Developer

Scrappa

Scrappa

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

16 hours ago

Last modified

Share

Search Zillow for homes for sale, for rent or recently sold in any US city, ZIP code, county or neighborhood. Each listing comes back as one clean row with price, beds, baths, living area, Zestimate, rent Zestimate, broker and photos. Add many places to one run to compare markets or build a lead list.

What data can you extract?

FieldTypeDescription
zpidIntegerZillow property ID. Use it with the Zillow Property Details Scraper.
urlStringLink to the home on Zillow. Empty for apartment buildings, which have no single home page.
addressStringFull address: street, city, state and ZIP code.
streetAddress, city, state, zipcodeStringAddress parts as separate columns.
latitude, longitudeNumberMap position of the home.
homeTypeStringZillow home type: singleFamily, condo, townhome, multiFamily, manufactured, lot or apartmentComplex.
homeStatusStringListing status: forSale, forRent, recentlySold, comingSoon or similar.
priceIntegerList price in USD, or the monthly rent for rentals. For sold homes, the sale price where the state publishes it (some states, such as Texas, do not).
pricePerSqftIntegerPrice per square foot in USD.
bedrooms, bathroomsNumberNumber of bedrooms and bathrooms.
livingAreaIntegerLiving area in square feet.
lotSizeSqftIntegerLot size in square feet. Zillow lots given in acres are converted.
yearBuiltIntegerYear the home was built.
daysOnZillowIntegerDays since the listing went live on Zillow.
listedAtStringISO 8601 date and time the listing went live on Zillow.
lastSoldAtStringISO 8601 date of the last sale, for sold homes.
zestimate, rentZestimateIntegerZillow's estimated home value and monthly rent in USD, when Zillow shows them.
taxAssessedValue, taxAssessmentYearIntegerAssessed value for property tax in USD and the year of the assessment.
brokerName, mlsStatusStringListing brokerage and the status in the MLS (the local listing database).
openHousesArrayUpcoming open houses, each with ISO 8601 start and end times.
hasVirtualTourBooleanTrue when the listing has a 3D tour.
photoUrl, photoCountString, IntegerMain photo in high resolution and the number of photos.
photosArrayAll high resolution photo URLs, when Include photo list is on.
buildingName, buildingIdString, IntegerOnly on apartment buildings: building name and Zillow building ID.
priceMin, priceMax, availableUnits, unitsNumber, ArrayOnly on apartment buildings: rent range, number of available units and the lowest rent per bedroom count.
searchLocationStringThe location from your input that found this listing.
scrapedAtStringISO 8601 date and time the listing was collected.

Use cases

  • Investors can export every home for sale in their target ZIP codes and sort by price per square foot.
  • Agents and brokers can track new listings, price cuts and open houses in their farm area.
  • Analysts can compare list prices with Zestimate and rent Zestimate to find homes priced below their estimated value.
  • Property managers can collect rental listings and apartment rent ranges for a rent survey.
  • Proptech teams can feed fresh Zillow listings into their own apps, maps and dashboards.

How to use

  1. Add one place per entry to Locations: a city with state, a ZIP code, a county or a neighborhood. Or enter a point as latitude,longitude.
  2. Choose For sale, For rent or Recently sold.
  3. Set price, bedroom, bathroom and home type filters if you need them.
  4. Set Maximum listings per location and start the run.
{
"locations": [
"Austin TX",
"78704",
"47.674,-122.1215"
],
"listingType": "forSale",
"minBeds": 3,
"maxPrice": 800000,
"homeTypes": [
"singleFamily",
"townhome"
],
"sortBy": "newest",
"maxItems": 200
}

Input

FieldTypeRequiredDescription
locationsArrayYesUS places to search, one per entry: a city with state ("Austin TX"), a ZIP code ("78704"), a county or a neighborhood. You can also enter a point as latitude,longitude ("47.674,-122.1215") to search around it.
listingTypeStringNoWhich homes to search.
maxItemsIntegerNoMost listings to save for each location. Zillow shows at most 1,000 listings per search, so split large areas into ZIP codes to get more.
minPriceIntegerNoLowest price in USD. For rentals this is the monthly rent.
maxPriceIntegerNoHighest price in USD. For rentals this is the monthly rent.
minBedsIntegerNoFewest bedrooms.
maxBedsIntegerNoMost bedrooms.
minBathsNumberNoFewest bathrooms, for example 1.5.
maxBathsNumberNoMost bathrooms.
homeTypesArrayNoKeep only these home types. Leave empty for all types.
minLivingAreaIntegerNoSmallest living area in square feet.
minLotSizeIntegerNoSmallest lot in square feet. One acre is 43,560 sq ft.
minYearBuiltIntegerNoEarliest year the home was built.
keywordsStringNoWords that must appear in the listing, for example "pool" or "waterfront".
sortByStringNoOrder of the results. With a limit, the order decides which listings you get.
radiusMilesNumberNoSearch radius around latitude,longitude entries. Place names use their own Zillow boundary.
includePhotosBooleanNoAdd the full list of high resolution photo URLs to each listing. The main photo is always included.

Output example

{
"zpid": 29412345,
"url": "https://www.zillow.com/homedetails/29412345_zpid/",
"address": "4512 Ridgeview Dr, Austin, TX 78745",
"streetAddress": "4512 Ridgeview Dr",
"city": "Austin",
"state": "TX",
"zipcode": "78745",
"latitude": 30.21843,
"longitude": -97.79562,
"homeType": "singleFamily",
"homeStatus": "forSale",
"price": 549000,
"pricePerSqft": 297,
"currency": "USD",
"bedrooms": 3,
"bathrooms": 2,
"livingArea": 1848,
"lotSizeSqft": 7405,
"yearBuilt": 1987,
"daysOnZillow": 6,
"listedAt": "2026-10-11T15:42:10Z",
"lastSoldAt": null,
"zestimate": 541300,
"rentZestimate": 2795,
"taxAssessedValue": 498210,
"taxAssessmentYear": 2025,
"brokerName": "Austin Hill Country Realty",
"mlsStatus": "Active",
"openHouses": [
{
"start": "2026-10-18T19:00:00Z",
"end": "2026-10-18T21:00:00Z"
}
],
"hasVirtualTour": true,
"photoUrl": "https://photos.zillowstatic.com/fp/7c1e2b9d4a6f8e03b5d2c1a9e8f7b6a5-p_f.jpg",
"photoCount": 24,
"photos": [
"https://photos.zillowstatic.com/fp/7c1e2b9d4a6f8e03b5d2c1a9e8f7b6a5-p_f.jpg",
"https://photos.zillowstatic.com/fp/3b8d0e6f2a4c9b1d7e5f3a2c8b6d4e1f-p_f.jpg"
],
"searchLocation": "Austin TX",
"scrapedAt": "2026-10-17T15:00:00Z"
}

Pricing

$1.00 per 1,000 listings, plus a one-time start fee of $0.00005 per run. You pay only for listings saved to the dataset. Lookups of place names are free.

FAQ

How many listings can I get per location?

Zillow shows at most 1,000 listings for one search. To get more, split a large city into ZIP codes or neighborhoods and add each one as a location. A listing found by more than one location is saved and charged only once.

Any US city, county, ZIP code or neighborhood that Zillow knows. Write a city as "Austin TX". If a place is not found, the Actor logs it, continues with the other locations and lists it in the run status. You can also search around a map point with latitude,longitude and Radius for points (miles).

Why do some sold homes have no price?

Some US states, such as Texas and Utah, do not publish sale prices. Zillow then shows no price for sold homes there. The Zestimate and the sale date are still included.

How does the home type filter work?

Zillow search has no home type filter, so the Actor removes other home types from each page before it saves them. You only pay for the listings that match. Zillow returns at most 1,000 listings per search, so the filter checks those 1,000. For rare home types in a large city, search by ZIP code instead.

The Actor reads public listing data that anyone can see on Zillow without an account. Rules depend on your location and use case. Check the applicable laws and Zillow's terms, and handle personal data, such as agent names, with care.

Can I start runs through the Apify API?

Yes. Send a POST request to https://api.apify.com/v2/acts/thescrappa~zillow-search-scraper/runs with your input as JSON, or use an Apify client library. Read the results from the run's default dataset.

Can I connect the results to other tools?

Yes. Use Apify integrations to send the results to Make, Zapier, n8n, Google Sheets, Slack or a webhook, or download them as JSON, CSV or Excel.

What happens when a location fails?

The Actor retries short Zillow outages, then logs the error and continues with the next location. The run fails only when no location could be searched.