Zillow ZIP Code Scraper | Listings & Market Trends avatar

Zillow ZIP Code Scraper | Listings & Market Trends

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Zillow ZIP Code Scraper | Listings & Market Trends

Zillow ZIP Code Scraper | Listings & Market Trends

Scrape Zillow sale, rental and sold listings by US ZIP code. Export prices, addresses, home facts, Zestimates and photo URLs. Add optional property details with price and tax histories, schools and scores, plus monthly ZIP market trends with inventory, sale metrics and market temperature.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

DataScraperES

DataScraperES

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

What this Actor does

This Zillow ZIP code scraper exports structured property listings together with monthly market data for the same five-digit US ZIP codes. Choose homes for sale, for rent, sold properties, or a combination of these searches. Each returned property has a stable Zillow property identifier, its search context, available address and location, normalized listing and sold prices, home facts, property links, photo URLs and source attribution.

Optional property enrichment adds the available facts and features, price history, tax history, schools, walking/biking/transit scores and valuation history. ZIP market records contain monthly inventory, new listings, new pending listings, sale-to-list metrics, market temperature and the forecast available from Zillow. These are separate Dataset records so you can analyze properties and regional series independently.

Some supplementary listing fields are collected on a best-effort basis and can remain empty. If the supplementary lookup reaches its limit, the Actor preserves the property results and adds a warning to RUN-SUMMARY.

Use cases

  • Compare available properties across a short list of US ZIP codes.
  • Export sale, rental and sold listing samples for property research.
  • Add source price and tax histories to selected property records.
  • Compare ZIP inventory and market temperature over time.
  • Schedule recurring collections and join records using zpid or zipCode.

How to use

  1. Enter one or more five-digit ZIP codes as strings.
  2. Select sale by agent, sale by owner, rental or sold properties, and set a result limit.
  3. Enable property details if you need histories and deeper property facts.
  4. Run the Actor and export the Dataset as JSON, CSV or Excel. Filter recordType to separate property and market records.

This small input collects one property and one month of market history:

{
"zipCodes": [
"10014"
],
"statuses": [
"FOR_SALE"
],
"resultsLimit": 1,
"maxTotalResults": 1,
"includeMarketTrends": true,
"marketHistoryMonths": 1
}

Input

{
"zipCodes": [
"10014"
],
"statuses": null,
"maxResultsPerZipStatus": null,
"maxTotalResults": null,
"includePropertyDetails": false,
"maxPropertyDetails": 5,
"includeMarketTrends": false,
"marketHistoryMonths": 12,
"minPrice": null,
"maxPrice": null,
"minBedrooms": null,
"maxBedrooms": null,
"minBathrooms": null,
"maxBathrooms": null,
"minLivingArea": null,
"maxLivingArea": null,
"minYearBuilt": null,
"maxYearBuilt": null,
"homeTypes": [],
"openHousesOnly": false,
"showcaseOnly": false,
"sortOrder": "DEFAULT",
"resultsLimit": null,
"priceMin": null,
"priceMax": null,
"daysOnZillow": "",
"forSaleByAgent": true,
"forSaleByOwner": false,
"forRent": false,
"sold": false
}
FieldDefaultMeaning
zipCodesRequiredFive-digit US ZIP codes. Preserve leading zeros. Duplicate ZIPs are searched once.
statusesnullOptional legacy status selection. When set, it takes precedence over the sale/rent/sold checkboxes.
maxResultsPerZipStatusnullOptional legacy per-ZIP/status ceiling. Null collects all matching properties, subject to the other requested limits.
maxTotalResultsnullRun-wide property cap. ZIP market records do not count toward it. ZIPs and statuses are processed in input order.
includePropertyDetailsfalseEnrich the first properties with available facts, price/tax history, schools, scores and valuation history.
maxPropertyDetails5Run-wide maximum detail lookups when enabled. Null enriches every returned property. Other listings are retained with detailsStatus=limit_reached.
includeMarketTrendsfalseAdd one marketTrends Dataset record per ZIP with monthly inventory, sale metrics, temperature and available forecast.
marketHistoryMonths12Maximum latest monthly points per history series. Actual Zillow coverage can be shorter.
minPriceNo filterOptional bound. Leave empty for no bound.
maxPriceNo filterOptional bound. Leave empty for no bound.
minBedroomsNo filterOptional bound. Leave empty for no bound.
maxBedroomsNo filterOptional bound. Leave empty for no bound.
minBathroomsNo filterOptional bound. Leave empty for no bound.
maxBathroomsNo filterOptional bound. Leave empty for no bound.
minLivingAreaNo filterOptional bound. Leave empty for no bound.
maxLivingAreaNo filterOptional bound. Leave empty for no bound.
minYearBuiltNo filterOptional bound. Leave empty for no bound.
maxYearBuiltNo filterOptional bound. Leave empty for no bound.
homeTypes[]Leave empty to include all property types.
openHousesOnlyfalseEnabled returns listings with an open house. Disabled applies no open-house filter.
showcaseOnlyfalseEnabled returns Showcase listings. Disabled applies no Showcase filter.
sortOrder"DEFAULT"Use Zillow default ranking or ascending/descending listing price.
resultsLimitnullMaximum unique properties per ZIP across selected statuses. Null collects all available matches. Smaller legacy or run-wide limits still apply.
priceMinnullOptional price bound in USD, monthly for rentals. Alias of minPrice; both must agree if supplied.
priceMaxnullOptional price bound in USD, monthly for rentals. Alias of maxPrice; both must agree if supplied.
daysOnZillow""Maximum age of the listing; for sold searches, maximum days since sale. Month choices use 30 days per month.
forSaleByAgenttrueSelect this listing category. Optional legacy statuses take precedence for choosing contexts.
forSaleByOwnerfalseSelect this listing category. Optional legacy statuses take precedence for choosing contexts.
forRentfalseSelect this listing category. Optional legacy statuses take precedence for choosing contexts.
soldfalseSelect this listing category. Optional legacy statuses take precedence for choosing contexts.

resultsLimit applies per ZIP across the selected listing categories. Leave it empty to collect all available matches. Optional maxTotalResults applies across the whole run; maxResultsPerZipStatus is an additional legacy limit. Searches run in input order and properties are deduplicated by ZIP and zpid. The optional legacy statuses selection overrides the checkboxes for choosing categories; sale checkboxes still control agent/owner filtering within a sale search. priceMin/priceMax and minPrice/maxPrice are aliases and must agree when both are supplied. daysOnZillow filters listing age, or days since sale for sold searches; month choices use 30 days per month. Market records are collected for every ZIP when enabled, even after the property limit is reached. A disabled open-house or Showcase checkbox applies no filter. Empty home types and null range bounds apply no restriction. Duplicate ZIP codes are searched once.

Source restrictions can delay or stop collection. Previously saved rows remain available. Source availability and completeness are not guaranteed.

Output

The Dataset supports property records and optional market records. Property records expose normalized fields at the top level: listingPrice, listingSoldPrice, listingAddress, coordinates, listingStatus, propertyUrl, mainImage, listingPhotos, photoCount, broker, property facts, valuations, changes and sold dates. Prices include amount, currency and formatted. Photo objects contain a source URL and a nullable caption. Nested address, location, facts, listing, media, attribution and sourceInfo remain available for existing integrations. propertyDetails is populated only for the selected enrichment budget. Its detailsStatus is available, unavailable, limit_reached or not_requested. An unavailable optional detail preserves the base listing. Matched Zillow search cards also supply sourceSearchUrl, isZillowOwned and, for applicable rentals, isRentalWithBasePrice. Video and 3D indicators use available source flags and media links. A valid video link establishes video availability even when another source flag is false; unavailable evidence remains null. Optional property details can fill missing valuations, county and availability dates. Coverage differs between listing sources: unmatched or unavailable fields remain null. A false indicator means an explicit negative source flag with no positive evidence in the collected data.

Market records use recordType: marketTrends. latest contains the newest available point in each historical series. history.listing, history.sale and history.temperature contain up to the requested number of monthly points, newest first. forecast is kept separate from historical observations. scrapedAt is the collection time; source observation dates are stored inside each monthly point.

listingSoldPrice contains the price reported by the source for a sold search. It is not independent verification of a transaction. media.photoKeys preserves asset identifiers; listingPhotos supplies the available photo URLs. Images are not downloaded into the Dataset. isValid means the property passed output field/type validation; it does not guarantee that every field is populated. When a property summary is unavailable, the search listing is retained and error states that limitation. Fields without source support remain null rather than being inferred. The collection summary is available through the Collection summary output link, including counts and searches with zero results.

These are complete Dataset items from a real successful run:

[
{
"recordType": "marketTrends",
"source": "Zillow",
"zipCode": "10014",
"regionId": 61628,
"region": {
"city": "New York",
"state": "NY",
"county": "New York County",
"country": "United States",
"location": {
"latitude": 40.73285212602145,
"longitude": -74.00725937977433
}
},
"historyMonthsRequested": 1,
"latest": {
"listing": {
"regionId": 61628,
"timePeriodEnd": "2026-08-31",
"forSaleInventory": 78.0,
"newListings": 12.0,
"newPending": 14.0,
"medianDaysToPending": null
},
"sale": {
"regionId": 61628,
"timePeriodEnd": "2026-07-31",
"pctSoldAboveList": null,
"pctSoldBelowList": null,
"medianSaleToList": null
},
"temperature": {
"regionId": 61628,
"timePeriodEnd": "2026-08-31",
"marketTempIndex": 39.07133200253793,
"marketTempLabel": "buyer",
"marketTempLabelDescription": "Sellers outnumber buyers. Listing price cuts and concessions are common, but not automatic. Prices are generally flat."
}
},
"history": {
"listing": [
{
"regionId": 61628,
"timePeriodEnd": "2026-08-31",
"forSaleInventory": 78.0,
"newListings": 12.0,
"newPending": 14.0,
"medianDaysToPending": null
}
],
"sale": [
{
"regionId": 61628,
"timePeriodEnd": "2026-07-31",
"pctSoldAboveList": null,
"pctSoldBelowList": null,
"medianSaleToList": null
}
],
"temperature": [
{
"regionId": 61628,
"timePeriodEnd": "2026-08-31",
"marketTempIndex": 39.07133200253793,
"marketTempLabel": "buyer",
"marketTempLabelDescription": "Sellers outnumber buyers. Listing price cuts and concessions are common, but not automatic. Prices are generally flat."
}
]
},
"forecast": [
{
"regionId": 61628,
"timePeriodEnd": "2027-08-31",
"growthCumulative": 0.040038489884308255
}
],
"scrapedAt": "2026-09-30T15:22:26Z"
},
{
"recordType": "property",
"source": "Zillow",
"zipCode": "10014",
"regionId": 61628,
"zpid": "31497694",
"search": {
"context": "FOR_SALE",
"totalMatchingCount": 200,
"requestedLimit": 1,
"limited": true
},
"address": {
"__typename": "FormattedPropertyAddress",
"line1": "201 W Houston St",
"line2": "New York, NY 10014",
"city": "New York",
"stateOrProvince": "NY",
"postalCode": "10014"
},
"location": {
"__typename": "SearchProperty_LocationRecord",
"latitude": 40.728302,
"longitude": -74.00403,
"subdivisionName": null
},
"facts": {
"bedrooms": 4,
"bathrooms": 4.0,
"livingAreaSquareFeet": 3000,
"yearBuilt": 1899,
"homeType": "MULTI_FAMILY",
"lotSizeSquareFeet": null,
"lotSizeAcres": null,
"isNewConstruction": false
},
"listing": {
"status": "ACTIVE",
"listingType": "FOR_SALE",
"listPrice": 5995000.0,
"currency": "USD",
"daysOnMarket": 22,
"pricePerSquareFoot": 1998,
"priceChange": null,
"hasOpenHouse": false,
"openHouses": [],
"isShowcaseListing": false,
"onMarketEpochTimestamp": 1788825600000,
"zestimate": 5917100,
"rentZestimate": null,
"lastSale": {
"lastSoldDate": null
},
"rental": {
"marketingTreatments": null,
"areApplicationsAccepted": null,
"listPriceIncludesRequiredMonthlyFees": null,
"providerListingId": null,
"totalRequiredMonthlyMinFee": null,
"totalRequiredMonthlyMaxFee": null,
"RoomForRent": null
},
"providerCategory": "MLS",
"palsId": "6955001_S1843110"
},
"media": {
"photoKeys": [
"0f1f3fd5d453f4b1ea1b656fff467b77",
"0b25274bd748e70563fd4bfc86c8484e",
"ed882d707a9b53980354c524f245127e",
"553316774066de9e32f94d329be86a98",
"4b4022e3a35ab26dd82b4f5110339727",
"99d186c3dce65c26c1fc6d7ced5c866d",
"0cb25dc840dd11fcca31a9e07c4227b9",
"888d417bd019e48d5accb2435a6cff11",
"f8db5685c47587c1f92d083bb2045690",
"67579717bd7e57dffd662ca68c885d4f",
"d1b180c4dea5f165ed293296dd839b83",
"3c920ca7c31bdea73e092c1f6d6f9acd",
"a4721a5fa1d3325fa162ed9fec01e027",
"c98580281243bcd8c76af2e4c9975ac4",
"7bfa0d322923cbf9fe8c42d29940e349",
"ecca04f488ab2a35517844b6f3106e22",
"7c96fb9b6a793b9af06d9ea75584b685",
"3d75b2586d6984cb7aaa34df3e55f7c6",
"ca701d646ba68f6df04df4945cd1ec18",
"c306c753d69d85a29ac34cfe57745c99",
"8e8611e95b1dd43934af4c1a27e8a31e",
"0abf319d1925c948eb96ae98d02e2986",
"efa6523eda7dad10ff6d6eef13552ed3",
"2157ed46b3e757efa0258712c51d42b6",
"5e0799d2558996e30ec6980e086d1f5d",
"ab124fda325bf17ec0b4dbb503e30160",
"721b1c203f19f1a746a55b5fc24e680d",
"b2f414f91b1dfdf2adeb71edd1d10798",
"e88e7dac1f664baef027c12fcef7344b",
"f20f9ed4c849fb48e7a76ee8d47b7868",
"5bd4935c844e091a8d6f28ea979b37cb",
"405ebbe8a5685fdb3efa96fc6ba5af50",
"135ff60ce13a497cb5d3899f27450eea",
"2ecdc944d82d1c5387b96eee6b0811fb",
"f1048a2fbd142ee0f49cb7ebf6b42e76",
"ec8739d91490b216af38848b0a265afe"
],
"photoFallbackUrl": null,
"video": null,
"hasVideos": false,
"hasVRModel": false,
"hasFloorPlan": false,
"richMediaVideos": null
},
"attribution": {
"canShowAddress": true,
"canShowOnMap": true,
"mustDisplayLotSizeInAcres": false,
"justAgentNameIfRequired": null,
"agentPhoneIfRequired": null,
"mlsIdIfRequired": null,
"mlsNameIfRequired": null,
"mlsStatusIfRequired": "Active",
"brokerNameIfRequired": "Listing by: Compass",
"brokerPhoneIfRequired": null,
"builderNameIfRequired": null,
"soldByOfficeNameIfRequired": null,
"providerLogoIfRequired": null,
"mapCardAttribution": {
"brokerNameIfRequired": null,
"mlsIdIfRequired": null,
"providerLogoIfRequired": null
}
},
"propertyDetails": null,
"detailsStatus": "not_requested",
"scrapedAt": "2026-09-30T15:22:27Z",
"sourceInfo": {
"providerInfo": [
{
"ssid": 6955,
"disclaimer": "",
"providerLogo": null
}
],
"limitedListingCoverageInfo": null,
"highRestrictedListingRate": false,
"propertySearchResultMetadata": {
"searchTitle": null,
"searchDescription": null
}
},
"listingPrice": {
"amount": 5995000.0,
"currency": "USD",
"formatted": "$5,995,000"
},
"listingSoldPrice": null,
"listingAddress": {
"street": "201 W Houston St",
"unit": null,
"city": "New York",
"state": "NY",
"zipCode": "10014",
"county": null,
"country": "USA",
"neighborhood": null,
"subdivision": null,
"communityName": null,
"timeZone": "America/New_York",
"full": "201 W Houston St, New York, NY 10014"
},
"coordinates": {
"latitude": 40.728302,
"longitude": -74.00403
},
"listingStatus": "forSale",
"propertyUrl": "https://www.zillow.com/homedetails/201-W-Houston-St-New-York-NY-10014/31497694_zpid/",
"cardType": "home",
"homeType": "MULTI_FAMILY",
"listingType": {
"isFSBA": true,
"isFSBO": false,
"isComingSoon": false,
"isPending": false,
"isOpenHouse": false,
"isNewHome": false,
"isForAuction": false,
"isForeclosure": false,
"isBankOwned": false,
"contingencyType": null
},
"priceChange": null,
"priceChangedAt": null,
"priceReduction": null,
"bedrooms": 4,
"bathrooms": 4.0,
"livingArea": 3000,
"livingAreaUnit": "sqft",
"lotArea": null,
"daysOnZillow": 22,
"rentZestimate": null,
"taxAssessedValue": 7232000,
"mainImage": "https://photos.zillowstatic.com/fp/0f1f3fd5d453f4b1ea1b656fff467b77-p_f.jpg",
"listingPhotos": [
{
"url": "https://photos.zillowstatic.com/fp/0f1f3fd5d453f4b1ea1b656fff467b77-p_d.jpg",
"caption": null
},
{
"url": "https://photos.zillowstatic.com/fp/0b25274bd748e70563fd4bfc86c8484e-p_d.jpg",
"caption": null
},
{
"url": "https://photos.zillowstatic.com/fp/ed882d707a9b53980354c524f245127e-p_d.jpg",
"caption": null
},
{
"url": "https://photos.zillowstatic.com/fp/553316774066de9e32f94d329be86a98-p_d.jpg",
"caption": null
},
{
"url": "https://photos.zillowstatic.com/fp/4b4022e3a35ab26dd82b4f5110339727-p_d.jpg",
"caption": null
},
{
"url": "https://photos.zillowstatic.com/fp/99d186c3dce65c26c1fc6d7ced5c866d-p_d.jpg",
"caption": null
},
{
"url": "https://photos.zillowstatic.com/fp/0cb25dc840dd11fcca31a9e07c4227b9-p_d.jpg",
"caption": null
},
{
"url": "https://photos.zillowstatic.com/fp/888d417bd019e48d5accb2435a6cff11-p_d.jpg",
"caption": null
},
{
"url": "https://photos.zillowstatic.com/fp/f8db5685c47587c1f92d083bb2045690-p_d.jpg",
"caption": null
},
{
"url": "https://photos.zillowstatic.com/fp/67579717bd7e57dffd662ca68c885d4f-p_d.jpg",
"caption": null
},
{
"url": "https://photos.zillowstatic.com/fp/d1b180c4dea5f165ed293296dd839b83-p_d.jpg",
"caption": null
},
{
"url": "https://photos.zillowstatic.com/fp/3c920ca7c31bdea73e092c1f6d6f9acd-p_d.jpg",
"caption": null
},
{
"url": "https://photos.zillowstatic.com/fp/a4721a5fa1d3325fa162ed9fec01e027-p_d.jpg",
"caption": null
},
{
"url": "https://photos.zillowstatic.com/fp/c98580281243bcd8c76af2e4c9975ac4-p_d.jpg",
"caption": null
},
{
"url": "https://photos.zillowstatic.com/fp/7bfa0d322923cbf9fe8c42d29940e349-p_d.jpg",
"caption": null
},
{
"url": "https://photos.zillowstatic.com/fp/ecca04f488ab2a35517844b6f3106e22-p_d.jpg",
"caption": null
},
{
"url": "https://photos.zillowstatic.com/fp/7c96fb9b6a793b9af06d9ea75584b685-p_d.jpg",
"caption": null
},
{
"url": "https://photos.zillowstatic.com/fp/3d75b2586d6984cb7aaa34df3e55f7c6-p_d.jpg",
"caption": null
},
{
"url": "https://photos.zillowstatic.com/fp/ca701d646ba68f6df04df4945cd1ec18-p_d.jpg",
"caption": null
},
{
"url": "https://photos.zillowstatic.com/fp/c306c753d69d85a29ac34cfe57745c99-p_d.jpg",
"caption": null
},
{
"url": "https://photos.zillowstatic.com/fp/8e8611e95b1dd43934af4c1a27e8a31e-p_d.jpg",
"caption": null
},
{
"url": "https://photos.zillowstatic.com/fp/0abf319d1925c948eb96ae98d02e2986-p_d.jpg",
"caption": null
},
{
"url": "https://photos.zillowstatic.com/fp/efa6523eda7dad10ff6d6eef13552ed3-p_d.jpg",
"caption": null
},
{
"url": "https://photos.zillowstatic.com/fp/2157ed46b3e757efa0258712c51d42b6-p_d.jpg",
"caption": null
},
{
"url": "https://photos.zillowstatic.com/fp/5e0799d2558996e30ec6980e086d1f5d-p_d.jpg",
"caption": null
},
{
"url": "https://photos.zillowstatic.com/fp/ab124fda325bf17ec0b4dbb503e30160-p_d.jpg",
"caption": null
},
{
"url": "https://photos.zillowstatic.com/fp/721b1c203f19f1a746a55b5fc24e680d-p_d.jpg",
"caption": null
},
{
"url": "https://photos.zillowstatic.com/fp/b2f414f91b1dfdf2adeb71edd1d10798-p_d.jpg",
"caption": null
},
{
"url": "https://photos.zillowstatic.com/fp/e88e7dac1f664baef027c12fcef7344b-p_d.jpg",
"caption": null
},
{
"url": "https://photos.zillowstatic.com/fp/f20f9ed4c849fb48e7a76ee8d47b7868-p_d.jpg",
"caption": null
},
{
"url": "https://photos.zillowstatic.com/fp/5bd4935c844e091a8d6f28ea979b37cb-p_d.jpg",
"caption": null
},
{
"url": "https://photos.zillowstatic.com/fp/405ebbe8a5685fdb3efa96fc6ba5af50-p_d.jpg",
"caption": null
},
{
"url": "https://photos.zillowstatic.com/fp/135ff60ce13a497cb5d3899f27450eea-p_d.jpg",
"caption": null
},
{
"url": "https://photos.zillowstatic.com/fp/2ecdc944d82d1c5387b96eee6b0811fb-p_d.jpg",
"caption": null
},
{
"url": "https://photos.zillowstatic.com/fp/f1048a2fbd142ee0f49cb7ebf6b42e76-p_d.jpg",
"caption": null
},
{
"url": "https://photos.zillowstatic.com/fp/ec8739d91490b216af38848b0a265afe-p_d.jpg",
"caption": null
}
],
"photoCount": 36,
"broker": {
"name": "Compass",
"phoneNumber": null,
"buyerBrokerName": null,
"buyerAgentName": null
},
"marketingTagline": "Sleek finishes",
"openHouse": null,
"sourceSearchUrl": "https://www.zillow.com/homes/10014_rb/?searchQueryState=%7B%22usersSearchTerm%22%3A%2210014%22%2C%22regionSelection%22%3A%5B%7B%22regionId%22%3A61628%2C%22regionType%22%3A7%7D%5D%2C%22filterState%22%3A%7B%22isForSaleByAgent%22%3A%7B%22value%22%3Atrue%7D%2C%22isForSaleByOwner%22%3A%7B%22value%22%3Afalse%7D%2C%22isForRent%22%3A%7B%22value%22%3Afalse%7D%2C%22isRecentlySold%22%3A%7B%22value%22%3Afalse%7D%2C%22isNewConstruction%22%3A%7B%22value%22%3Atrue%7D%2C%22isComingSoon%22%3A%7B%22value%22%3Atrue%7D%2C%22isAuction%22%3A%7B%22value%22%3Atrue%7D%2C%22isForSaleForeclosure%22%3A%7B%22value%22%3Atrue%7D%2C%22isPendingListingsSelected%22%3A%7B%22value%22%3Atrue%7D%2C%22isPreMarketForeclosure%22%3A%7B%22value%22%3Afalse%7D%2C%22isPreMarketPreForeclosure%22%3A%7B%22value%22%3Afalse%7D%2C%22sortSelection%22%3A%7B%22value%22%3A%22globalrelevanceex%22%7D%7D%2C%22pagination%22%3A%7B%22currentPage%22%3A1%7D%2C%22isMapVisible%22%3Atrue%2C%22isListVisible%22%3Atrue%2C%22mapBounds%22%3A%7B%22west%22%3A-74.017978%2C%22east%22%3A-73.999555%2C%22south%22%3A40.702035%2C%22north%22%3A40.742862%7D%7D",
"dateSold": null,
"cardHighlight": "homeInsight",
"priceIncludesMonthlyFees": null,
"isRentalWithBasePrice": null,
"isValid": true,
"hasImage": true,
"isZillowOwned": false,
"zestimate": 5917100,
"has3DModel": false,
"hasVideo": false,
"availabilityDate": null,
"factsAndFeatures": {
"fullBathroomCount": 4,
"halfBathroomCount": 0,
"hasFireplace": null,
"hasAirConditioning": null,
"hasSpa": null,
"hasPool": null
},
"marketingTreatments": [],
"units": null,
"error": null
}
]

Pricing

This Actor uses one pay-per-event charge, apify-default-dataset-item, for each item written to its default Dataset. A property is charged once; optional property details are included in that same property item and do not add another event. If includeMarketTrends is enabled, each separate marketTrends item is also one billable result. Runs that write no Dataset items have no result charge, and there is no separate run-start charge.

Apify planPrice per Dataset itemEquivalent per 1,000 Dataset items
Free (FREE)$0.0024$2.40
Starter (BRONZE)$0.0019$1.90
Scale (SILVER)$0.0015$1.50
Business (GOLD)$0.0010$1.00
Platinum (PLATINUM)$0.0010$1.00
Diamond (DIAMOND)$0.0010$1.00

The actual charge is per Dataset item; the per-1,000 amounts are comparison equivalents. BRONZE, SILVER and GOLD are $0.10 less per 1,000 Dataset items than the MaxCopell ZIP-search reference. The current Actor pricing configuration records PLATINUM and DIAMOND at the GOLD rate.

ActorBest for
Realtor.com US Property Listings ScraperUS sale, rental and sold property searches on Realtor.com.
Fotocasa Spain Property Listings ScraperSpanish sale and rental property searches on Fotocasa.
Idealista Property Listings Scraper | Sale & RentSale and rental property listings on Idealista.

Limits and data quality

Already collected listings remain available if collection is interrupted, including listings awaiting optional details. Review the run status before treating its Dataset as a complete collection.

  • Accepts a non-empty list of five-digit US ZIP strings; there is no fixed ten-ZIP ceiling. City names, map bounds and property URLs are not inputs.
  • There is no fixed 1,000-property ceiling. Collection continues until the requested limits or available matches are reached. Very large searches or many listings sharing the same price can exceed source coverage; an incomplete exhaustive search stops with a partial collection summary while earlier rows remain available. An unlimited collection can take longer and use more resources. Set a result limit for a predictable batch.
  • maxPropertyDetails bounds optional enrichment; null selects every returned property. The source may omit summaries, details or individual fields. Empty source values remain null or empty arrays.
  • Requests up to 120 monthly history points per series. Available coverage differs by ZIP and metric; missing values stay null and short or empty histories are preserved.
  • Zillow's source coverage, restrictions and attribution are retained in sourceInfo and attribution. Preserve relevant attribution when redisplaying listings.
  • Monthly market observations can lag collection time. Zestimate values and market forecasts are source estimates.
  • Temporary source unavailability ends collection gracefully and preserves saved results. Check RUN-SUMMARY: collectionComplete is false and status is partial when requested searches could not finish. A successful execution status alone does not mean the collection is complete.
  • Reaching the run spending allowance stops further delivery with status set to budget_limited. A result limit and a spending allowance can end collection at different counts.
  • Invalid inputs, incompatible saved state and unconfirmed output delivery still require attention and can fail the run. These conditions are never reported as a complete collection.

Frequently asked questions

Can I collect rentals and sold properties?

Yes. Enable forRent or sold. Use forSaleByAgent and forSaleByOwner to select sale categories. Each selected category is searched independently. Sold results reflect Zillow's available listing data and are not a complete public-record sales database.

Do I need property enrichment for ZIP market history?

No. includeMarketTrends controls ZIP records independently of includePropertyDetails. Disable property details for listing-only research, or enable them for a bounded selection of properties.

Are property details additional Dataset records?

No. Each successful detail lookup enriches an existing property in propertyDetails. The detail count is the number of enriched properties, not extra listings. maxPropertyDetails applies to the whole run; remaining listings retain their search data. Market trends are separate records.

Why are some fields empty?

The source does not supply every field for every listing or region. Missing facts, schools, histories, media and estimates remain null or empty. The Actor does not infer missing source values. Normalized price/date formatting and boolean listing indicators are derived from the returned source fields.

How do I search a ZIP beginning with zero?

Use a string such as "02116". Numeric ZIP values are rejected because they lose leading zeros.

Responsible use

Use the collected data only for purposes you are authorized to perform. Respect Zillow's applicable terms, data licenses and source attribution, and handle any public listing contact information appropriately. This Actor is not affiliated with or endorsed by Zillow.

Support

Report a reproducible issue through the Actor's Issues tab. Include the input, expected result and the affected run link, without sharing credentials or private information.