Zillow Distressed Property Finder by City or ZIP
Find foreclosure, pre-foreclosure, bank-owned, and auction properties on Zillow by city, neighborhood, or ZIP, with price, Zestimate, tax value, and property specs for each listing.
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 |
|---|---|---|---|
locations | array | optional | US locations to search, one per line: a city ("Austin, TX"), ZIP code ("78701"), neighborhood ("Hyde Park, Austin, TX") or county ("Travis County, TX"). |
startUrls | array | optional | Zillow search pages to scrape instead of (or in addition to) locations. The distress filter is layered on top of whatever the URL already filters. |
distressTypes | array | optional | Which distressed listing categories to return. Leave empty for all four. |
Show all input fields
| Field | Type | Required | Description |
|---|---|---|---|
locations | array | optional | US locations to search, one per line: a city ("Austin, TX"), ZIP code ("78701"), neighborhood ("Hyde Park, Austin, TX") or county ("Travis County, TX"). |
startUrls | array | optional | Zillow search pages to scrape instead of (or in addition to) locations. The distress filter is layered on top of whatever the URL already filters. |
distressTypes | array | optional | Which distressed listing categories to return. Leave empty for all four. |
priceMin | integer | optional | Lower bound on the listing price. Leave blank for no minimum. |
priceMax | integer | optional | Upper bound on the listing price. Leave blank for no maximum. |
bedsMin | number | optional | Only include properties with at least this many bedrooms. Leave blank for no minimum. |
bathsMin | number | optional | Only include properties with at least this many bathrooms (decimals allowed, e.g. 1.5). Leave blank for no minimum. |
homeTypes | array | optional | Limit results to specific property types. Leave empty for all types. |
daysOnZillow | string | optional | Only include listings that have been on Zillow within this window. |
sortBy | string | optional | Order in which Zillow returns the listings. |
includeDetails | boolean | optional | Open each listing's detail page for the listing agent, photos, description, year built and distress flags. Adds one request per listing; rows still return without it. |
includeAuctionDetails | boolean | optional | For auction listings whose page links to auction.com, also read that public page for the auction date/time, occupancy, starting bid and lender/attorney details. Adds one request per linked auction and requires "Include full property details". |
maxItems | integer | optional | Maximum number of listings to return across all locations and URLs (1–5000). |
Download the published input schema
View complete JSON
{
"properties": {
"bathsMin": {
"description": "Only include properties with at least this many bathrooms (decimals allowed, e.g. 1.5). Leave blank for no minimum.",
"editor": "number",
"maximum": 10,
"minimum": 0,
"title": "Minimum bathrooms",
"type": "number"
},
"bedsMin": {
"description": "Only include properties with at least this many bedrooms. Leave blank for no minimum.",
"editor": "number",
"maximum": 10,
"minimum": 0,
"title": "Minimum bedrooms",
"type": "number"
},
"daysOnZillow": {
"default": "any",
"description": "Only include listings that have been on Zillow within this window.",
"editor": "select",
"enum": [
"any",
"1",
"7",
"14",
"30",
"90",
"6m",
"12m",
"24m",
"36m"
],
"enumTitles": [
"Any time",
"Last 24 hours",
"Last 7 days",
"Last 14 days",
"Last 30 days",
"Last 90 days",
"Last 6 months",
"Last 12 months",
"Last 24 months",
"Last 36 months"
],
"title": "Days on Zillow",
"type": "string"
},
"distressTypes": {
"description": "Which distressed listing categories to return. Leave empty for all four.",
"editor": "select",
"items": {
"enum": [
"foreclosure",
"preForeclosure",
"preMarketForeclosure",
"auction",
"bankOwned"
],
"enumTitles": [
"Foreclosures for sale (incl. bank-owned)",
"Pre-foreclosures (pre-market)",
"Foreclosed, not yet listed (pre-market REO)",
"Foreclosure auctions",
"Bank-owned (REO) only"
],
"type": "string"
},
"prefill": [
"foreclosure"
],
"title": "Distress types",
"type": "array"
},
"homeTypes": {
"description": "Limit results to specific property types. Leave empty for all types.",
"editor": "select",
"items": {
"enum": [
"singleFamily",
"condo",
"townhouse",
"multiFamily",
"apartment",
"manufactured",
"lotLand"
],
"enumTitles": [
"Houses",
"Condos",
"Townhouses",
"Multi-family",
"Apartments",
"Manufactured homes",
"Lots / land"
],
"type": "string"
},
"title": "Home types",
"type": "array"
},
"includeAuctionDetails": {
"default": false,
"description": "For auction listings whose page links to auction.com, also read that public page for the auction date/time, occupancy, starting bid and lender/attorney details. Adds one request per linked auction and requires \"Include full property details\".",
"prefill": false,
"title": "Include auction details (auction.com)",
"type": "boolean"
},
"includeDetails": {
"default": true,
"description": "Open each listing's detail page for the listing agent, photos, description, year built and distress flags. Adds one request per listing; rows still return without it.",
"prefill": false,
"title": "Include full property details",
"type": "boolean"
},
"locations": {
"description": "US locations to search, one per line: a city (\"Austin, TX\"), ZIP code (\"78701\"), neighborhood (\"Hyde Park, Austin, TX\") or county (\"Travis County, TX\").",
"editor": "stringList",
"prefill": [
"Austin, TX"
],
"title": "Locations",
"type": "array"
},
"maxItems": {
"default": 100,
"description": "Maximum number of listings to return across all locations and URLs (1–5000).",
"editor": "number",
"maximum": 5000,
"minimum": 1,
"prefill": 3,
"title": "Max items",
"type": "integer"
},
"priceMax": {
"description": "Upper bound on the listing price. Leave blank for no maximum.",
"editor": "number",
"maximum": 100000000,
"minimum": 0,
"title": "Maximum price ($)",
"type": "integer"
},
"priceMin": {
"description": "Lower bound on the listing price. Leave blank for no minimum.",
"editor": "number",
"maximum": 100000000,
"minimum": 0,
"title": "Minimum price ($)",
"type": "integer"
},
"sortBy": {
"default": "relevance",
"description": "Order in which Zillow returns the listings.",
"editor": "select",
"enum": [
"relevance",
"newest",
"priceDesc",
"priceAsc",
"beds",
"baths",
"size",
"lot",
"zestimateDesc",
"zestimateAsc"
],
"enumTitles": [
"Relevance (Zillow's default)",
"Newest",
"Price: high to low",
"Price: low to high",
"Bedrooms",
"Bathrooms",
"Square feet",
"Lot size",
"Zestimate: high to low",
"Zestimate: low to high"
],
"title": "Sort by",
"type": "string"
},
"startUrls": {
"description": "Zillow search pages to scrape instead of (or in addition to) locations. The distress filter is layered on top of whatever the URL already filters.",
"editor": "requestListSources",
"title": "Zillow search URLs",
"type": "array"
}
},
"required": [],
"schemaVersion": 1,
"title": "Zillow Foreclosure Scraper Input",
"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 |
|---|---|---|---|
foreclosures | string | optional | Dataset of scraped Zillow distressed listings. |
Download the published output schema
View complete JSON
{
"actorOutputSchemaVersion": 1,
"description": "Distressed Zillow listings — foreclosures, pre-foreclosures, pre-market REO and auctions — with price, property specs, distress flags, listing agent, photos and location details.",
"properties": {
"foreclosures": {
"description": "Dataset of scraped Zillow distressed listings.",
"template": "{{links.apiDefaultDatasetUrl}}/items",
"title": "Zillow distressed listings",
"type": "string"
}
},
"title": "Zillow Distressed Property Finder by City or ZIP 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",
"nullable": true,
"type": "string"
},
"auctionDate": {
"description": "Foreclosure auction date (YYYY-MM-DD), from the linked auctioneer page",
"nullable": true,
"type": "string"
},
"auctionDateTime": {
"description": "Auction sale start date-time (ISO 8601)",
"nullable": true,
"type": "string"
},
"auctionEventTitle": {
"description": "Auctioneer event title (sale event name)",
"nullable": true,
"type": "string"
},
"baths": {
"description": "Bathrooms",
"nullable": true,
"type": "number"
},
"beds": {
"description": "Bedrooms",
"nullable": true,
"type": "number"
},
"brokerName": {
"description": "Listing brokerage",
"nullable": true,
"type": "string"
},
"buyerPremiumAvailable": {
"description": "Whether the auction charges a buyer's premium",
"nullable": true,
"type": "boolean"
},
"city": {
"description": "City",
"nullable": true,
"type": "string"
},
"comingSoonDate": {
"description": "Date a coming-soon listing goes live (ISO 8601)",
"nullable": true,
"type": "string"
},
"daysOnZillow": {
"description": "Days on Zillow",
"nullable": true,
"type": "integer"
},
"description": {
"description": "Listing description",
"nullable": true,
"type": "string"
},
"distressType": {
"description": "Distress classification: foreclosure, bankOwned, preForeclosure, preMarketForeclosure, auction, comingSoon",
"nullable": true,
"type": "string"
},
"foreclosureAttorney": {
"description": "Foreclosure attorney / trustee firm handling the sale",
"nullable": true,
"type": "string"
},
"foreclosureAttorneyPhone": {
"description": "Foreclosure attorney / trustee phone",
"nullable": true,
"type": "string"
},
"homeStatus": {
"description": "Raw Zillow homeStatus value",
"nullable": true,
"type": "string"
},
"isAuction": {
"description": "Flagged as a foreclosure auction",
"nullable": true,
"type": "boolean"
},
"isBankOwned": {
"description": "Flagged as bank-owned (REO)",
"nullable": true,
"type": "boolean"
},
"isComingSoon": {
"description": "Flagged as coming soon",
"nullable": true,
"type": "boolean"
},
"isForeclosure": {
"description": "Flagged as an active foreclosure-listed property",
"nullable": true,
"type": "boolean"
},
"isPreForeclosure": {
"description": "Flagged as pre-foreclosure",
"nullable": true,
"type": "boolean"
},
"lastSoldDate": {
"description": "Most recent recorded sale date (YYYY-MM-DD)",
"nullable": true,
"type": "string"
},
"lastSoldPrice": {
"description": "Most recent recorded sale price ($)",
"nullable": true,
"type": "number"
},
"latitude": {
"description": "Latitude",
"nullable": true,
"type": "number"
},
"lender": {
"description": "Beneficiary (lender) name from the auctioneer's party list",
"nullable": true,
"type": "string"
},
"listedDate": {
"description": "Date the listing was posted (ISO 8601)",
"nullable": true,
"type": "string"
},
"listingAgentName": {
"description": "Listing agent name",
"nullable": true,
"type": "string"
},
"listingAgentPhone": {
"description": "Listing agent phone number",
"nullable": true,
"type": "string"
},
"longitude": {
"description": "Longitude",
"nullable": true,
"type": "number"
},
"lotAreaUnit": {
"description": "Lot area unit: sqft or acres",
"nullable": true,
"type": "string"
},
"lotAreaValue": {
"description": "Lot area size",
"nullable": true,
"type": "number"
},
"mlsId": {
"description": "MLS listing ID",
"nullable": true,
"type": "string"
},
"mlsName": {
"description": "MLS name",
"nullable": true,
"type": "string"
},
"monthlyHoaFee": {
"description": "Monthly HOA fee ($)",
"nullable": true,
"type": "number"
},
"occupancyStatus": {
"description": "Occupancy status reported by the auctioneer (e.g. OCCUPIED, VACANT)",
"nullable": true,
"type": "string"
},
"photoCount": {
"description": "Number of photos available",
"nullable": true,
"type": "integer"
},
"photos": {
"description": "Property photo URLs (Zillow photo CDN only)",
"nullable": true,
"type": "array"
},
"postingUrl": {
"description": "External listing/auction page when Zillow provides one (e.g. auction.com)",
"nullable": true,
"type": "string"
},
"price": {
"description": "Listing price ($)",
"nullable": true,
"type": "number"
},
"pricePerSquareFoot": {
"description": "Price per square foot ($)",
"nullable": true,
"type": "number"
},
"principalLoanAmount": {
"description": "Original loan principal ($) when the auctioneer publishes it",
"nullable": true,
"type": "number"
},
"propertyType": {
"description": "Property type (e.g. SINGLE_FAMILY)",
"nullable": true,
"type": "string"
},
"rentZestimate": {
"description": "Zillow rent estimate ($/month)",
"nullable": true,
"type": "number"
},
"scrapedAt": {
"description": "ISO 8601 scrape timestamp",
"type": "string"
},
"servicer": {
"description": "Loan servicer name from the auctioneer's party list",
"nullable": true,
"type": "string"
},
"sqft": {
"description": "Living area (sq ft)",
"nullable": true,
"type": "number"
},
"startingBid": {
"description": "Published starting bid ($)",
"nullable": true,
"type": "number"
},
"state": {
"description": "State abbreviation",
"nullable": true,
"type": "string"
},
"statusText": {
"description": "Zillow status label (e.g. Foreclosure, Pre-foreclosure, Auction)",
"nullable": true,
"type": "string"
},
"taxAssessedValue": {
"description": "Tax-assessed value ($)",
"nullable": true,
"type": "number"
},
"url": {
"description": "Zillow property detail page URL",
"type": "string"
},
"yearBuilt": {
"description": "Year the property was built",
"nullable": true,
"type": "integer"
},
"zestimate": {
"description": "Zillow estimate ($)",
"nullable": true,
"type": "number"
},
"zipCode": {
"description": "ZIP code",
"nullable": true,
"type": "string"
},
"zpid": {
"description": "Zillow property ID",
"nullable": true,
"type": "integer"
}
},
"type": "object"
},
"title": "Zillow Foreclosure Listings",
"views": {
"overview": {
"display": {
"component": "table",
"properties": {
"address": {
"format": "text",
"label": "Address"
},
"baths": {
"format": "number",
"label": "Baths"
},
"beds": {
"format": "number",
"label": "Beds"
},
"city": {
"format": "text",
"label": "City"
},
"distressType": {
"format": "text",
"label": "Type"
},
"price": {
"format": "number",
"label": "Price $"
},
"scrapedAt": {
"format": "text",
"label": "Scraped At"
},
"state": {
"format": "text",
"label": "State"
},
"url": {
"format": "link",
"label": "URL"
}
}
},
"title": "Foreclosure Listings Overview",
"transformation": {
"fields": [
"url",
"distressType",
"address",
"city",
"state",
"price",
"beds",
"baths",
"taxAssessedValue",
"scrapedAt"
]
}
}
}
}
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 Distressed Property Finder by City or ZIP
Zillow keeps its foreclosure, pre-foreclosure, pre-market REO and auction inventory inside its regular map search. This actor applies those distress filters server-side for you and returns structured records for any US city, ZIP code, neighborhood or county, with optional per-listing detail enrichment: listing agent, phone, brokerage, photos, description, year built, HOA and per-row distress flags.
What this actor does
- Searches one or more locations: city ("Austin, TX"), ZIP ("78701"), neighborhood ("Hyde Park, Austin, TX") or county ("Travis County, TX").
- Also accepts Zillow search URLs you already have; the distress filter is layered on top of the URL's own filters.
- Restricts results to the distress categories you pick: foreclosures (including bank-owned), pre-foreclosures, pre-market foreclosed (REO) and auctions.
- Applies Zillow's own filters server-side: price range, minimum beds/baths, home types, days on Zillow and sort order.
- Pages through Zillow's result pages up to its own limit, with no browser and no cookies required.
- Optionally opens each listing's detail page for the listing agent, photos, description, year built, HOA and authoritative distress flags.
- Fields Zillow doesn't publish for a listing (no price, no Zestimate, no photos) are left out of that record rather than filled with a placeholder.
Output per listing
| Field | Description |
|---|---|
zpid |
Zillow property ID. |
url |
Zillow property detail page URL. |
distressType |
foreclosure, bankOwned, preForeclosure, preMarketForeclosure, auction or comingSoon. |
isForeclosure / isBankOwned / isPreForeclosure / isAuction / isComingSoon |
Per-listing distress flags as Zillow marks them. |
homeStatus / statusText |
Raw Zillow status and its display label. |
address / city / state / zipCode |
Property address components. |
price |
Listing price, in USD. |
zestimate / rentZestimate |
Zillow's value and rent estimates, in USD. |
taxAssessedValue |
Tax-assessed value, in USD. |
beds / baths / sqft |
Bedroom and bathroom counts, and living area in square feet. |
lotAreaValue / lotAreaUnit |
Lot size and its unit (sqft or acres). |
propertyType / yearBuilt |
Property type (e.g. SINGLE_FAMILY) and construction year. |
latitude / longitude |
Property coordinates. |
daysOnZillow / listedDate |
Days on Zillow and the date the listing was posted. |
listingAgentName / listingAgentPhone / brokerName / mlsName / mlsId |
Listing attribution from the detail page. |
photos / photoCount |
Property photo URLs (largest size, Zillow photo CDN only) and how many photos Zillow shows. |
description |
Listing description text. |
monthlyHoaFee / pricePerSquareFoot |
HOA fee and price per square foot when shown. |
postingUrl |
External listing or auction page when Zillow provides one (e.g. an auction.com detail link). |
auctionDate / auctionDateTime |
Auction date and sale start date-time, read from the linked auctioneer page. |
startingBid / principalLoanAmount |
Published starting bid and original loan principal when the auctioneer shows them. |
occupancyStatus |
Occupancy reported by the auctioneer (e.g. OCCUPIED, VACANT). |
lender / servicer |
Beneficiary (lender) and loan servicer names. |
foreclosureAttorney / foreclosureAttorneyPhone |
Foreclosure attorney / trustee firm and its phone. |
buyerPremiumAvailable |
Whether the auction charges a buyer's premium. |
auctionEventTitle |
The auctioneer's sale event title. |
lastSoldPrice / lastSoldDate |
Most recent recorded sale price and date, when Zillow publishes them. |
comingSoonDate |
The date a coming-soon listing is scheduled to go live. |
scrapedAt |
ISO 8601 timestamp of when this actor fetched the record. |
Input
| Field | Type | Default | Description |
|---|---|---|---|
locations |
Array of strings | – | Cities, ZIP codes, neighborhoods or counties — one entry each. |
startUrls |
Array of URLs | – | Zillow search pages; the distress filter is applied on top. |
distressTypes |
Array (select) | all four | foreclosure, preForeclosure, preMarketForeclosure, auction; legacy bankOwned (REO-only) is also accepted. Leave empty for all. |
priceMin / priceMax |
Integer | – | Listing price bounds in USD. |
bedsMin / bathsMin |
Number | – | Minimum bedrooms / bathrooms. |
homeTypes |
Array (select) | all | singleFamily, condo, townhouse, multiFamily, apartment, manufactured, lotLand. |
daysOnZillow |
Select | any |
Only listings seen within the window (1 day … 36 months). |
sortBy |
Select | relevance |
Relevance, newest, price, beds, baths, size, lot or Zestimate. |
includeDetails |
Boolean | true |
Open each listing's detail page for agent, photos, description and year built. |
includeAuctionDetails |
Boolean | false |
Read the linked auctioneer page (auction.com only) for the auction schedule, starting bid, occupancy and lender/attorney fields. One extra request per linked auction; requires includeDetails. |
maxItems |
Integer | 100 |
Maximum listings across all locations and URLs (1–5000). |
Provide at least one locations entry or one startUrls entry.
Example: foreclosures and auctions in one city
{
"locations": ["Phoenix, AZ"],
"distressTypes": ["foreclosure", "auction"],
"priceMax": 400000,
"includeDetails": true,
"maxItems": 100
}
Example: bank-owned homes by ZIP code
{
"locations": ["85001", "85032"],
"distressTypes": ["preMarketForeclosure"],
"includeDetails": true,
"maxItems": 200
}
Example: reuse a saved Zillow search URL
{
"startUrls": [{"url": "https://www.zillow.com/austin-tx/foreclosures/"}],
"maxItems": 300
}
Use cases
- Distressed-inventory investing — track foreclosure and pre-foreclosure properties before they hit the broader market.
- Wholesaling — build a pre-foreclosure outreach list for a ZIP or neighborhood.
- Auction prep — research properties scheduled for a foreclosure auction ahead of time.
- REO acquisition — surface pre-market bank-owned properties for buy-and-hold portfolios.
- Market intelligence — quantify distress rates by city, ZIP or county over time.
FAQ
What's the difference between the distress types?
foreclosure is an active foreclosure listing for sale (Zillow's foreclosure filter also includes bank-owned homes); bankOwned marks a home the lender already owns (REO); preForeclosure is a pre-market record early in the foreclosure process, not yet listed; preMarketForeclosure is a pre-market record the bank has already taken back; auction is a property scheduled for a foreclosure auction.
How many results can I get per run?
Up to 5,000 via maxItems. Zillow itself caps any single search at 20 result pages (about 820 listings). If a market hits that cap, split it into several locations — by home type, ZIP or neighborhood — and pass them together; the slices are disjoint, so their union covers the full inventory (verified: Los Angeles distressed inventory = 1,349 listings; its seven home-type slices sum to exactly 1,349).
Do I need proxies or cookies? No. The actor routes its requests automatically and needs no account, cookie or API key from you.
Why do some listings have no price or Zestimate? Zillow genuinely doesn't show a price or estimate for many pre-market distressed records. Those fields are omitted from the record instead of being filled with a placeholder.
Does this include auction dates, unpaid balances or lender details?
Zillow's own pages don't carry them, but auction listings link out to the auctioneer (postingUrl). Turn on includeAuctionDetails and the actor also reads the linked auction.com page, adding the auction date and sale time, occupancy, starting bid, loan principal, lender, servicer and foreclosure attorney (each when the auctioneer publishes it). Roughly two thirds of sampled Zillow auctions link to auction.com; other auctioneers and unpaid balances are not covered.
Is this affiliated with Zillow? No. This actor is an independent tool that reads publicly visible Zillow search results and is not affiliated with or endorsed by Zillow.
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 LHqBAKVU6YO7qxV6c. Documentation is regenerated from the default published build; private drafts are not included.