# East Baton Rouge Absentee Owner Parcel Leads (`maniginam/east-baton-rouge-absentee-owner-leads`) Actor

Every East Baton Rouge Parish tax parcel with its owner mailing address, flagged for absentee, out-of-state, corporate, homestead, senior or special assessment, and vacant lot owners.  Monitor mode delivers only new parcels or owner changes on a schedule.

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

## Pricing

from $4.25 / 1,000 owner lead 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

Every East Baton Rouge Parish tax parcel with its owner's mailing address, flagged for absentee owners, out-of-state owners, corporate and LLC owners, homesteads, senior and special assessments, and vacant lots.  Filter by any mix of flags, by property ZIP code, and by assessed value, then turn on monitor mode and schedule it to get only parcels that are new or whose owner 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 Monday at 7 AM Central.  The Actor remembers every parcel it delivered for that exact search in a named key-value store.  The first run delivers every matching parcel up to `maxResults` as `new`.  Later runs deliver only parcels that are new to the search, or whose owner changed, as `new` or `changed`.  Unchanged parcels are skipped, and you are not charged for them.

Sample monitor input:

```json
{
  "onlyNewOrChanged": true,
  "flags": ["absenteeOwner", "outOfStateOwner"],
  "excludeFlags": ["corporateOwner"],
  "maxResults": 5000
}
```

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

- A parcel counts as changed when its owner name or owner mailing address changes, which is how a sale or a new mailing address shows up.  A parcel that newly matches your flags, for example one whose new owner lives out of state, is delivered as `new`.
- History is keyed on `flags`, `excludeFlags`, `zipCodes`, `minAssessedValue`, and `maxAssessedValue`, but not on `maxResults`.  If you change any of those filters, the Actor starts a fresh history and reports every matching parcel as `new` again.  Keep them fixed for a monitor.
- A monitor run reads every parcel that could match to find changes, up to the whole table, which takes about 4 minutes.  It only charges for the parcels it delivers.
- `maxResults` caps what a run delivers, and skipped parcels do not count toward it.  Set it high enough for the first run, or the rest is delivered as `new` over the next runs.
- The history remembers the most recent 250,000 parcels, which covers every parcel in the parish.
- If the saved history is ever unreadable, the run fails before charging anything rather than reporting every parcel as `new` again.  The error names the record to delete from the `east-baton-rouge-absentee-owner-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?

The parish publishes its parcels, its street address book, and its tax roll as three separate open datasets with different keys and codes.  This Actor reads all three from the public Socrata API behind data.brla.gov, joins them, and turns every parcel into one owner lead with a stable `leadId`, the owner's mailing address, the property address with its city and ZIP, and six yes or no owner flags.  There is no browser, no proxy, and no login involved.

On October 30, 2026, the parish listed about 202,800 parcels.  About 30% have an absentee owner, about 11,000 mail their tax bill outside Louisiana, about 100,000 have a homestead exemption, about 37,300 are assessed as vacant land, and about 18,300 have a senior or special assessment on the 2025 tax roll.

### Owner flags

| Flag | What it means |
| --- | --- |
| `absenteeOwner` | The tax bill is mailed to a different street or ZIP than the property.  Streets are compared after standard abbreviations and unit numbers are removed, so `123 Oak Drive Apt 4` matches `123 OAK DR`.  Null when the property or the mailing street is missing, which is common for vacant land. |
| `outOfStateOwner` | The tax bill is mailed outside Louisiana.  Every out-of-state owner is also an absentee owner when both streets are known. |
| `homestead` | The parcel has a homestead exemption.  In Louisiana that means the owner says it is their primary home. |
| `seniorOrSpecialExemption` | The latest tax roll freezes the assessment for an owner over 65, a disabled owner, or a disabled veteran.  `specialAssessment` says which. |
| `vacantLot` | The parcel is assessed for its land alone, with no improvement value, so the parish assesses no building on it.  This matched the tax roll's own land and improvement units on all 40 parcels we sampled. |
| `corporateOwner` | The owner name is a business, for example an LLC, Inc., corporation, partnership, bank, realty, or holdings company. |

Some common searches:

- Absentee owners, the default: `"flags": ["absenteeOwner"]`.
- Out-of-state individual owners: `"flags": ["outOfStateOwner"], "excludeFlags": ["corporateOwner"]`.
- Vacant lots held by companies: `"flags": ["vacantLot", "corporateOwner"]`.
- Senior homeowners: `"flags": ["homestead", "seniorOrSpecialExemption"]`.
- Every parcel in a ZIP code: `"flags": [], "zipCodes": ["70808"]`.

### Who is it for?

- Real estate investors and wholesalers who mail absentee and out-of-state owners.
- Land buyers and builders looking for vacant lots and the companies that hold them.
- Property managers, roofers, and other local services who want owner-occupied or rental homes by ZIP code.
- Agents and title teams who want to hear when a parcel changes hands.

### How to use

1. Open the Actor in Apify Console and pick the owner flags you want, such as absentee owner.
2. Optionally exclude flags, pick ZIP codes, or set an assessed value range under **Filters**.
3. Set **Maximum leads** under **Run size**.
4. Click **Start** and wait for the run to finish.
5. Open the **Output** tab to preview parcels, then export them as JSON, CSV, Excel, or XML.
6. To track new parcels and owner changes, turn on monitor mode and add a schedule.

### Input

| Field | Type | Description |
| --- | --- | --- |
| `onlyNewOrChanged` | true or false | Monitor mode.  Outputs only parcels that are new to the search or whose owner changed since it last ran. |
| `flags` | list | Owner flags a parcel must all have.  Default `absenteeOwner`.  An empty list delivers every parcel. |
| `excludeFlags` | list | Owner flags a parcel must not have.  A flag cannot be both wanted and excluded. |
| `zipCodes` | list | Five-digit ZIP codes of the property, not the owner.  Parcels without a known ZIP are skipped when this is set. |
| `minAssessedValue` | number | Lowest total assessed value in dollars, inclusive. |
| `maxAssessedValue` | number | Highest total assessed value in dollars, inclusive. |
| `maxResults` | number | Most parcels to deliver in one run.  Default 1000, maximum 100,000. |

Louisiana assesses homes at 10% of market value, so an assessed value of $15,000 is roughly a $150,000 home.  Parcels come in descending assessment number order.

Sample input:

```json
{
  "flags": ["absenteeOwner"],
  "excludeFlags": ["homestead"],
  "zipCodes": ["70805", "70806", "70808"],
  "minAssessedValue": 5000,
  "maxAssessedValue": 25000,
  "maxResults": 500
}
```

### Output

Each parcel is one dataset item.  This is a real record:

```json
{
  "leadId": "EBR-327-9081-1",
  "assessmentNumber": "327-9081-1",
  "owner": "AMAYA'S BUILDING BLOCKS, LLC",
  "ownerMailingStreet": "379 MEMPHIS TRACE",
  "ownerMailingCity": "COVINGTON",
  "ownerMailingState": "LA",
  "ownerMailingZip": "70433",
  "ownerMailingAddress": "379 MEMPHIS TRACE, COVINGTON, LA 70433",
  "propertyAddress": "14273 WATERCREST LN",
  "propertyCity": "BATON ROUGE",
  "propertyZip": "70817",
  "propertyFullAddress": "14273 WATERCREST LN, BATON ROUGE, LA 70817",
  "absenteeOwner": true,
  "outOfStateOwner": false,
  "mailingIsPoBox": false,
  "homestead": false,
  "seniorOrSpecialExemption": false,
  "specialAssessment": null,
  "vacantLot": false,
  "corporateOwner": true,
  "taxStatus": "Active",
  "assessedValue": 27810,
  "landValue": 6000,
  "homesteadExemption": 0,
  "lastSaleYear": 2017,
  "subdivision": "COURSEY COVE",
  "lot": "86",
  "block": null,
  "floodZone": "AE / X PROTECTED BY LEVEE",
  "latitude": 30.4118915,
  "longitude": -91.0207764,
  "suspectDates": {},
  "source": "City of Baton Rouge and Parish of East Baton Rouge Open Data: Tax Parcel, Property Information, and EBRP Tax Roll",
  "sourceUrl": "https://data.brla.gov/d/ei2c-krsr",
  "recordUrl": "https://data.brla.gov/resource/ei2c-krsr.json?assessment_num=327-9081-1",
  "changeType": "notTracked"
}
```

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

- `leadId` is `EBR-` plus the assessment number, stable across runs.
- `ownerMailingAddress` joins the mailing street, city, state, and ZIP, ready for a mailer.  `mailingIsPoBox` marks PO boxes.
- `propertyCity` and `propertyZip` come from the parish address book.  About 5% of streets are not in it, so those parcels show the parish name instead of a city.  Vacant land often has no street address at all, so use the coordinates, `subdivision`, and `lot` to find it.
- `taxStatus` is `Active`, `Adjudicated` (taken by the parish for unpaid taxes), or `Exempt`.
- `latitude` and `longitude` are a point on the parcel outline.
- Placeholder values become null.  A sale year later than tomorrow's year 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.

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

A 1,000-lead absentee owner list costs $5.  Every absentee owner in the parish (about 61,000) costs about $305, so ZIP code, value, and flag filters are worth using.  A weekly monitor usually delivers only the parcels that sold or changed mailing address, typically a few hundred a month for an absentee search, so a few dollars a month.  You can cap any run with Apify's maximum charge setting.  The Actor stops cleanly at your limit, and you are only charged for parcels that actually reach your dataset.

#### Estimated compute cost

Default memory is 512 MB, and runs used about 230 MB.  In test runs on October 30, 2026, a 100-lead absentee search took about 31 seconds and used 0.004 compute units, and a 185-lead monitor search for out-of-state companies holding vacant lots took about 25 seconds.  Every run first reads the parish address book and tax roll, which takes a few seconds.  A search that has to read the whole parcel table, such as a ZIP code filter, which the portal cannot filter on, took about 4 minutes and 0.033 compute units (about $0.015) when allowed to run to completion.  Out-of-state, homestead, vacant lot, and value filters are applied by the portal, so those searches read far less.  Compute is on the order of a cent or two per run on top of the event charges.

### Data sources and freshness

- [Tax Parcel](https://data.brla.gov/d/ei2c-krsr): parcels, owners, mailing addresses, values, and exemptions.  Last updated on April 29, 2026.
- [Property Information](https://data.brla.gov/d/re5c-hrw9): the parish street address book, used for each property's city and ZIP.  Last updated on October 26, 2026.
- [EBRP Tax Roll](https://data.brla.gov/d/myfc-nh6n): the latest tax year's special assessment levels.  Last updated on January 20, 2026.

All three are published by the City of Baton Rouge and Parish of East Baton Rouge on data.brla.gov and marked Public Domain.  The parcel table was last refreshed on April 29, 2026, so a weekly monitor is plenty.  Every record carries `source`, `sourceUrl`, and `recordUrl` so you can trace it back.

HTTP reads have at most three attempts within 25 seconds, including backoff.  Each required reference table has a 45-second deadline within a shared 90-second reference budget.  Missing reference data fails the run rather than inventing owner flags.  Each parcel page has its own 25-second fetch deadline, and parcels use the full run watchdog: the Actor stops scheduling new pages after about 240 seconds.  A 100-lead search (~31 seconds) finishes inside that window; a whole-parcel-table ZIP search (~4 minutes) needs `ACTOR_FETCH_BUDGET_SECONDS` raised to at least 300 to finish.  If a later parcel page fails after leads were delivered, the run succeeds with a partial-results warning and keeps those leads.  Per-source progress is logged.  If the platform moves a run to another server, it resumes where it stopped and never delivers or charges a parcel twice.

### Is it legal to use this data?

The Actor reads public records that the parish publishes for anyone to view or download.  The data is provided as is, without any guarantee that it is complete, current, or accurate.  The flags are worked out from the published fields, so an owner who gets mail at a different address than the property they live in will show as absent.  It is not a title search or legal advice, so confirm anything important with the East Baton Rouge Parish Assessor before you buy or contact anyone.  This Actor is an independent tool and is not affiliated with or endorsed by the parish or the city.

Owner names and mailing addresses 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, 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 the parish portal?**  No.  Every source is public and needs no login.

**Why is `absenteeOwner` null for some parcels?**  The parish lists no street for the property or for the owner, so there is nothing to compare.  Most of these are vacant lots.  Search with `"flags": ["vacantLot"]` to see them.

**Does the Actor include phone numbers or emails?**  No.  The parish publishes only names and mailing addresses.

**Why does an owner in Baton Rouge show as absentee?**  They mail their tax bill to a different address in the parish, which usually means a rental or a second property.  Add `outOfStateOwner` to get only owners outside Louisiana.

### Related Actors

- [Louisiana Building Permits (Baton Rouge, NOLA)](https://apify.com/maniginam/louisiana-building-permits): Baton Rouge and New Orleans building permits.
- [Louisiana Distressed Property & Sheriff Sale Leads](https://apify.com/maniginam/louisiana-distressed-property-leads): sheriff sales, blight, and tax-adjudicated property leads in Louisiana.
- [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/east-baton-rouge-absentee-owner-leads/changelog.md

# Actor input Schema

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

When on, the Actor remembers every parcel it delivered for this exact search and outputs only parcels it has not delivered before, or whose owner name or mailing address changed since.  Unchanged parcels are skipped and not charged.  Use it with a daily or weekly schedule to catch sales and new absentee owners.

## `flags` (type: `array`):

Deliver only parcels that have every flag chosen here.  Absentee owner is the default.  Clear the list to deliver every parcel in the parish.

## `excludeFlags` (type: `array`):

Skip parcels that have any flag chosen here, for example corporate owners or homesteads.

## `zipCodes` (type: `array`):

Five-digit ZIP codes of the property, not of the owner.  Parcels whose ZIP the parish address book does not list are skipped when this is set.  Leave empty for the whole parish.

## `minAssessedValue` (type: `integer`):

Lowest total assessed value, in dollars, inclusive.  Louisiana assesses homes at 10% of market value, so $15,000 assessed is about a $150,000 home.

## `maxAssessedValue` (type: `integer`):

Highest total assessed value, in dollars, inclusive.

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

Upper limit on parcels delivered by this run, highest assessment number first.  Each delivered parcel is charged as one owner-lead-record event.

## Actor input object example

```json
{
  "onlyNewOrChanged": false,
  "flags": [
    "absenteeOwner"
  ],
  "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 = {
    "flags": [
        "absenteeOwner"
    ],
    "maxResults": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("maniginam/east-baton-rouge-absentee-owner-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 = {
    "flags": ["absenteeOwner"],
    "maxResults": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("maniginam/east-baton-rouge-absentee-owner-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 '{
  "flags": [
    "absenteeOwner"
  ],
  "maxResults": 100
}' |
apify call maniginam/east-baton-rouge-absentee-owner-leads --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,maniginam/east-baton-rouge-absentee-owner-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/pd0Kil9b9SCiZ3quc/builds/Mu2Crr4XpgK5h4SjZ/openapi.json
