Zillow For-Sale, Rent & Sold Listing Extractor
Search Zillow by city, state or ZIP for active, rental or recently sold listings, with pricing, Zestimate, agent, school, tax and price history for each property.
Input schema
Input fields, types, required flags, descriptions, defaults, and prefills come from the published definition. Prefill examples are distinct from defaults.
| Field | Type | Required | Description |
|---|---|---|---|
search | string | optional | City, ZIP, neighborhood, county or state to search (for example 'Houston, TX' or '77002'). |
mode | string | required | Search active for-sale listings, rentals, or recently sold listings. |
maxItems | integer | optional | Maximum number of records for the whole run across all sources (1-5000). |
Show all input fields
| Field | Type | Required | Description |
|---|---|---|---|
search | string | optional | City, ZIP, neighborhood, county or state to search (for example 'Houston, TX' or '77002'). |
mode | string | required | Search active for-sale listings, rentals, or recently sold listings. |
maxItems | integer | optional | Maximum number of records for the whole run across all sources (1-5000). |
endPage | integer | optional | Maximum search result pages per search task (1-24). Zillow returns up to 41 listings per page. |
startUrls | array | optional | Property detail URLs, /apartments/ building URLs, or Zillow search page URLs. Search URLs keep their own filters and mode. |
zpids | array | optional | Zillow property IDs or URLs containing _zpid. Each ZPID is resolved to its canonical detail page. |
addresses | array | optional | Full street addresses to resolve to Zillow property pages, for example '1306 Castle Ct, Houston, TX 77006'. |
priceMin | integer | optional | Minimum listing price in US dollars. |
priceMax | integer | optional | Maximum listing price in US dollars. |
bedsMin | string | optional | Minimum number of bedrooms. |
bathsMin | string | optional | Minimum number of bathrooms. |
sqftMin | integer | optional | Minimum living area in square feet. |
sqftMax | integer | optional | Maximum living area in square feet. |
lotSizeMin | string | optional | Minimum lot size in square feet. |
lotSizeMax | string | optional | Maximum lot size in square feet. |
yearBuiltMin | integer | optional | Earliest construction year. |
yearBuiltMax | integer | optional | Latest construction year. |
hoaMax | integer | optional | Maximum monthly HOA fee in US dollars. |
parkingSpotsMin | integer | optional | Minimum number of parking spots (1-10). |
propertyTypes | array | optional | Limit results to selected property types. Leave empty for all homes. |
daysOnZillow | string | optional | Only include listings added within this period. |
sortBy | string | optional | Result order. Relevance uses Zillow's priority order in RENT mode. |
fsboOnly | boolean | optional | Only include for-sale-by-owner listings. |
foreclosureOnly | boolean | optional | Only include foreclosure listings. |
auctionOnly | boolean | optional | Only include auction listings. |
newConstructionOnly | boolean | optional | Only include new-construction listings. |
includePending | boolean | optional | Add pending and under-contract listings to active results. |
openHouseOnly | boolean | optional | Only include listings with an open house. |
priceReducedOnly | boolean | optional | Only include listings with a price reduction. |
keyword | string | optional | Free-text keyword to match in the listing, for example 'pool'. |
amenities | array | optional | Only include listings with the selected amenities. |
rentalFilters | array | optional | Rent-only filters. Ignored with a status note outside RENT mode. |
scrapeDetails | boolean | optional | Fetch each search result's detail page for description, photos, MLS, tax, open house and building floor plans. Explicit URLs, ZPIDs and addresses are always enriched. |
Download the published input schema
View complete JSON
{
"description": "Search Zillow by city, ZIP, property URL, ZPID or address; filter buy, rent and sold listings; enrich each record with property or rental-building detail.",
"properties": {
"addresses": {
"description": "Full street addresses to resolve to Zillow property pages, for example '1306 Castle Ct, Houston, TX 77006'.",
"editor": "stringList",
"items": {
"type": "string"
},
"title": "Street Addresses",
"type": "array"
},
"amenities": {
"description": "Only include listings with the selected amenities.",
"editor": "select",
"items": {
"enum": [
"pool",
"garage",
"airConditioning",
"waterfront",
"cityView",
"threeDHome",
"age55Plus",
"singleStory",
"basementFinished",
"basementUnfinished",
"waterView",
"mountainView",
"parkView"
],
"enumTitles": [
"Pool",
"Garage",
"Air conditioning",
"Waterfront",
"City view",
"3D home",
"55+ community",
"Single story",
"Finished basement",
"Unfinished basement",
"Water view",
"Mountain view",
"Park view"
],
"type": "string"
},
"title": "Amenities",
"type": "array"
},
"auctionOnly": {
"default": false,
"description": "Only include auction listings.",
"prefill": false,
"title": "Auction Only",
"type": "boolean"
},
"bathsMin": {
"default": "any",
"description": "Minimum number of bathrooms.",
"editor": "select",
"enum": [
"any",
"1",
"1.5",
"2",
"2.5",
"3",
"4",
"5"
],
"enumTitles": [
"Any",
"1+",
"1.5+",
"2+",
"2.5+",
"3+",
"4+",
"5+"
],
"title": "Minimum Bathrooms",
"type": "string"
},
"bedsMin": {
"default": "any",
"description": "Minimum number of bedrooms.",
"editor": "select",
"enum": [
"any",
"1",
"2",
"3",
"4",
"5"
],
"enumTitles": [
"Any",
"1+",
"2+",
"3+",
"4+",
"5+"
],
"title": "Minimum Bedrooms",
"type": "string"
},
"daysOnZillow": {
"default": "any",
"description": "Only include listings added within this period.",
"editor": "select",
"enum": [
"any",
"1",
"7",
"14",
"30",
"90",
"180",
"365",
"730",
"1095"
],
"enumTitles": [
"Any",
"1 day",
"7 days",
"14 days",
"30 days",
"90 days",
"6 months",
"12 months",
"24 months",
"36 months"
],
"title": "Days on Zillow",
"type": "string"
},
"endPage": {
"default": 5,
"description": "Maximum search result pages per search task (1-24). Zillow returns up to 41 listings per page.",
"maximum": 24,
"minimum": 1,
"prefill": 1,
"title": "Maximum Pages",
"type": "integer"
},
"foreclosureOnly": {
"default": false,
"description": "Only include foreclosure listings.",
"prefill": false,
"title": "Foreclosure Only",
"type": "boolean"
},
"fsboOnly": {
"default": false,
"description": "Only include for-sale-by-owner listings.",
"prefill": false,
"title": "For Sale By Owner Only",
"type": "boolean"
},
"hoaMax": {
"description": "Maximum monthly HOA fee in US dollars.",
"maximum": 10000,
"minimum": 0,
"title": "Maximum HOA Fee",
"type": "integer"
},
"includePending": {
"default": false,
"description": "Add pending and under-contract listings to active results.",
"prefill": false,
"title": "Include Pending Listings",
"type": "boolean"
},
"keyword": {
"description": "Free-text keyword to match in the listing, for example 'pool'.",
"editor": "textfield",
"title": "Keyword",
"type": "string"
},
"lotSizeMax": {
"default": "any",
"description": "Maximum lot size in square feet.",
"editor": "select",
"enum": [
"any",
"2000",
"5000",
"10890",
"21780",
"43560",
"87120"
],
"enumTitles": [
"Any",
"2,000 sqft",
"5,000 sqft",
"0.25 acre",
"0.5 acre",
"1 acre",
"2 acres"
],
"title": "Maximum Lot Size",
"type": "string"
},
"lotSizeMin": {
"default": "any",
"description": "Minimum lot size in square feet.",
"editor": "select",
"enum": [
"any",
"2000",
"5000",
"10890",
"21780",
"43560",
"87120"
],
"enumTitles": [
"Any",
"2,000 sqft",
"5,000 sqft",
"0.25 acre",
"0.5 acre",
"1 acre",
"2 acres"
],
"title": "Minimum Lot Size",
"type": "string"
},
"maxItems": {
"default": 50,
"description": "Maximum number of records for the whole run across all sources (1-5000).",
"maximum": 5000,
"minimum": 1,
"prefill": 3,
"title": "Maximum Properties",
"type": "integer"
},
"mode": {
"default": "BUY",
"description": "Search active for-sale listings, rentals, or recently sold listings.",
"editor": "select",
"enum": [
"BUY",
"RENT",
"SOLD"
],
"enumTitles": [
"For Sale (Buy)",
"For Rent",
"Recently Sold"
],
"prefill": "BUY",
"title": "Search Mode",
"type": "string"
},
"newConstructionOnly": {
"default": false,
"description": "Only include new-construction listings.",
"prefill": false,
"title": "New Construction Only",
"type": "boolean"
},
"openHouseOnly": {
"default": false,
"description": "Only include listings with an open house.",
"prefill": false,
"title": "Open House Only",
"type": "boolean"
},
"parkingSpotsMin": {
"description": "Minimum number of parking spots (1-10).",
"maximum": 10,
"minimum": 1,
"title": "Minimum Parking Spots",
"type": "integer"
},
"priceMax": {
"description": "Maximum listing price in US dollars.",
"maximum": 100000000,
"minimum": 0,
"title": "Maximum Price",
"type": "integer"
},
"priceMin": {
"description": "Minimum listing price in US dollars.",
"maximum": 100000000,
"minimum": 0,
"sectionCaption": "Filters",
"sectionDescription": "Filters are applied to location searches and search URLs through Zillow's searchQueryState.",
"title": "Minimum Price",
"type": "integer"
},
"priceReducedOnly": {
"default": false,
"description": "Only include listings with a price reduction.",
"prefill": false,
"title": "Price Reduced Only",
"type": "boolean"
},
"propertyTypes": {
"description": "Limit results to selected property types. Leave empty for all homes.",
"editor": "select",
"items": {
"enum": [
"house",
"condo",
"townhouse",
"multiFamily",
"manufactured",
"lotLand",
"apartment"
],
"enumTitles": [
"House",
"Condo",
"Townhouse",
"Multi-family",
"Manufactured",
"Lot / Land",
"Apartment"
],
"type": "string"
},
"title": "Property Types",
"type": "array"
},
"rentalFilters": {
"description": "Rent-only filters. Ignored with a status note outside RENT mode.",
"editor": "select",
"items": {
"enum": [
"pets",
"furnished",
"parking",
"inUnitLaundry",
"shortTerm",
"noPets",
"byOwner",
"incomeRestricted",
"studentHousing",
"onlyRentalSeniorHousingType",
"hasFitnessCenter",
"hasDishwasher",
"onlyRentalInstantTourAvailable",
"hasAcceptingBackupOffers"
],
"enumTitles": [
"Pets allowed",
"Furnished",
"Parking",
"In-unit laundry",
"Short-term lease",
"No pets",
"By owner",
"Income restricted",
"Student housing",
"Senior housing",
"Fitness center",
"Dishwasher",
"Instant tour available",
"Accepting backup offers"
],
"type": "string"
},
"sectionCaption": "Rental Filters",
"sectionDescription": "These filters apply only to RENT searches.",
"title": "Rental Filters",
"type": "array"
},
"scrapeDetails": {
"default": true,
"description": "Fetch each search result's detail page for description, photos, MLS, tax, open house and building floor plans. Explicit URLs, ZPIDs and addresses are always enriched.",
"prefill": false,
"sectionCaption": "Options",
"title": "Scrape Full Details",
"type": "boolean"
},
"search": {
"description": "City, ZIP, neighborhood, county or state to search (for example 'Houston, TX' or '77002').",
"editor": "textfield",
"prefill": "Houston, TX",
"sectionCaption": "Search Settings",
"sectionDescription": "Enter a location and choose a search mode. You can also use the lookup lists below or paste URLs.",
"title": "Search Location",
"type": "string"
},
"sortBy": {
"default": "relevance",
"description": "Result order. Relevance uses Zillow's priority order in RENT mode.",
"editor": "select",
"enum": [
"relevance",
"priceLow",
"priceHigh",
"newest",
"zestimate",
"zestimateLow"
],
"enumTitles": [
"Relevance",
"Price: low to high",
"Price: high to low",
"Newest",
"Zestimate: high to low",
"Zestimate: low to high"
],
"title": "Sort By",
"type": "string"
},
"sqftMax": {
"description": "Maximum living area in square feet.",
"maximum": 100000,
"minimum": 0,
"title": "Maximum Square Feet",
"type": "integer"
},
"sqftMin": {
"description": "Minimum living area in square feet.",
"maximum": 100000,
"minimum": 0,
"title": "Minimum Square Feet",
"type": "integer"
},
"startUrls": {
"default": [],
"description": "Property detail URLs, /apartments/ building URLs, or Zillow search page URLs. Search URLs keep their own filters and mode.",
"editor": "requestListSources",
"items": {
"properties": {
"url": {
"description": "Page URL to scrape.",
"title": "URL",
"type": "string"
}
},
"type": "object"
},
"sectionCaption": "Lookup Lists",
"sectionDescription": "Use any combination of URLs, ZPIDs and street addresses. Explicit detail sources are always enriched.",
"title": "Start URLs",
"type": "array"
},
"yearBuiltMax": {
"description": "Latest construction year.",
"maximum": 2026,
"minimum": 1800,
"title": "Built Before",
"type": "integer"
},
"yearBuiltMin": {
"description": "Earliest construction year.",
"maximum": 2026,
"minimum": 1800,
"title": "Built After",
"type": "integer"
},
"zpids": {
"description": "Zillow property IDs or URLs containing _zpid. Each ZPID is resolved to its canonical detail page.",
"editor": "stringList",
"items": {
"type": "string"
},
"title": "ZPIDs",
"type": "array"
}
},
"required": [
"mode"
],
"schemaVersion": 1,
"title": "Zillow For-Sale, Rent & Sold Listing Extractor",
"type": "object"
}
Output schema
Published result links and storage locations. This schema is not an exhaustive contract for every field in a dataset record.
| Field | Type | Required | Description |
|---|---|---|---|
properties | string | optional | Dataset containing scraped property and rental-building listings |
Download the published output schema
View complete JSON
{
"actorOutputSchemaVersion": 1,
"description": "One record per Zillow property, home or rental building. Records keep the 33 legacy fields and add sold, tax, parcel, builder, agent, MLS, open-house, GraphQL-enriched detail and building fields when Zillow exposes them.",
"properties": {
"properties": {
"description": "Dataset containing scraped property and rental-building listings",
"template": "{{links.apiDefaultDatasetUrl}}/items",
"title": "Property Listings",
"type": "string"
}
},
"title": "Zillow For-Sale, Rent & Sold Listing Extractor Output"
}
Dataset schema
Published dataset views and any declared field definitions. A view can select only a subset of the returned record fields.
Download the published dataset schema
View complete JSON
{
"actorSpecification": 1,
"fields": {
"properties": {
"address": {
"description": "Street address",
"type": "string"
},
"agentEmail": {
"description": "Listing agent email when Zillow exposes it",
"nullable": true,
"type": "string"
},
"agentName": {
"description": "Listing agent name",
"nullable": true,
"type": "string"
},
"agentPhone": {
"description": "Listing agent phone number",
"nullable": true,
"type": "string"
},
"baths": {
"description": "Number of bathrooms",
"nullable": true,
"type": "number"
},
"beds": {
"description": "Number of bedrooms",
"nullable": true,
"type": "integer"
},
"brokerName": {
"description": "Listing broker or brokerage name",
"nullable": true,
"type": "string"
},
"builderName": {
"description": "Home builder or developer name",
"nullable": true,
"type": "string"
},
"building": {
"description": "Rental building detail",
"nullable": true,
"properties": {
"agentName": {
"type": "string"
},
"amenities": {
"type": "array"
},
"availabilityCount": {
"type": "integer"
},
"bikeScore": {
"type": "integer"
},
"floorPlans": {
"type": "array"
},
"name": {
"type": "string"
},
"neighborhoodDescription": {
"type": "string"
},
"petPolicy": {
"type": "string"
},
"phone": {
"type": "string"
},
"rentRange": {
"properties": {
"max": {
"type": "integer"
},
"min": {
"type": "integer"
}
},
"type": "object"
},
"specialOffers": {
"type": "array"
},
"transitScore": {
"type": "integer"
},
"type": {
"type": "string"
},
"walkScore": {
"type": "integer"
}
},
"type": "object"
},
"city": {
"description": "City",
"type": "string"
},
"county": {
"description": "County name",
"nullable": true,
"type": "string"
},
"dateSold": {
"description": "ISO date when the property sold",
"nullable": true,
"type": "string"
},
"daysOnZillow": {
"description": "Days listed on Zillow",
"nullable": true,
"type": "integer"
},
"description": {
"description": "Property or building description",
"nullable": true,
"type": "string"
},
"features": {
"description": "Expanded RESO facts such as heating, cooling, appliances, basement, views, parking and construction details",
"nullable": true,
"type": "object"
},
"garageSpaces": {
"description": "Garage parking capacity",
"nullable": true,
"type": "integer"
},
"has3DModel": {
"description": "Whether a 3D home model is available",
"nullable": true,
"type": "boolean"
},
"hoaFee": {
"description": "Monthly HOA fee",
"nullable": true,
"type": "number"
},
"homeInsights": {
"description": "Home insight phrases",
"nullable": true,
"type": "array"
},
"lastSoldPrice": {
"description": "Most recent recorded sold price from the property payload",
"nullable": true,
"type": "integer"
},
"latitude": {
"description": "GPS latitude",
"nullable": true,
"type": "number"
},
"listingFlags": {
"description": "Listing segment flags",
"nullable": true,
"properties": {
"isAuction": {
"type": "boolean"
},
"isBankOwned": {
"type": "boolean"
},
"isComingSoon": {
"type": "boolean"
},
"isForSaleByOwner": {
"type": "boolean"
},
"isForeclosure": {
"type": "boolean"
},
"isListedByOwner": {
"type": "boolean"
},
"isNewConstruction": {
"type": "boolean"
},
"isPending": {
"type": "boolean"
}
},
"type": "object"
},
"longitude": {
"description": "GPS longitude",
"nullable": true,
"type": "number"
},
"lotSize": {
"description": "Formatted lot size, for example '8,000 sqft' or '0.25 acres'",
"nullable": true,
"type": "string"
},
"mlsId": {
"description": "MLS listing ID",
"nullable": true,
"type": "string"
},
"mlsName": {
"description": "MLS name",
"nullable": true,
"type": "string"
},
"neighborhood": {
"description": "Neighborhood name",
"nullable": true,
"type": "string"
},
"openHouse": {
"description": "Open house entries with startTime and endTime",
"nullable": true,
"type": "array"
},
"parcelId": {
"description": "County parcel or assessor ID, including leading zeros",
"nullable": true,
"type": "string"
},
"parking": {
"description": "Parking features or capacity",
"nullable": true,
"type": "string"
},
"photoCount": {
"description": "Number of listing photos",
"nullable": true,
"type": "integer"
},
"photos": {
"description": "Absolute photo URLs",
"nullable": true,
"type": "array"
},
"price": {
"description": "Listing price in USD; never zero",
"nullable": true,
"type": "integer"
},
"priceChange": {
"description": "Signed price change amount",
"nullable": true,
"type": "integer"
},
"priceChangeDate": {
"description": "ISO date of the last price change",
"nullable": true,
"type": "string"
},
"priceHistory": {
"description": "Price change history entries",
"nullable": true,
"type": "array"
},
"pricePerSqft": {
"description": "Price per square foot",
"nullable": true,
"type": "number"
},
"propertyTaxRate": {
"description": "Property tax rate as a percentage (1.75 = 1.75%)",
"nullable": true,
"type": "number"
},
"propertyType": {
"description": "Property type (SINGLE_FAMILY, CONDO, TOWNHOUSE, BUILDING, etc.)",
"nullable": true,
"type": "string"
},
"rentZestimate": {
"description": "Zillow estimated monthly rent",
"nullable": true,
"type": "integer"
},
"schools": {
"description": "Assigned schools with name, level, type, grades, distance and rating",
"nullable": true,
"type": "array"
},
"scrapedAt": {
"description": "ISO timestamp when the record was collected",
"type": "string"
},
"soldPrice": {
"description": "Sold price when the market discloses it",
"nullable": true,
"type": "integer"
},
"sqft": {
"description": "Living area in square feet",
"nullable": true,
"type": "integer"
},
"state": {
"description": "State abbreviation",
"type": "string"
},
"status": {
"description": "Listing status (FOR_SALE, FOR_RENT, RECENTLY_SOLD, SOLD, etc.)",
"type": "string"
},
"stories": {
"description": "Number of stories when the source provides it",
"nullable": true,
"type": "integer"
},
"taxAnnualAmount": {
"description": "Annual property tax amount",
"nullable": true,
"type": "integer"
},
"taxAssessedValue": {
"description": "Tax assessed value",
"nullable": true,
"type": "integer"
},
"taxHistory": {
"description": "Tax assessment history; year is the UTC calendar year derived from Zillow's epoch-millisecond timestamp",
"nullable": true,
"type": "array"
},
"unit": {
"description": "Unit number",
"nullable": true,
"type": "string"
},
"url": {
"description": "Absolute Zillow property or building detail page URL",
"type": "string"
},
"virtualTour": {
"description": "Virtual tour or 3D home URL",
"nullable": true,
"type": "string"
},
"yearBuilt": {
"description": "Year the property was built",
"nullable": true,
"type": "integer"
},
"zestimate": {
"description": "Zillow estimated value",
"nullable": true,
"type": "integer"
},
"zipCode": {
"description": "ZIP code",
"type": "string"
},
"zpid": {
"description": "Zillow Property ID (numeric for properties, string for buildings)"
}
},
"type": "object"
},
"title": "Zillow Properties",
"views": {
"detail": {
"display": {
"component": "table",
"properties": {
"builderName": {
"format": "text",
"label": "Builder"
},
"building.name": {
"format": "text",
"label": "Building"
},
"mlsId": {
"format": "text",
"label": "MLS ID"
},
"mlsName": {
"format": "text",
"label": "MLS"
},
"openHouse": {
"format": "text",
"label": "Open House"
},
"parcelId": {
"format": "text",
"label": "Parcel ID"
},
"photoCount": {
"format": "number",
"label": "Photos"
},
"priceChange": {
"format": "number",
"label": "Price Change"
},
"propertyTaxRate": {
"format": "number",
"label": "Tax Rate %"
},
"taxAnnualAmount": {
"format": "number",
"label": "Annual Tax"
},
"taxAssessedValue": {
"format": "number",
"label": "Tax Assessed"
}
}
},
"title": "Detail",
"transformation": {
"fields": [
"taxAssessedValue",
"taxAnnualAmount",
"propertyTaxRate",
"parcelId",
"builderName",
"mlsName",
"mlsId",
"priceChange",
"openHouse",
"photoCount",
"building.name"
]
}
},
"overview": {
"display": {
"component": "table",
"properties": {
"address": {
"format": "text",
"label": "Address"
},
"baths": {
"format": "number",
"label": "Baths"
},
"beds": {
"format": "number",
"label": "Beds"
},
"daysOnZillow": {
"format": "number",
"label": "Days"
},
"price": {
"format": "number",
"label": "Price"
},
"propertyType": {
"format": "text",
"label": "Type"
},
"soldPrice": {
"format": "number",
"label": "Sold Price"
},
"sqft": {
"format": "number",
"label": "Sqft"
},
"status": {
"format": "text",
"label": "Status"
},
"url": {
"format": "link",
"label": "URL"
}
}
},
"title": "Properties",
"transformation": {
"fields": [
"address",
"price",
"soldPrice",
"beds",
"baths",
"sqft",
"propertyType",
"status",
"daysOnZillow",
"url"
]
}
}
}
}
Key-value schema
Published key-value store definitions, when provided by this build.
This definition is not present in the default published build. See the published README for available documentation.
Published README
Read the full published documentation
Zillow For-Sale, Rent & Sold Listing Extractor
Scrape Zillow for active for-sale, rental and recently sold listings. Search by city, ZIP, neighborhood, county or state, paste property, building or search URLs, or look up properties by ZPID and street address. Apply Zillow's own price, size, property-type, amenity and rental filters, then enrich each record with detail data such as tax history, schools, MLS attribution, open houses, photos, floor plans and listing flags when Zillow exposes them.
This actor is independent and is not affiliated with Zillow. It reads publicly visible pages and requires no login, cookie or proxy configuration.
What this actor does
- Three search modes: active for-sale (
BUY), rental (RENT) and recently sold (SOLD) listings by location. - Flexible lookups: property detail URLs,
/apartments/building URLs, Zillow search URLs, ZPIDs and full street addresses. - Deep filters: price, beds, baths, square footage, lot size, year built, HOA, parking, property type, days on Zillow, sort order, listing flags, keyword, amenities and rent-only filters.
- Rich detail: tax history, schools, RESO features, price history, MLS data, open houses, photos, virtual tours, building floor plans and walk/transit/bike scores.
- Empty fields are omitted — records contain only populated values, and duplicate properties are merged by ZPID and canonical URL.
Output per property
Each property or rental building produces one record. Fields with no available data are omitted, never emitted as null, N/A, - or an empty container. Meaningful zero and false values are kept.
Core fields
| Field | Type | Description |
|---|---|---|
url |
String | Absolute Zillow detail URL. |
zpid |
Number or String | Numeric for properties; string for buildings. |
status |
String | Listing status such as FOR_SALE, FOR_RENT, RECENTLY_SOLD or SOLD. |
price |
Integer | Listing price; never zero. For sold records, the sold price when disclosed. |
zestimate |
Integer | Zillow estimated value. |
rentZestimate |
Integer | Zillow estimated monthly rent. |
beds |
Integer | Bedrooms. |
baths |
Number | Bathrooms. |
sqft |
Integer | Living area in square feet. |
lotSize |
String | Formatted lot size, for example 1,846 sqft or 0.27 acres. |
yearBuilt |
Integer | Construction year. |
propertyType |
String | SINGLE_FAMILY, CONDO, TOWNHOUSE, BUILDING, etc. |
stories |
Integer | Stories when Zillow provides them. |
parking |
String | Parking features or capacity. |
address, city, state, zipCode |
String | Address components. |
latitude, longitude |
Number | Coordinates. |
daysOnZillow |
Integer | Days on Zillow. |
brokerName, agentName, agentPhone |
String | Listing attribution. |
description |
String | Property or building description. |
photos |
Array | Absolute photo URLs. |
priceHistory |
Array | Price events with date, event, price, pricePerSqft, priceChangeRate and source. |
taxHistory |
Array | Tax records with year, taxPaid, value, taxIncreaseRate and valueIncreaseRate. |
schools |
Array | Assigned schools preferred; each entry keeps name, level, type, grades, distance and rating. |
features |
Object | Expanded RESO facts: heating, cooling, appliances, flooring, basement, parking, pool, views, construction, lot and similar details when present. |
hoaFee |
Number | Monthly HOA fee. |
pricePerSqft |
Number | Price per square foot. |
scrapedAt |
String | ISO timestamp; always present. |
Additive fields
| Field | Type | Description |
|---|---|---|
soldPrice |
Integer | Sold price when the market discloses it. |
lastSoldPrice |
Integer | Most recent recorded sold price from the property payload. |
dateSold |
String | ISO sold date. |
taxAssessedValue |
Integer | Tax assessed value. |
taxAnnualAmount |
Integer | Annual property tax amount. |
parcelId |
String | County parcel or assessor ID, preserving leading zeros. |
builderName |
String | Home builder or developer when exposed. |
agentEmail |
String | Listing agent email when Zillow exposes it. |
propertyTaxRate |
Number | Percentage tax rate (1.75 means 1.75%). |
priceChange |
Integer | Signed price change. |
priceChangeDate |
String | ISO date of the last price change. |
openHouse |
Array | Entries with startTime, endTime and optional description. |
mlsName, mlsId |
String | MLS attribution. |
photoCount |
Integer | Number of photos. |
virtualTour |
String | Virtual tour or 3D home URL. |
homeInsights |
Array | Insight phrases. |
neighborhood, county |
String | Location context. |
garageSpaces |
Integer | Garage capacity. |
unit |
String | Unit number. |
has3DModel |
Boolean | Whether a 3D model is available. |
listingFlags |
Object | isForSaleByOwner, isForeclosure, isAuction, isNewConstruction, isPending, isListedByOwner, isComingSoon, isBankOwned. |
building |
Object | Rental-building detail; see below. |
Building object
| Field | Type | Description |
|---|---|---|
building.name |
String | Building name. |
building.type |
String | Building type. |
building.phone |
String | Leasing phone number. |
building.agentName |
String | Leasing contact name. |
building.availabilityCount |
Integer | Number of available units. |
building.rentRange |
Object | min and max monthly rent. |
building.floorPlans |
Array | Available units; see below. |
building.walkScore |
Integer | Walk Score. |
building.transitScore |
Integer | Transit score. |
building.bikeScore |
Integer | Bike score. |
building.amenities |
Array | Building and community amenities. |
building.petPolicy |
String | Pet policy. |
building.specialOffers |
Array | Leasing specials. |
building.neighborhoodDescription |
String | Neighborhood overview. |
Each building.floorPlans entry can include floorPlanName, unitNumber, beds, baths, sqft, price, baseRent, availableFrom, leaseTerm, deposit and fees (min and max).
Input
All inputs are optional individually, but at least one source is required: search, startUrls, zpids or addresses.
| Field | Type | Default | Description |
|---|---|---|---|
search |
String | – | City, ZIP, neighborhood, county or state to search. Prefill: Houston, TX. |
mode |
Select | BUY |
BUY, RENT or SOLD. Applies to search and bare location URLs. |
maxItems |
Integer | 50 (prefill 3) |
Maximum records for the whole run (1-5000), across all sources. |
endPage |
Integer | 5 (prefill 1) |
Maximum search pages per task (1-24). Zillow returns up to 41 listings per page. |
startUrls |
URL list | [] |
Property detail URLs, /apartments/ building URLs or Zillow search-page URLs. Search URLs keep their own filters and mode. |
zpids |
String list | – | ZPID values or URLs containing _zpid. Each is resolved to its detail page. |
addresses |
String list | – | Full street addresses, for example 1306 Castle Ct, Houston, TX 77006. |
priceMin |
Integer | – | Minimum listing price in US dollars. |
priceMax |
Integer | – | Maximum listing price in US dollars. |
bedsMin |
Select | any |
Minimum bedrooms: any, 1, 2, 3, 4, 5. |
bathsMin |
Select | any |
Minimum bathrooms: any, 1, 1.5, 2, 2.5, 3, 4, 5. |
sqftMin |
Integer | – | Minimum living area in square feet. |
sqftMax |
Integer | – | Maximum living area in square feet. |
lotSizeMin |
Select | any |
Minimum lot size: any, 2000, 5000, 10890, 21780, 43560, 87120 square feet. |
lotSizeMax |
Select | any |
Maximum lot size: any, 2000, 5000, 10890, 21780, 43560, 87120 square feet. |
yearBuiltMin |
Integer | – | Earliest construction year. |
yearBuiltMax |
Integer | – | Latest construction year. |
hoaMax |
Integer | – | Maximum monthly HOA fee. |
parkingSpotsMin |
Integer | – | Minimum parking spots (1-10). |
propertyTypes |
Multi-select | – | house, condo, townhouse, multiFamily, manufactured, lotLand, apartment. Empty means all homes. |
daysOnZillow |
Select | any |
any, 1, 7, 14, 30, 90, 180, 365, 730, 1095 days. |
sortBy |
Select | relevance |
relevance, priceLow, priceHigh, newest, zestimate, zestimateLow. RENT relevance uses Zillow's priority order. |
fsboOnly |
Boolean | false |
Only for-sale-by-owner listings. |
foreclosureOnly |
Boolean | false |
Only foreclosure listings. |
auctionOnly |
Boolean | false |
Only auction listings. |
newConstructionOnly |
Boolean | false |
Only new-construction listings. |
includePending |
Boolean | false |
Add pending and under-contract listings to active results. |
openHouseOnly |
Boolean | false |
Only listings with an open house. |
priceReducedOnly |
Boolean | false |
Only listings with a price reduction. |
keyword |
String | – | Free-text keyword, for example pool. |
amenities |
Multi-select | – | pool, garage, airConditioning, waterfront, cityView, threeDHome, age55Plus, singleStory, basementFinished, basementUnfinished, waterView, mountainView, parkView. |
rentalFilters |
Multi-select | – | Rent-only: pets, furnished, parking, inUnitLaundry, shortTerm, noPets, byOwner, incomeRestricted, studentHousing, onlyRentalSeniorHousingType, hasFitnessCenter, hasDishwasher, onlyRentalInstantTourAvailable, hasAcceptingBackupOffers. |
scrapeDetails |
Boolean | true (prefill false) |
Enrich search results with detail data. Explicit URLs, ZPIDs and addresses are always enriched. |
Inverted ranges (priceMin > priceMax, sqftMin > sqftMax, yearBuiltMin > yearBuiltMax, lotSizeMin > lotSizeMax) are ignored with a status note instead of failing the run. Rental filters are ignored outside RENT mode.
Example: buy search with filters
{
"search": "Houston, TX",
"mode": "BUY",
"maxItems": 100,
"endPage": 5,
"priceMin": 500000,
"priceMax": 800000,
"bedsMin": "3",
"bathsMin": "2",
"amenities": ["pool"],
"daysOnZillow": "30",
"sortBy": "newest",
"scrapeDetails": true
}
Example: pet-friendly rentals with rental filters
{
"search": "Miami, FL",
"mode": "RENT",
"maxItems": 50,
"rentalFilters": ["pets", "parking", "furnished"],
"scrapeDetails": false
}
Example: recently sold comps
{
"search": "Miami, FL",
"mode": "SOLD",
"maxItems": 50,
"endPage": 2,
"scrapeDetails": true
}
Example: direct property, building and ZPID lookups
{
"startUrls": [
{"url": "https://www.zillow.com/homedetails/1306-Castle-Ct-Houston-TX-77006/126296894_zpid/"},
{"url": "https://www.zillow.com/apartments/houston-tx/the-briscoe-river-oaks/5Xhrvw/"}
],
"zpids": ["126296894"],
"addresses": ["1306 Castle Ct, Houston, TX 77006"],
"maxItems": 10
}
Use cases
- Real estate investors — pull for-sale, pending and price-reduced listings with tax, HOA and price-history context for deal screening.
- Real estate agents and brokers — track new construction, open houses, FSBO and auction inventory in target neighborhoods.
- Property managers and landlords — compare rental inventory, amenities, pet policies and floor-plan pricing in a market.
- Appraisers and analysts — collect recently sold comps with sold dates, assessed values and school assignments for valuation work.
- Proptech and data teams — feed normalized Zillow listing, tax and building data into CRMs, dashboards and valuation models.
- Relocation and home-search services — build filtered shortlists by price, commute-relevant location, schools and amenities.
FAQ
Do I need a proxy, cookie or API key?
No. The actor reads publicly visible Zillow pages, chooses a working connection automatically and requires no credential or proxy setup.
What is the difference between BUY, RENT and SOLD?
BUY searches active for-sale listings, RENT searches rentals, and SOLD searches recently sold listings. The mode applies to search and bare location URLs; pasted search URLs keep their own mode and filters.
How many listings can one search return?
Zillow's search exposes at most about 975 unique listings per query, across 24 pages of 41 rows. When maxItems is above 975 and Zillow reports more results, the actor splits the search into smaller price bands — and for rentals, by monthly payment, beds and days on Zillow — so it can keep collecting listings. Searches at or below that ceiling return the listings Zillow exposes directly.
Why is soldPrice missing for some sold listings?
Some markets, including Houston, are non-disclosure markets, and Zillow does not publish a sold price there. The record keeps the sold date and status, and the actor never invents a price from Zestimate or price history.
Why are tax history, schools or HOA details missing on some records?
Zillow only publishes those details for some listings and markets. When a value is absent it is omitted from the record rather than filled from another field. Tax-history years are reported as calendar years.
Can I paste a Zillow search URL?
Yes. The actor reads the URL's search state and keeps its filters. If the URL points to page N, the actor starts from page 1 and pages forward up to endPage.
Can I use a /b/ building URL?
Zillow blocks /b/ building URLs for public access. Use the /apartments/ URL for the same building instead; /b/ URLs are skipped with a status note.
How current is the data?
Every record is read live at run time and includes a scrapedAt timestamp. Zillow's result count and ordering can drift between requests, so duplicates are removed within each run.
Are zero values removed?
No. Meaningful zero values such as beds: 0 for a studio and false listing flags are kept. Only empty, null, sentinel and non-finite values are removed.
Are building reviews included?
No. Zillow does not expose building reviews on public building pages, so the actor does not emit them. Building details, floor plans, amenities and scores are included when available.
Python quickstart
Use a schema-derived input and the Python standard library to start a run. An Apify account and token are required for execution.
Source build v5Agvw4nDcoJLthFF. Documentation is regenerated from the default published build; private drafts are not included.