# Foreclosure & Tax Deed Auction Leads: Sheriff Sale Scraper (`epicscrapers/distressed-property-leads-scraper`) Actor

Motivated-seller leads from county foreclosure, sheriff sale and tax deed auctions in 17 states: case number, parcel, address, judgment, opening bid, assessed value and sale results. Florida, Ohio, Indiana, Texas, Pennsylvania, Colorado and more. No login. From $8 per 1,000 leads.

- **URL**: https://apify.com/epicscrapers/distressed-property-leads-scraper.md
- **Developed by:** [Epic Scrapers](https://apify.com/epicscrapers) (community)
- **Categories:** Real estate, Lead generation, Automation
- **Stats:** 4 total users, 3 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $8.00 / 1,000 property lead saveds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

### Foreclosure & Tax Deed Auction Leads: every sheriff sale and tax deed sale in your counties, before the auction

Every property going to a foreclosure, sheriff or tax deed auction is listed publicly by the county, usually weeks before the sale. This Actor collects those lists into one spreadsheet, so you see the properties before the sale day.

You pick the counties (or whole states), the sale types and the dates. You get one row per property: sale date, case number, parcel ID, address, judgment amount, opening bid, assessed value and status. After the sale you also get the result: who bought it and for how much.

It covers about **270 counties in 17 states**, including most of **Florida**, all 88 **Ohio** counties, most of **Indiana**, and counties in **Texas, Pennsylvania and Colorado**. It reads the two auction platforms those counties use. No login, no subscription; you pay per property.

#### Who it's for

- **Wholesalers and cash buyers:** reach the owner while there's still time to make a deal, weeks before the sale.
- **Fix-and-flip and auction investors:** see what is coming up for bid, with the judgment and the county's value side by side.
- **Tax deed and tax lien investors:** Florida tax deed lists with the opening bid, certificate number and assessed value, plus tax sales in Texas, Indiana, Colorado and Tennessee.
- **Agents, title companies, lenders and attorneys** who work with distressed sellers or track auction results.

### What you can do with it

#### 1. Find equity before the foreclosure sale

Run your counties with **Auction types** set to Foreclosure. In the spreadsheet, subtract `judgmentAmount` from `assessedValue`. In a test run on Orange and Hillsborough counties in Florida (October 2026), 72 of 150 upcoming foreclosures with both values had an assessed value above the judgment. For the smallest, judgments under $40,000 sat on homes assessed at $388,000 to $534,000. Small judgments in Florida county-court cases (`CC` in the case number) are often HOA or condo association foreclosures, which owners can still settle.

Then skip trace the owner from the `address` or `parcelId`, and reach out before `auctionDate`. Assessed values are usually below market value, so the real equity is often larger.

#### 2. Bid at tax deed sales

Pick **Tax deed** and a month. Each Florida row has the `openingBid` (taxes, interest and costs owed), the `certificateNumber`, the `assessedValue` and a link to the county property appraiser (`parcelUrl`). In the same test, some Orange County tax deed lots opened at $5,000 to $12,000 on parcels assessed at $90,000 to $195,000. Turn on **Skip cancelled and redeemed sales** to keep only properties still going to auction.

#### 3. Follow up after the sale

Set a past date range. Each sold property shows `salePrice` and `soldTo`: **Plaintiff** means the lender took it back (a bank-owned / REO lead), **3rd Party Bidder** means an investor bought it. Florida and Colorado also reveal the plaintiff's maximum bid after the sale. Cancelled, redeemed and bankruptcy statuses show which owners found another way out.

#### 4. Watch your market every week

Save your counties as a task and schedule it weekly. Counties keep adding sales and posting opening bids up to the sale day. Compare `parcelId` with last week's export to see what's new, or send the results to Google Sheets, Zapier or your CRM through Apify integrations.

### Quick start

1. Click **Try for free** and sign in to Apify.
2. Under **Counties**, type your counties as `County, ST`, for example `Hillsborough, FL`. Or leave it empty and pick whole **States**.
3. Choose the **Auction types**.
4. For a first run, set **Max results** to `50` (about $0.60).
5. Click **Start**. When the run finishes, open **Output** and export to Excel, CSV or Google Sheets.

Upcoming foreclosures in three counties:

```json
{
    "counties": ["Hillsborough, FL", "Franklin, OH", "St. Joseph, IN"],
    "auctionTypes": ["foreclosure"],
    "maxResults": 50
}
```

Every Florida tax deed sale in November that's still going ahead:

```json
{
    "states": ["FL"],
    "auctionTypes": ["taxDeed"],
    "dateFrom": "2026-11-01",
    "dateTo": "2026-11-30",
    "skipCancelled": true,
    "maxResults": 0
}
```

What went back to the lenders in Ohio last month:

```json
{
    "states": ["OH"],
    "auctionTypes": ["foreclosure"],
    "dateFrom": "2026-09-01",
    "dateTo": "2026-09-30",
    "maxResults": 0
}
```

Then filter the export where `soldTo` is `Plaintiff`.

### Input

| Field                                | What it does                                                                                                                                                                                |
| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Counties** (`counties`)            | `"Miami-Dade, FL"`, `"Franklin County, Ohio"`, `"Plaquemines Parish, LA"`. You can also paste one county auction site, such as `hillsborough.realtaxdeed.com`, to search only that site.    |
| **States** (`states`)                | Every covered county in these states. Used when Counties is empty. Leave both empty to search everything.                                                                                   |
| **Auction types** (`auctionTypes`)   | `foreclosure` (foreclosure and sheriff sales), `taxDeed`, `taxSale`, `taxLien`, and less common `taxCertificate`, `adjudicated`, `blighted`, `redemption`. Default: the first four.         |
| **Auctions from** (`dateFrom`)       | First sale date. Default: today. A past date gives past sales with their results.                                                                                                           |
| **Auctions until** (`dateTo`)        | Last sale date. Default: everything scheduled. Florida, Ohio, Texas and Pennsylvania counties are then read to the end of the second month after the start date, about as far as they post. |
| **Skip cancelled** (`skipCancelled`) | Leaves out properties no longer for sale: cancelled, redeemed, withdrawn, bankruptcy, paid in full. Postponed sales stay in.                                                                |
| **Max results** (`maxResults`)       | Maximum properties saved, earliest sales first. `0` = no limit. Default: `1000`.                                                                                                            |

### What you get

One row per property. Every row has the same columns, so exports line up; a column is empty when the county doesn't publish it.

| Column                                                                                                  | What it means for you                                                                                                                                                            |
| ------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `auctionDate`, `auctionTime`                                                                            | When the property sells. Your deadline.                                                                                                                                          |
| `auctionType`                                                                                           | `foreclosure`, `taxDeed`, `taxSale` or `taxLien`.                                                                                                                                |
| `address`, `city`, `zip`                                                                                | The property. A few counties leave out the city line; vacant land often has no street address.                                                                                   |
| `parcelId`, `parcelUrl`                                                                                 | The county parcel or folio number, and a link to the property appraiser page with owner, value and sales history.                                                                |
| `caseNumber`, `caseUrl`                                                                                 | The court case (or tax deed application) number, and a link to the clerk's record where the county provides one.                                                                 |
| `judgmentAmount`                                                                                        | What the court says is owed in a foreclosure.                                                                                                                                    |
| `openingBid`                                                                                            | Where bidding starts. For tax sales it's the taxes, interest and costs owed. Some foreclosure counties post it only close to the sale.                                           |
| `assessedValue`                                                                                         | The county's assessed, appraised or market value.                                                                                                                                |
| `certificateNumber`                                                                                     | The tax certificate behind a Florida tax deed sale.                                                                                                                              |
| `depositRequired`                                                                                       | Deposit a bidder must post (Ohio).                                                                                                                                               |
| `auctionStatus`, `cancelled`                                                                            | `Scheduled`, `Sold to Plaintiff`, `Sold to 3rd Party Bidder`, `Redeemed`, `Canceled per Bankruptcy`, `POSTPONED`, … `cancelled` is true when the property is no longer for sale. |
| `salePrice`, `soldTo`, `plaintiffMaxBid`                                                                | After the sale: winning bid, buyer type, and the lender's maximum bid (Florida and Colorado).                                                                                    |
| `plaintiff`, `defendant`, `plaintiffAttorney`, `ownerName`, `legalDescription`, `latitude`, `longitude` | Parties, owner, legal description and map position. Published by Indiana, Louisiana, Michigan and Tennessee counties.                                                            |
| `onlineAuctionUrl`, `sourceUrl`                                                                         | The county's auction site and its page for that sale date.                                                                                                                       |
| `extraFields`                                                                                           | Anything else the county lists (for example Ohio's case status).                                                                                                                 |

The **Output** tab has three ready-made table views: all leads, foreclosures, and tax sales.

A real row from Hillsborough County, Florida, with every column shown:

```json
{
    "auctionDate": "2026-10-13",
    "auctionTime": "10:00 AM ET",
    "auctionType": "foreclosure",
    "auctionTypeLabel": "Foreclosure (sheriff sale)",
    "state": "FL",
    "county": "Hillsborough",
    "caseNumber": "292025CA009439A001HC",
    "certificateNumber": null,
    "saleItemNumber": null,
    "parcelId": "1728330BN000000000140U",
    "altParcelId": null,
    "address": "5809 CRUISER WAY",
    "addressLine2": null,
    "city": "TAMPA",
    "zip": "33615",
    "latitude": null,
    "longitude": null,
    "openingBid": null,
    "openingBidNote": null,
    "judgmentAmount": 1388463.88,
    "assessedValue": 875877,
    "depositRequired": null,
    "plaintiffMaxBid": null,
    "salePrice": null,
    "soldTo": null,
    "plaintiff": null,
    "defendant": null,
    "plaintiffAttorney": null,
    "ownerName": null,
    "legalDescription": null,
    "auctionStatus": "Scheduled",
    "cancelled": false,
    "auctionStyle": "Online",
    "auctionLocation": "https://hillsborough.realforeclose.com",
    "onlineAuctionUrl": "https://hillsborough.realforeclose.com",
    "parcelUrl": "http://www.hcpafl.org/CamaDisplay.aspx?OutputMode=Display&SearchType=RealEstate&ParcelID=1728330BN000000000140U",
    "caseUrl": "https://publicaccess.hillsclerk.com/PAVDirectSearch/index.html?CQID=320&OBKey__1006_1=2026352788",
    "sriPropertyId": null,
    "sriSaleId": null,
    "auctionItemId": "1519661",
    "extraFields": null,
    "sourceUrl": "https://hillsborough.realforeclose.com/index.cfm?zaction=AUCTION&Zmethod=PREVIEW&AUCTIONDATE=10/13/2026",
    "source": "RealAuction (hillsborough.realforeclose.com)",
    "scrapedAt": "2026-10-12T21:10:57.209Z"
}
```

An Ohio sheriff sale (Franklin County), empty columns left out:

```json
{
    "auctionDate": "2026-10-16",
    "auctionTime": "09:00 AM ET",
    "auctionType": "foreclosure",
    "state": "OH",
    "county": "Franklin",
    "caseNumber": "24CV7421 (19902)",
    "parcelId": "010003121",
    "address": "518-520 N. PARK STREET",
    "city": "COLUMBUS",
    "zip": "43215",
    "openingBid": 1400000,
    "assessedValue": 2100000,
    "depositRequired": 10000,
    "auctionStatus": "Scheduled",
    "onlineAuctionUrl": "https://franklin.sheriffsaleauction.ohio.gov",
    "extraFields": { "Case Status": "ACTIVE" }
}
```

A Florida tax deed sale (Hillsborough County), empty columns left out:

```json
{
    "auctionDate": "2026-10-15",
    "auctionType": "taxDeed",
    "state": "FL",
    "county": "Hillsborough",
    "caseNumber": "2026-701",
    "certificateNumber": "2024 / 1082",
    "parcelId": "0121000100",
    "address": "3918 FONTAINEBLEAU DR",
    "city": "TAMPA",
    "zip": "33634",
    "openingBid": 155326.7,
    "assessedValue": 270592,
    "auctionStatus": "Redeemed",
    "cancelled": true,
    "parcelUrl": "http://gis.hcpafl.org/propertysearch/#/search/basic/folio=0121000100"
}
```

### Coverage

| State          | Counties                                                                     | Sales                                            |
| -------------- | ---------------------------------------------------------------------------- | ------------------------------------------------ |
| Florida        | 46, including Miami-Dade, Broward, Hillsborough, Orange, Duval, Lee, Polk    | Foreclosure sales and tax deed sales             |
| Ohio           | All 88                                                                       | Sheriff sales                                    |
| Indiana        | Most counties (not Marion / Indianapolis)                                    | Sheriff sales and tax sales                      |
| Texas          | 24, including Travis and Montgomery                                          | Tax foreclosure sales                            |
| Pennsylvania   | 12, including Berks, Butler and Washington                                   | Sheriff sales                                    |
| Colorado       | Adams, Denver, El Paso, Larimer, Weld and others; tax liens in about 19 more | Foreclosure, treasurer's deed and tax lien sales |
| Louisiana      | Several parishes, including Plaquemines and Iberville                        | Sheriff sales                                    |
| Michigan       | Macomb                                                                       | Tax deed sales                                   |
| Tennessee      | Shelby                                                                       | Tax lien sales                                   |
| Washington     | King                                                                         | Sheriff sales and tax sales                      |
| Arizona        | Apache, Coconino, Mohave                                                     | Tax deed sales                                   |
| CA, ID, NJ, NY | Fresno; Kootenai; Newark and Hardyston; Suffolk                              | Tax defaulted, tax and foreclosure sales         |

For a sense of volume: between 12 October and 31 December 2026, the counties on RealAuction (Florida, Ohio, Texas, Pennsylvania and the others in the table) listed about 8,700 properties across 994 sale dates. The SRI Services counties listed about 10,700 more, including about 5,000 Indiana properties and 5,200 Colorado tax liens.

The data comes from **RealAuction** (realforeclose.com, realtaxdeed.com, sheriffsaleauction.ohio.gov and the Texas, Pennsylvania and Colorado sites) and **SRI Services** (sriservices.com, Indiana and the others). Counties that run their own auctions or use another vendor are not covered, for example Marion County, Indiana, Cook County, Illinois, and Bid4Assets or GovEase tax sales.

### Pricing

You pay only for properties saved: **$12 per 1,000** on the Free plan, $11 on Bronze, $9.50 on Silver and $8 on Gold and higher. Platform usage and the US residential proxy the county sites require are included. Counties with nothing scheduled and duplicate listings cost nothing. You can set a spending limit on any run; the run stops cleanly when it's reached.

### Good to know

- **Names:** Florida, Ohio, Texas and Pennsylvania auction sites show the plaintiff and the owner only to registered bidders, so those rows have no names. Use `caseUrl` or `caseNumber` on the clerk's site for the parties, and `parcelUrl` or `parcelId` on the appraiser's site (or your skip-trace tool) for the owner. Indiana and Louisiana rows include them.
- **Opening bids:** some counties post them only shortly before the sale. Rerun close to the date.
- **Lists change until sale day.** Sales get cancelled, postponed and redeemed. Always confirm the case with the county before you bid.
- **How far ahead:** counties usually post one to two months ahead. Set **Auctions until** to read further.

### Is it legal?

The Actor reads the auction lists counties publish as public notice of their sales, the same pages any visitor sees, without logging in. Owner and defendant names are personal data: use them lawfully, including the rules on direct mail, calls and texts (TCPA, Do Not Call lists) and any state rules on contacting homeowners in foreclosure.

### FAQ

**Can I get every county at once?** Yes. Leave **Counties** and **States** empty and set **Max results** to `0`. All of Florida and Ohio through the end of the year was about 7,000 properties and took about 20 minutes.

**Does it include pre-foreclosures (lis pendens)?** No. It covers properties that have a sale scheduled (or held) at auction: foreclosures after judgment, sheriff sales and tax sales.

**Can I search one county auction site directly?** Yes. Paste its address, for example `miami-dade.realtaxdeed.com`, into **Counties**.

**How do I get only new properties each week?** Schedule the run and compare `parcelId` + `auctionDate` with the previous export, or filter by `scrapedAt`.

# Actor input Schema

## `counties` (type: `array`):

Counties to search, as "County, ST": "Miami-Dade, FL", "Franklin County, Ohio", "St. Joseph, IN", "Plaquemines Parish, LA". The state can be left out when it's set under States or the name is unique. You can also paste a RealAuction portal address ("hillsborough.realtaxdeed.com" or its URL) to search only that portal. Leave empty to search every county in the selected states.

## `states` (type: `array`):

Search every covered county in these states. Used when Counties is empty; leave both empty to search all states. Coverage: Florida (foreclosure and tax deed, most counties), Ohio (sheriff sales, all 88 counties), Indiana (sheriff and tax sales, most counties), Texas (tax foreclosure sales), Pennsylvania (sheriff sales), Colorado (foreclosure, treasurer's deed and tax lien sales), plus some counties in LA, MI, TN, WA, CA, ID, AZ, NJ and NY.

## `auctionTypes` (type: `array`):

Foreclosure: court-ordered foreclosure and sheriff sales, with case number, judgment amount, opening bid and assessed value; Indiana and Louisiana rows also have the plaintiff and defendant. Tax deed, tax sale and tax lien: properties with delinquent property taxes, with opening or minimum bid and (where published) the owner.

## `dateFrom` (type: `string`):

First auction date to include (YYYY-MM-DD). Defaults to today. Use a past date to get past sales with their result (sold to plaintiff or third party, winning bid where published, cancelled, redeemed).

## `dateTo` (type: `string`):

Last auction date to include (YYYY-MM-DD). Leave empty for every scheduled auction; RealAuction counties (FL, OH, TX, PA and others) are then read up to the end of the second month after Auctions from, which covers what counties have posted.

## `skipCancelled` (type: `boolean`):

Leave out properties no longer for sale: cancelled, redeemed (the owner paid), withdrawn or stopped by bankruptcy.

## `maxResults` (type: `integer`):

Maximum properties saved, earliest auctions first. Set to 0 for no limit.

## Actor input object example

```json
{
  "counties": [
    "Miami-Dade, FL",
    "Franklin, OH",
    "St. Joseph, IN"
  ],
  "states": [],
  "auctionTypes": [
    "foreclosure",
    "taxSale",
    "taxDeed",
    "taxLien"
  ],
  "skipCancelled": false,
  "maxResults": 50
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "counties": [
        "Miami-Dade, FL",
        "Franklin, OH",
        "St. Joseph, IN"
    ],
    "maxResults": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("epicscrapers/distressed-property-leads-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "counties": [
        "Miami-Dade, FL",
        "Franklin, OH",
        "St. Joseph, IN",
    ],
    "maxResults": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("epicscrapers/distressed-property-leads-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "counties": [
    "Miami-Dade, FL",
    "Franklin, OH",
    "St. Joseph, IN"
  ],
  "maxResults": 50
}' |
apify call epicscrapers/distressed-property-leads-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,epicscrapers/distressed-property-leads-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/47J8Hw9r41zltkhy6/builds/jkSsojMLcVGb6ouYQ/openapi.json
