# Louisiana Distressed Property & Sheriff Sale Leads (`maniginam/louisiana-distressed-property-leads`) Actor

Sheriff sales, code enforcement cases, blight judgments, condemned buildings, and tax-adjudicated parcels from Orleans, East Baton Rouge, and Ascension parishes in one lead feed.  Monitor mode delivers only new or changed leads on a schedule.

- **URL**: https://apify.com/maniginam/louisiana-distressed-property-leads.md
- **Developed by:** [ManiGinaM](https://apify.com/maniginam) (community)
- **Categories:** Lead generation, Real estate
- **Security:** Limited permissions
- **Stats:** 1 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.25 / 1,000 distressed property records

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

Sheriff sales, code enforcement cases and hearings, blight judgments, condemned buildings, and tax-adjudicated parcels from Orleans, East Baton Rouge, and Ascension parishes, all in one lead feed.  Every lead comes back in the same shape with the property address, case number, status, key dates, and a link to the original record.  Turn on monitor mode and schedule it to get only the leads that are new or changed since your last run.

### Monitor mode

Monitor mode is the way most people use this Actor.  Set `onlyNewOrChanged` to true and add a schedule, for example every weekday at 7 AM Central.  The Actor remembers every lead it delivered for that exact search, per source, in a named key-value store.  The first run delivers every matching lead up to `maxResults` as `new`.  Later runs deliver only leads that are new, or whose status, open state, hearing date, sale date, or owner changed, as `new` or `changed`.  Unchanged leads are skipped, and you are not charged for them.

Sample monitor input:

```json
{
  "onlyNewOrChanged": true,
  "parishes": ["orleans", "eastBatonRouge"],
  "distressTypes": ["sheriffSale", "codeHearing", "condemnedBuilding"],
  "maxResults": 5000
}
```

A few things are worth knowing before you rely on it:

- History is keyed on each source and on the `openCasesOnly` and `since` filters, but not on `maxResults`.  Adding or removing a parish or distress type only starts or stops that source's history.  If you change `openCasesOnly` or `since`, including a "since" date that you move forward each week, the Actor starts a fresh history and reports every matching lead as `new` again.  Keep those filters fixed for a monitor.
- With `openCasesOnly` on, a case that closes simply drops out of the search, so the monitor never reports it.  Turn `openCasesOnly` off if you want to see cases close.
- `maxResults` caps what a run delivers, and skipped leads do not count toward it.  Set it high enough to cover a busy week, or the rest waits for the next run.
- Each source remembers its most recent 250,000 leads, which is far more than any source publishes today.
- If the saved history is ever unreadable, the run fails before charging anything rather than reporting every lead as `new` again.  The error names the record to delete from the `louisiana-distressed-property-leads-monitor` store.
- Two schedules running the same search at the same time share one history, and the run that finishes last wins.

### What does it do?

Distressed property data in Louisiana is spread across a sheriff sale site, two city open data portals, and several datasets that each use their own columns and status codes.  This Actor reads eight official sources, maps every row into one normalized lead record with a `distressType` field, and gives each lead a stable `leadId` so you can merge runs safely.

| Distress type | Parish | Source |
| --- | --- | --- |
| `sheriffSale` | Orleans, Ascension | Sheriff's Office sales calendar on CivilView SalesWeb, scheduled real estate sales |
| `codeHearing` | Orleans | New Orleans Code Enforcement Hearings |
| `codeEnforcementCase` | Orleans | New Orleans Code Enforcement All Cases |
| `blightJudgment` | Orleans | New Orleans Code Enforcement Abatements (guilty judgments in abatement) |
| `propertyMaintenance` | Orleans | New Orleans grass, graffiti, Chapter 66, and minimum property maintenance cases |
| `condemnedBuilding` | East Baton Rouge | Baton Rouge Condemnations |
| `taxAdjudicated` | East Baton Rouge | East Baton Rouge Adjudicated Parcels (properties taken for unpaid taxes) |

It reads public pages and the public Socrata APIs behind data.nola.gov and data.brla.gov, so there is no browser, no proxy, and no login involved.  On October 30, 2026, a run with the default filters found about 31,600 open leads: about 15,000 open code enforcement cases, 5,600 property maintenance cases, 3,100 blight judgments, 2,900 code hearings, 4,500 adjudicated parcels, 180 condemned buildings, and 245 scheduled sheriff sales.

### Who is it for?

- Real estate investors and wholesalers looking for motivated sellers before a property hits the market.
- Cash buyers, house flippers, and land bankers who follow sheriff sales and tax-adjudicated lots.
- Demolition, board-up, lawn care, and remediation contractors who work blighted and condemned properties.
- Title, lending, and community development teams who track blight and code liens by neighborhood.

### How to use

1. Open the Actor in Apify Console.
2. Optionally pick parishes and distress types under **Filters**, or leave them empty to get every source.
3. Choose whether to keep only open cases and set a start date.
4. Click **Start** and wait for the run to finish.
5. Open the **Output** tab to preview leads, then export them as JSON, CSV, Excel, or XML.
6. For a lead feed, turn on monitor mode and add a schedule.

### Input

| Field | Type | Description |
| --- | --- | --- |
| `onlyNewOrChanged` | true or false | Monitor mode.  Outputs only leads that are new or changed since this search last ran. |
| `parishes` | list | `orleans`, `eastBatonRouge`, or `ascension`.  Empty means every parish. |
| `distressTypes` | list | Any of `sheriffSale`, `codeHearing`, `codeEnforcementCase`, `blightJudgment`, `propertyMaintenance`, `condemnedBuilding`, and `taxAdjudicated`.  Empty means every type. |
| `openCasesOnly` | true or false | Default true.  Keeps only open cases, scheduled sheriff sales, and active condemnations. |
| `since` | date | Earliest lead date, `YYYY-MM-DD`, inclusive. |
| `maxResults` | number | Most leads to deliver in one run, across every source.  Default 1000, maximum 100,000. |

The lead date is the filing date for code cases, blight judgments, and property maintenance cases, the hearing date for hearings, the sale date for sheriff sales, the date a building was listed as condemned, and January 1 of the tax sale year for adjudicated parcels.  Leads come newest first within each source, in the order of the table above.  If a parish and distress type have no source, for example Ascension code hearings, the run fails right away with a list of what each parish covers.

Sample input:

```json
{
  "parishes": ["orleans"],
  "distressTypes": ["blightJudgment", "codeEnforcementCase"],
  "openCasesOnly": true,
  "since": "2026-01-01",
  "maxResults": 500
}
```

### Output

Each lead is one dataset item.  This is a real East Baton Rouge record:

```json
{
  "leadId": "EBR-CN-130",
  "distressType": "condemnedBuilding",
  "parish": "East Baton Rouge",
  "city": "Baton Rouge",
  "address": "1557 APPLE ST",
  "zip": "70802",
  "fullAddress": "1557 APPLE ST, Baton Rouge, LA 70802",
  "caseNumber": "BC-110584",
  "caseType": "Condemned building",
  "status": "CONDEMNED - OPEN",
  "statusDetail": null,
  "isOpen": true,
  "leadDate": "2026-08-21",
  "filedDate": "2026-09-23",
  "statusDate": "2026-09-24",
  "hearingDate": null,
  "saleDate": null,
  "owner": null,
  "ownerMailingAddress": null,
  "latitude": 30.4351225,
  "longitude": -91.1717265,
  "details": {
    "listedDate": "2026-08-21",
    "introducedDate": "2026-09-09",
    "demolitionDate": null,
    "demolitionCost": 4800,
    "funding": "CDBG",
    "councilDistrict": "10"
  },
  "suspectDates": {},
  "source": "City of Baton Rouge and Parish of East Baton Rouge Open Data, Condemnations",
  "sourceUrl": "https://data.brla.gov/d/uu23-j77y",
  "recordUrl": "https://data.brla.gov/resource/uu23-j77y.json?id=130",
  "changeType": "notTracked"
}
```

You can download results as JSON, CSV, Excel, or XML, or read them through the Apify API.

- `leadId` is stable across runs: a source prefix plus the source's own ID, for example `SALE-ORLEANS-2219211754`, `NOLA-CE-338643`, or `EBR-AJ-647268`.  A New Orleans hearing ID also carries the hearing date and time, because one case can have several hearings.
- `fullAddress` joins the street, city, LA, and ZIP, ready for mailing or geocoding.  If the source has no city, the parish is used instead.
- `owner` is the defendant for sheriff sales and the owner of record for adjudicated parcels.  The code enforcement and condemnation sources do not publish owners.
- `details` holds source-specific fields: the plaintiff, attorney, writ amount, and terms for sheriff sales, the previous hearing and inspection result for hearings, demolition cost and funding for condemnations, and assessed value, homestead exemption, and flood zone for adjudicated parcels.
- Adjudicated parcels carry the middle of the parcel outline as `latitude` and `longitude`.  Points outside Louisiana are dropped.  About half of them, mostly vacant lots, have no street address in the source, so use the coordinates, `caseNumber` (the assessment number), and the subdivision and lot in `details` to find them.
- Placeholder values such as `N/A` or a 1900 date become null.  A date more than a day in the future, or a scheduled date more than a year out, is published as null, and the raw value is kept in `suspectDates`.
- `changeType` is `new` or `changed` in monitor mode and `notTracked` otherwise.

### Pricing

This Actor uses pay-per-event pricing.

- **Distressed property record:** $5.00 per 1,000 leads delivered to your dataset ($0.005 each).
- **Actor start:** Apify's standard start event ($0.00005).
- There is no separate charge per dataset item.

In the 30 days to October 29, 2026, New Orleans filed about 730 new code enforcement and property maintenance cases, and about 245 sheriff sales were on the calendar for the next three months.  A daily monitor of every source usually delivers a few thousand new or changed leads a month at most, roughly $5 to $15 a month.  A full pull of every open lead (about 31,600) costs about $158, so filters and `maxResults` are worth using.  You can cap any run with Apify's maximum charge setting.  The Actor stops cleanly at your limit, and you are only charged for leads that actually reach your dataset.

#### Estimated compute cost

Default memory is 512 MB.  In test runs on October 30, 2026, a 100-lead run took about 23 seconds and used 0.003 compute units (about $0.001), and a 1,586-lead run took about 28 seconds and used 0.004 compute units.  Most of that time is the sheriff sale calendars, which are read politely one page at a time.  A full pull of every open lead (about 31,600) takes about a minute, on the order of $0.01 in compute on top of the event charges.  A daily monitor scans each source in full to find changes, so it costs about the same compute as a full pull but only charges for the leads it delivers.  A monitor run of the 176 East Baton Rouge condemned buildings took about 3 seconds.

### Data sources and freshness

- **Sheriff sales:** the Orleans Parish and Ascension Parish sheriff sale calendars on [CivilView SalesWeb](https://salesweb.civilview.com/), scheduled real estate sales only.  Sales are often postponed or stopped, so check `status` and the record link before you act.
- **New Orleans:** [Code Enforcement All Cases](https://data.nola.gov/d/u6yx-v2tw) (CC0), [Code Enforcement Hearings](https://data.nola.gov/d/w6gf-dnv6), [Code Enforcement Abatements](https://data.nola.gov/d/xv8z-gn8b), and [Minimum Property Maintenance](https://data.nola.gov/d/xhih-vxs6), published by the City of New Orleans on data.nola.gov.  Only the cases dataset carries an explicit license.  The other three are published on the same open data portal without a license field.  All four were updated on October 29, 2026.
- **East Baton Rouge:** [Condemnations](https://data.brla.gov/d/uu23-j77y) and [Adjudicated Parcel](https://data.brla.gov/d/shrr-fsqq), published by the City of Baton Rouge and Parish of East Baton Rouge on data.brla.gov and marked Public Domain.

Every record carries `source`, `sourceUrl`, and `recordUrl` so you can trace it back.  New judgments in the New Orleans abatements dataset have slowed since 2022, but the city still updates the cases in it.  Adjudicated parcels publish only a tax sale year, so `since` matches on that year.

If a source is down, slow, or blocked, the Actor skips that page after at most 25 seconds and tries the remaining sources.  Each HTTP read and each source page has its own 25-second deadline, with at most three HTTP attempts including backoff.  The Actor stops scheduling new pages after about 240 seconds, and delivered leads are kept.  A full pull of every open lead still fits in that window.  Runs with delivered leads succeed with a partial-results warning; if a source fails and no leads were delivered, the run fails honestly.  Per-source fetch and delivery progress is logged.  If the platform moves a run to another server, it resumes where it stopped and never delivers or charges a lead twice.

### Is it legal to use this data?

The Actor reads public records that the parishes, cities, and sheriffs publish for anyone to view or download.  The data is provided as is, without any guarantee that it is complete, current, or accurate.  It is not a title search, a lien certificate, or legal advice, so confirm anything important with the sheriff, the city, or the parish before you bid, buy, or contact anyone.  This Actor is an independent tool and is not affiliated with or endorsed by any parish, city, or sheriff's office.

Owner and defendant names are personal data even when a public office publishes them.  If you contact people from these records, you are responsible for following the rules that apply to you, such as the Telephone Consumer Protection Act, the CAN-SPAM Act, Do Not Call registries, the Fair Debt Collection Practices Act where it applies, and any privacy laws where you operate.

### API and integrations

You can start this Actor and read its results with the [Apify API](https://docs.apify.com/api/v2), the Apify Python and JavaScript clients, or the Apify CLI.  The API returns each run's dataset in the same formats as the Console.

Apify integrations can pass results on when a run finishes, for example to Google Sheets, Slack, Zapier, Make, or your own webhook.  Set them up on the Actor's **Integrations** tab, and pair them with a schedule for a hands-off feed.

### FAQ

**Do I need an account or API key for any of the sources?**  No.  Every source is public and needs no login.

**Why are some parishes missing a distress type?**  Each parish publishes different records.  Orleans has sheriff sales and every code enforcement source, East Baton Rouge has condemned buildings and adjudicated parcels, and Ascension has sheriff sales.  More parishes can be added as they publish usable data.

**Why do code enforcement leads have no owner?**  The New Orleans and Baton Rouge code enforcement datasets do not publish owner names.  Match `fullAddress` against the parish assessor if you need one.

**Why does the same case appear as a code case and a hearing?**  They are different events.  The case is the violation, and each hearing is a scheduled date in front of a hearing officer.  Use `caseNumber` to join them.

**How do I get only one kind of lead?**  Pick it in `distressTypes`.  Only the sources that publish that type are read, and you are only charged for the leads delivered.

### Related Actors

- [Louisiana Building Permits (Baton Rouge, NOLA)](https://apify.com/maniginam/louisiana-building-permits): Baton Rouge and New Orleans building permits.
- [East Baton Rouge Absentee Owner Parcel Leads](https://apify.com/maniginam/east-baton-rouge-absentee-owner-leads): East Baton Rouge Parish parcels with owner mailing addresses and absentee flags.
- [Gulf Coast USACE Permits & Wetland Monitor](https://apify.com/maniginam/gulf-coast-usace-permits): U.S. Army Corps of Engineers permits and wetland determinations on the Gulf Coast.
- [OpenFEMA Disaster Recovery Money Tracker](https://apify.com/maniginam/fema-disaster-recovery-tracker): FEMA Public Assistance, Hazard Mitigation, and Individual Assistance money.

### Feedback and custom requests

Found a bug, a wrong value, or a source that changed?  Open an issue in the Issues tab on this Actor's page.  Need another field, filter, or source, or a version built for your team?  Describe it in the Issues tab as a custom request.

#### Fetch budget configuration

Operators can change the per-page source deadline and the run-level page-scheduling watchdog with `ACTOR_SOURCE_BUDGET_SECONDS` (default 25) and `ACTOR_FETCH_BUDGET_SECONDS` (default 240).  Values must be finite positive seconds and may be raised above the defaults for very large pulls.  Deadlines never cancel an in-progress dataset write or checkpoint.  Large searches may return partial results if the watchdog expires; inspect the run status and source warnings before treating results as complete.

# Changelog

This Actor's version history is a separate document: https://apify.com/maniginam/louisiana-distressed-property-leads/changelog.md

# Actor input Schema

## `onlyNewOrChanged` (type: `boolean`):

When on, the Actor remembers every lead it delivered for this exact search and outputs only leads it has not delivered before, or whose status, open state, hearing date, sale date, or owner changed since.  Unchanged leads are skipped and not charged.  Use it with a daily or weekly schedule.

## `parishes` (type: `array`):

Orleans, East Baton Rouge, and Ascension.  Leave empty to search every parish.

## `distressTypes` (type: `array`):

Which kinds of distress to include.  Each type comes from the parishes noted beside it.  Leave empty for every type.

## `openCasesOnly` (type: `boolean`):

When on, only leads the source marks as open or upcoming: open code cases, scheduled sheriff sales, active condemnations, and so on.  Turn it off to include closed cases, which a monitor needs in order to report a case closing.

## `since` (type: `string`):

Earliest lead date (YYYY-MM-DD), inclusive.  The lead date is the filing date for code cases, the hearing date for hearings, the sale date for sheriff sales, the condemnation date for condemned buildings, and January 1 of the tax sale year for adjudicated parcels.  Leave empty for no lower bound.

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

Upper limit on leads delivered by this run across every source, newest first within each source.  Each delivered lead is charged as one distressed-property-record event.

## Actor input object example

```json
{
  "onlyNewOrChanged": false,
  "openCasesOnly": true,
  "maxResults": 100
}
```

# 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 = {
    "maxResults": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("maniginam/louisiana-distressed-property-leads").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 = { "maxResults": 100 }

# Run the Actor and wait for it to finish
run = client.actor("maniginam/louisiana-distressed-property-leads").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 '{
  "maxResults": 100
}' |
apify call maniginam/louisiana-distressed-property-leads --silent --output-dataset

```

## MCP server setup

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

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/irHTXESm6uDrLp85s/builds/XBLOlZ3NhLtFiJSON/openapi.json
