Dataspryva

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.

FieldTypeRequiredDescription
locationsarrayoptionalUS locations to search, one per line: a city ("Austin, TX"), ZIP code ("78701"), neighborhood ("Hyde Park, Austin, TX") or county ("Travis County, TX").
startUrlsarrayoptionalZillow search pages to scrape instead of (or in addition to) locations. The distress filter is layered on top of whatever the URL already filters.
distressTypesarrayoptionalWhich distressed listing categories to return. Leave empty for all four.
Show all input fields
FieldTypeRequiredDescription
locationsarrayoptionalUS locations to search, one per line: a city ("Austin, TX"), ZIP code ("78701"), neighborhood ("Hyde Park, Austin, TX") or county ("Travis County, TX").
startUrlsarrayoptionalZillow search pages to scrape instead of (or in addition to) locations. The distress filter is layered on top of whatever the URL already filters.
distressTypesarrayoptionalWhich distressed listing categories to return. Leave empty for all four.
priceMinintegeroptionalLower bound on the listing price. Leave blank for no minimum.
priceMaxintegeroptionalUpper bound on the listing price. Leave blank for no maximum.
bedsMinnumberoptionalOnly include properties with at least this many bedrooms. Leave blank for no minimum.
bathsMinnumberoptionalOnly include properties with at least this many bathrooms (decimals allowed, e.g. 1.5). Leave blank for no minimum.
homeTypesarrayoptionalLimit results to specific property types. Leave empty for all types.
daysOnZillowstringoptionalOnly include listings that have been on Zillow within this window.
sortBystringoptionalOrder in which Zillow returns the listings.
includeDetailsbooleanoptionalOpen 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.
includeAuctionDetailsbooleanoptionalFor 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".
maxItemsintegeroptionalMaximum 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.

FieldTypeRequiredDescription
foreclosuresstringoptionalDataset 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.

Open the step-by-step Python guide →

Source build LHqBAKVU6YO7qxV6c. Documentation is regenerated from the default published build; private drafts are not included.