Foreclosed Property Scraper (Cheap) avatar

Foreclosed Property Scraper (Cheap)

Pricing

from $3.99 / 1,000 results

Go to Apify Store
Foreclosed Property Scraper (Cheap)

Foreclosed Property Scraper (Cheap)

Foreclosed properties list tool that extracts distressed real estate inventory across the US, giving investors direct access to off-market and foreclosure deals.

Pricing

from $3.99 / 1,000 results

Rating

0.0

(0)

Developer

Data API

Data API

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Share

Foreclosed Property Scraper

Foreclosed Property Scraper

Finding foreclosures the hard way means paying a monthly fee to some niche real estate portal or digging through county records by hand. This scraper skips all of that. Tell it a ZIP code or a state and it pulls back the homes currently in foreclosure (or recently sold off) as clean, structured rows: asking price, full street address, beds and baths, square footage, agent contacts, coordinates, photos, and more. One run gives you a foreclosure dataset you can drop straight into a spreadsheet or a model.

What you get

Every property comes back as one flat row, so the columns line up when you load results into a sheet or database. The fields fall into a few groups:

  • Identity and statuspropertyId, listingId, listingSlug, listingStatus, isForeclosure, plus lifecycle flags like isPending, isContingent, isAuction, isNewListing, isPriceReduced
  • Price and datesaskingPrice, salePrice, priceCutAmount, listedDate, soldDate
  • Property detailspropertyKind, propertySubKind, bedroomCount, bathroomCount, interiorSqft, lotSqft, yearBuilt, garageSpaces, hasMatterport
  • LocationstreetAddress, cityName, stateName, stateCode, postalCode, lat, lng, countyName, countyFips, streetViewUrl
  • MediacoverPhotoUrl, photoCount, photoLinks
  • Agents and sourceprimaryAgentName, primaryAgentEmail, primaryAgentPhones, secondaryAgentName, brandingName, sourceName, openHouses

Quick start

  1. Press Try for free to open the input form.
  2. Type a location into at least one of ZIP code, City, or State abbreviation.
  3. Add any filters you want, such as price range, bedroom count, or property type.
  4. Set a Total listings cap to control spend, pick a proxy, then press Start.
  5. When the run finishes, export the data as JSON, CSV, Excel, or XML.

How it works

Use cases

  • Wholesaling — pull a fresh foreclosure list for one ZIP code and reach out to distressed sellers first
  • Comparable sales — export recently sold foreclosures to build a market analysis without retyping anything
  • Lead generation — collect listing agent names, emails, and phone numbers for bank-owned homes
  • Market monitoring — schedule a daily run to catch new foreclosures the moment they hit your target areas
  • Investment screening — filter by price, beds, square footage, and year built to shortlist deals that fit your model

Input

FieldTypeRequiredDescription
postalCodestringOne of postalCode, cityName, stateCode, or addressLineSingle 5-digit US ZIP code, the tightest location filter. Example 33139.
stateCodestringOne of postalCode, cityName, stateCode, or addressLineTwo-letter US state code, best paired with another filter. Prefilled FL.
cityNamestringOne of postalCode, cityName, stateCode, or addressLineExact city name; pair with stateCode for clean results. Prefilled Miami.
streetNamestringOptionalLimit results to homes on one named street, e.g. Ocean Drive.
addressLinestringOptionalOne precise street address line.
propertyTypesarray of stringsNoKeep only chosen property categories, e.g. single_family, condo.
featureKeywordsarray of stringsNoFilter by amenities such as pool, waterfront, central_air.
bedsMin / bedsMaxintegerNoLowest and highest bedroom counts to allow.
bathsMin / bathsMaxintegerNoLowest and highest bathroom counts to allow.
listPriceMin / listPriceMaxintegerNoAsking price range in USD.
soldPriceMin / soldPriceMaxintegerNoSold price range in USD.
soldDateFrom / soldDateTostringNoClosed-sale date window, written YYYY-MM-DD.
sqftMin / sqftMaxintegerNoInterior living area range in square feet.
lotSqftMin / lotSqftMaxintegerNoLot size range in square feet.
yearBuiltFrom / yearBuiltTointegerNoConstruction year range.
hoaFeeMaxintegerNoLargest monthly HOA fee to allow.
excludeHoabooleanNoReturn only homes with no HOA fee. Default false.
openHouseFrom / openHouseTostringNoOpen-house date window, written YYYY-MM-DD.
pageSizeintegerNoListings fetched per request. Default 150.
startOffsetintegerNoPosition where pagination begins. Default 0.
resultsLimitintegerNoHard cap on total listings collected. Default 3000.
runTimeoutSecondsintegerNoWhole-run time budget in seconds. Default 360.
requestTimeoutSecondsintegerNoPer-request time budget in seconds. Default 45.
proxyConfigurationobjectNoProxies used for requests. Defaults to US datacenter.

Example input

{
"stateCode": "FL",
"cityName": "Miami",
"propertyTypes": ["single_family", "multi_family"],
"listPriceMax": 750000,
"bedsMin": 2,
"resultsLimit": 200,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyCountry": "US"
}
}

Output

Each foreclosed home becomes one flat JSON row. Every declared field is present on a normal row, and unavailable values come back as null or empty so your dataset stays rectangular.

Example output

{
"listingAttribution": true,
"propertyId": "9482736150",
"listingId": "2967451308",
"listingSlug": "742-Evergreen-Ter_Miami_FL_33139_M94827-36150",
"listingStatus": "for_sale",
"askingPrice": 389000,
"salePrice": null,
"priceCutAmount": 15000,
"listedDate": "2026-05-18",
"soldDate": "",
"propertyKind": "single_family",
"propertySubKind": "",
"bedroomCount": 3,
"bathroomCount": "2",
"interiorSqft": 1640,
"lotSqft": 5200,
"yearBuilt": 1998,
"garageSpaces": 2,
"streetAddress": "742 Evergreen Terrace",
"cityName": "Miami",
"stateName": "Florida",
"stateCode": "FL",
"postalCode": "33139",
"lat": 25.7907,
"lng": -80.1300,
"countyName": "Miami-Dade County",
"countyFips": "12086",
"streetViewUrl": "https://maps.googleapis.com/maps/api/streetview?location=25.7907,-80.1300",
"coverPhotoUrl": "https://ap.rdcpix.com/example/cover-2x.jpg",
"photoCount": 24,
"photoLinks": [
"https://ap.rdcpix.com/example/photo-1.jpg",
"https://ap.rdcpix.com/example/photo-2.jpg"
],
"hasMatterport": false,
"isComingSoon": false,
"isNewListing": true,
"isPriceReduced": true,
"isForeclosure": true,
"isNewConstruction": false,
"isPending": false,
"isContingent": false,
"isAuction": false,
"isFractionallyOwned": false,
"sourceId": "MIAMI",
"sourceName": "Miami Association of Realtors",
"sourceType": "mls",
"sourceListingId": "A11234567",
"showContactAgent": true,
"marketType": "for_sale",
"leadType": "advantage",
"isVaEligible": false,
"productList": ["co_broke"],
"productBrandName": "essentials",
"primaryAgentType": "seller",
"primaryAgentName": "Maria Alvarez",
"primaryAgentEmail": "maria.alvarez@example.com",
"primaryAgentOffice": "Coastal Realty Group",
"primaryAgentPhones": ["3055550142"],
"secondaryAgentType": null,
"secondaryAgentName": null,
"secondaryAgentEmail": null,
"secondaryAgentOffice": null,
"secondaryAgentPhones": [],
"brandingName": "Coastal Realty Group",
"searchPromotions": [],
"communityPromotions": [],
"openHouses": [
{
"start_date": "2026-06-07T17:00:00Z",
"end_date": "2026-06-07T20:00:00Z",
"description": "Saturday open house",
"time_zone": "America/New_York"
}
],
"collectedAt": "2026-06-29T12:00:00.000000+00:00",
"errorMessage": null
}

Output fields

FieldTypeDescription
listingAttributionbooleanSource attribution flag from the listing feed
propertyIdstringStable internal identifier for the property
listingIdstringIdentifier of the specific listing
listingSlugstringURL slug for the listing
listingStatusstringCurrent state, such as for_sale or sold
askingPriceintegerCurrent listed asking price in USD
salePriceintegerFinal closing price in USD, on sold homes only
priceCutAmountintegerHow far the asking price has been reduced, in USD
listedDatestringISO 8601 date the listing went live
soldDatestringISO 8601 date the sale closed, when applicable
propertyKindstringTop-level property type, e.g. single_family
propertySubKindstringFiner property classification
bedroomCountintegerNumber of bedrooms
bathroomCountstringConsolidated bathroom count
interiorSqftintegerInterior living area in square feet
lotSqftintegerOutdoor lot size in square feet
yearBuiltintegerYear the home was built
garageSpacesintegerNumber of garage spaces
streetAddressstringFull street address line
cityNamestringCity the property sits in
stateNamestringFull state name
stateCodestringTwo-letter US state code
postalCodestringZIP or postal code
latnumberLatitude of the property
lngnumberLongitude of the property
countyNamestringCounty the property falls under
countyFipsstringCounty FIPS code
streetViewUrlstringLink to a street-level map preview
coverPhotoUrlstringDirect link to the headline photo
photoCountintegerHow many photos accompany the listing
photoLinksarrayDirect image URLs for the property
hasMatterportbooleanTrue when a Matterport 3D tour is attached
isComingSoonbooleanTrue when marked coming soon
isNewListingbooleanTrue when flagged as a new listing
isPriceReducedbooleanTrue when the price recently dropped
isForeclosurebooleanTrue for active foreclosure listings
isNewConstructionbooleanTrue when newly built
isPendingbooleanTrue when the sale is pending
isContingentbooleanTrue when the sale is contingent
isAuctionbooleanTrue when sold at auction
isFractionallyOwnedbooleanTrue when ownership is fractional
sourceIdstringIdentifier of the originating feed
sourceNamestringName of the originating feed, e.g. the local MLS
sourceTypestringType of the originating feed
sourceListingIdstringListing ID in the source feed
showContactAgentbooleanWhether a contact-an-agent action is offered
marketTypestringLead market classification
leadTypestringLead type for the listing
isVaEligiblebooleanTrue when flagged Veterans United eligible
productListarrayDistribution products attached to the listing
productBrandNamestringBrand name tied to the products
primaryAgentTypestringType of the primary representative
primaryAgentNamestringName of the primary representative
primaryAgentEmailstringEmail for the primary representative
primaryAgentOfficestringOffice handling the primary representative
primaryAgentPhonesarrayPhone numbers for the primary representative
secondaryAgentTypestringType of the secondary representative
secondaryAgentNamestringName of the secondary representative
secondaryAgentEmailstringEmail for the secondary representative
secondaryAgentOfficestringOffice handling the secondary representative
secondaryAgentPhonesarrayPhone numbers for the secondary representative
brandingNamestringAffiliated agent branding label
searchPromotionsarraySearch-level promotions attached to the listing
communityPromotionsarrayCommunity-level promotions attached to the listing
openHousesarrayScheduled open house entries with times and notes
collectedAtstringISO 8601 timestamp of when the row was captured
errorMessagestringReason a row failed; null on success

Tips for best results

  • Always set a location. Give the scraper at least one of postalCode, cityName, stateCode, or addressLine, or it has nothing to search against.
  • Start small. Drop resultsLimit to 50 or so on your first run to confirm the fields match your pipeline before pulling thousands.
  • Combine cityName with stateCode. A city on its own can match across several states; pairing the two keeps results tight.
  • Switch proxy tiers if requests start failing. US datacenter clears most runs; move to residential if you hit repeated errors.
  • Raise requestTimeoutSeconds toward 60 to 90 on slower proxies, and give runTimeoutSeconds more headroom for large states.
  • Use the sold-date filters for comps. Set soldDateFrom and soldDateTo to gather recently closed foreclosures for a market analysis.

How can I use foreclosure property data?

How can I use the Foreclosed Property Scraper to build a wholesaling lead list? Enter a target ZIP code or city and the scraper returns every active foreclosure there, each with the street address, asking price, beds and baths, and the listing agent's name, email, and phone. Sort by priceCutAmount or listedDate to surface motivated sellers, then export the rows straight into your CRM.

How can I find recently sold foreclosures for a comparable market analysis? Set soldDateFrom and soldDateTo to the window you want and the scraper pulls closed foreclosure sales with salePrice, interiorSqft, yearBuilt, and location fields. Group the results by neighborhood or ZIP to price your own offers against what actually traded.

How can I scrape bank-owned home listings across a whole state? Pass a stateCode such as FL, raise resultsLimit, and the scraper paginates through the available inventory and hands back one row per home. Filter by propertyTypes, price range, or bedroom count to keep only the distressed deals that match your buy box.

How can I monitor new foreclosures automatically? Save your filters and schedule the run on Apify to repeat daily. Each run captures collectedAt and the lifecycle flags like isNewListing and isForeclosure, so you can diff against yesterday's dataset and flag fresh distressed listings as they appear.

Our actors are ethical and do not extract any private user data, such as email addresses or private contact information. They only extract what the user has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.

However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.

You can also read Apify's blog post on the legality of web scraping.

Support

Questions, feature requests, or a field you'd like added? Reach out at data.apify@proton.me and we'll get back to you.