# Probate & Foreclosure Leads Scraper (`jungle_synthesizer/probate-foreclosure-leads-scraper`) Actor

Aggregate distressed-property events across US open-data portals: probate, foreclosure, sheriff sale, tax lien, tax sale. Unified schema with case numbers, addresses, parties, sale dates, and amounts.

- **URL**: https://apify.com/jungle\_synthesizer/probate-foreclosure-leads-scraper.md
- **Developed by:** [BowTiedRaccoon](https://apify.com/jungle_synthesizer) (community)
- **Categories:** Real estate, Lead generation, Business
- **Stats:** 4 total users, 3 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## US Probate & Foreclosure Leads Scraper

Aggregate distressed-property events from US government open-data portals. Returns probate filings, foreclosure notices, sheriff sales, tax liens, and tax sales in one unified schema — sourced from the [Socrata Open Data network](https://api.us.socrata.com/api/catalog/v1) that powers dozens of county and state data sites.

---

### Probate & Foreclosure Leads Scraper Features

- Aggregates five distinct distressed-property event types into one schema
- Pulls from dozens of county and state open-data portals, no scraping per county
- Normalizes heterogeneous source fields into a single output record — NOLA sheriff sales, NYC tax liens, King County foreclosures, and others line up automatically
- Filters by state, county, event type, date range, owner-occupancy, and minimum estimated equity
- Returns the raw source row alongside the normalized record, so nothing is lost in translation
- Pure JSON API — no browser, no proxies, no captcha

---

### Who Uses Probate & Foreclosure Data?

- **Real estate investors** — Feed distressed-property leads into direct-mail campaigns and CRM pipelines
- **Wholesalers** — Find motivated sellers before they hit the MLS; the early bird gets the cash deal
- **Title companies** — Track lis pendens, sheriff sales, and tax-lien filings by county
- **Estate and probate attorneys** — Monitor new probate records for estate-administration outreach
- **PropTech analytics** — Build distressed-property scoring models from a unified, geocoded event feed

---

### How Probate & Foreclosure Leads Scraper Works

1. Discovers datasets by querying the cross-portal Socrata Discovery API with keywords like "foreclosure", "lis pendens", "tax lien", and "sheriff sale".
2. Classifies each matching dataset as probate, foreclosure, sheriff sale, tax lien, or tax sale using title and description keywords.
3. Pages through each dataset's SODA API with `$limit` / `$offset` until the record cap is reached.
4. Normalizes the raw rows into a unified schema — field names like `defendant`, `propertyaddress`, `saledate` get mapped to canonical fields so you do not have to write 30 portal-specific parsers yourself.

---

### Input

```json
{
    "eventTypes": ["foreclosure", "sheriff_sale", "tax_lien"],
    "states": ["LA", "NY"],
    "maxItems": 500,
    "sp_intended_usage": "Lead gen for distressed-property direct mail",
    "sp_improvement_suggestions": ""
}
````

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `eventTypes` | array | `[]` (all) | One or more of `probate`, `foreclosure`, `sheriff_sale`, `tax_lien`, `tax_sale`. |
| `states` | array | `[]` (all) | US two-letter state codes. Filters source portals by their geographic scope. |
| `counties` | array | `[]` (all) | County names like `King`, `Cook`, `Orleans`. Case-insensitive. |
| `dateFrom` | string | `""` | ISO date (`YYYY-MM-DD`). Keeps records with `sale_date` or `filing_date` on/after this date. |
| `dateTo` | string | `""` | ISO date. Keeps records with `sale_date` or `filing_date` on/before this date. |
| `minEstimatedEquity` | integer | `0` | Drops records where `estimated_value - mortgage_balance` is below this USD amount. `0` disables the filter. |
| `onlyOwnerOccupied` | boolean | `false` | When true, drops records where owner-occupancy cannot be verified from the source data. |
| `maxItems` | integer | `100` | Hard cap on records returned, counted across all datasets. |
| `proxyConfiguration` | object | Apify proxy off | Socrata endpoints are open APIs and do not need proxies. Leave defaults. |

#### State-filtered example

```json
{
    "eventTypes": ["tax_lien"],
    "states": ["NY"],
    "maxItems": 1000,
    "sp_intended_usage": "Tax lien investor research",
    "sp_improvement_suggestions": ""
}
```

***

### Probate & Foreclosure Leads Scraper Output Fields

```json
{
    "event_id": "data.nola.gov:d52w-8nva:2012-5883",
    "event_type": "sheriff_sale",
    "source_url": "https://data.nola.gov/d/d52w-8nva",
    "dataset_name": "Sheriff Sales - Lien Foreclosures",
    "domain": "data.nola.gov",
    "county": "Orleans",
    "state": "LA",
    "filing_date": null,
    "sale_date": null,
    "case_number": "2012-5883",
    "decedent_name": null,
    "executor_name": null,
    "attorney_name": null,
    "defendant_name": "GREGORY DELORIMIER",
    "plaintiff_name": "CITY OF NEW ORLEANS",
    "property_address": "5300 LAFAYE STREET",
    "property_address_normalized": "5300 LAFAYE STREET",
    "parcel_apn": null,
    "property_type": null,
    "estimated_value_usd": null,
    "mortgage_balance_usd": null,
    "lien_amount_usd": null,
    "opening_bid_usd": null,
    "winning_bid_usd": 0,
    "owner_occupied": null,
    "property_equity_estimate_usd": null,
    "status": "Pending",
    "lat": null,
    "lng": null,
    "raw_source_fields": "{\"cdccasenumber\":\"2012-5883\",\"defendant\":\"GREGORY DELORIMIER\",...}"
}
```

| Field | Type | Description |
|-------|------|-------------|
| `event_id` | string | Stable per-event identifier: `<domain>:<dataset_id>:<case_number_or_parcel>`. |
| `event_type` | string | One of `probate`, `foreclosure`, `sheriff_sale`, `tax_lien`, `tax_sale`. |
| `source_url` | string | Permalink to the underlying open-data dataset. |
| `dataset_name` | string | Name of the Socrata dataset this record came from. |
| `domain` | string | Source portal domain, e.g. `data.nola.gov`. |
| `county` | string|null | County name inferred from the portal domain. Null for state-level portals. |
| `state` | string | US two-letter state code. |
| `filing_date` | string|null | Filing, recording, or notice date — whichever the source provides. |
| `sale_date` | string|null | Scheduled or completed sale/auction date. |
| `case_number` | string|null | Court case or docket number. |
| `decedent_name` | string|null | Decedent name (probate records). |
| `executor_name` | string|null | Executor, administrator, or personal representative (probate). |
| `attorney_name` | string|null | Filing attorney name when present. |
| `defendant_name` | string|null | Defendant, debtor, owner, or mortgagor name. |
| `plaintiff_name` | string|null | Plaintiff, creditor, lender, or mortgagee name. |
| `property_address` | string|null | Street address as it appears in the source dataset. |
| `property_address_normalized` | string|null | Uppercased trimmed version of `property_address` for matching. |
| `parcel_apn` | string|null | Assessor parcel number or equivalent identifier. |
| `property_type` | string|null | Property-use or building-class code from the source. |
| `estimated_value_usd` | number|null | Assessed or estimated market value when the source provides it. |
| `mortgage_balance_usd` | number|null | Outstanding mortgage or judgment balance. |
| `lien_amount_usd` | number|null | Lien amount or tax owed. |
| `opening_bid_usd` | number|null | Opening, minimum, or upset bid at auction. |
| `winning_bid_usd` | number|null | Winning or final sale amount. |
| `owner_occupied` | boolean|null | True when the source marks the property owner-occupied or homestead. |
| `property_equity_estimate_usd` | number|null | `estimated_value_usd - mortgage_balance_usd`, null if either is missing. |
| `status` | string|null | Status string such as Pending, Sold, or Redeemed. |
| `lat` | number|null | Latitude when geocoded in the source. |
| `lng` | number|null | Longitude when geocoded in the source. |
| `raw_source_fields` | string | Original source row, JSON-encoded — preserves any fields not covered by the unified schema. |

Field population varies by portal. NOLA sheriff sales include case numbers, parties, and addresses; NYC tax liens include borough/block/lot but not names; King County lists parcel IDs only. The `raw_source_fields` column is always populated, so nothing the source exposes is lost.

***

### FAQ

#### How do I scrape probate and foreclosure records in the US?

Probate & Foreclosure Leads Scraper queries the Socrata Open Data network — the same backend used by `data.cityofnewyork.us`, `data.nola.gov`, `datacatalog.cookcountyil.gov`, and dozens of other county and state portals. It classifies matching datasets by keyword, pages through each one, and normalizes the heterogeneous columns into a single distressed-property schema.

#### How much does Probate & Foreclosure Leads Scraper cost to run?

Probate & Foreclosure Leads Scraper uses pay-per-event pricing: $0.10 per run plus $0.001 per record returned. A 100-record run costs $0.20. A 5,000-record county sweep costs $5.10.

#### What data can I get from this scraper?

Probate & Foreclosure Leads Scraper returns up to 30 normalized fields per record — case numbers, defendant and plaintiff names, property addresses, parcel IDs, sale dates, bid amounts, property types, and owner-occupancy flags. The exact field population depends on what each source dataset publishes. The raw source row is always included so you can dig deeper when the source has fields we did not normalize.

#### Does this scraper need proxies?

Probate & Foreclosure Leads Scraper does not need proxies. Socrata open-data APIs are public, unauthenticated, and do not rate-limit casually. Leaving the proxy configuration at its defaults is the right call.

#### Can I filter by state or event type?

Yes. Set `states` to one or more two-letter state codes to restrict the source portals that get queried. Set `eventTypes` to any subset of `probate`, `foreclosure`, `sheriff_sale`, `tax_lien`, `tax_sale`. Combine with `counties`, `dateFrom`/`dateTo`, and `minEstimatedEquity` to narrow the feed further.

#### Which counties does it cover?

Coverage follows the Socrata Open Data network. That means major counties and cities — NYC (New York), King (WA), Cook (IL), Orleans (LA), Prince George's (MD), Riverside (CA), Howard (MD), Montgomery (MD), Sonoma (CA), Middlesex (MA), and others — plus state-level portals for CT, NY, NJ, MD, CO, OR, IA, and WA. Coverage expands as counties publish new datasets; the scraper picks them up automatically on the next run.

***

### Need More Features?

Need custom fields, a specific county portal, or an enrichment add-on like value/equity estimates? [File an issue](https://console.apify.com/actors/issues) or get in touch.

### Why Use Probate & Foreclosure Leads Scraper?

- **Five event types, one schema** — Probate, foreclosure, sheriff sale, tax lien, and tax sale records land in the same 30-field record shape. No separate parsers, no reconciliation pipeline.
- **National reach without per-county scrapers** — Adding a new county means the source portal joined Socrata; you do not rebuild anything. That is the whole point of picking an open-data backbone over scraping 500 court websites one at a time.
- **Affordable** — $0.001 per record. A full state-wide sweep is a rounding error in a direct-mail budget.

# Actor input Schema

## `sp_intended_usage` (type: `string`):

Please describe how you plan to use the data extracted by this crawler.

## `sp_improvement_suggestions` (type: `string`):

Provide any feedback or suggestions for improvements.

## `sp_contact` (type: `string`):

Provide your email address so we can get in touch with you.

## `eventTypes` (type: `array`):

Select one or more distressed-property event types. Defaults to all five.

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

Restrict results to these US states (two-letter codes). Empty = all.

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

Restrict to specific counties by name (e.g. 'King', 'Cook', 'Orleans'). Case-insensitive. Empty = all.

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

Filter events with sale\_date or filing\_date on/after this date.

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

Filter events with sale\_date or filing\_date on/before this date.

## `minEstimatedEquity` (type: `integer`):

Only include records whose estimated\_value - mortgage\_balance >= this value. 0 disables.

## `onlyOwnerOccupied` (type: `boolean`):

If true, drop records where owner-occupied cannot be verified.

## `maxItems` (type: `integer`):

Maximum number of distressed-property records to return across all datasets.

## `proxyConfiguration` (type: `object`):

Socrata open-data APIs do not require proxies. Leave defaults unless your network blocks outbound HTTPS.

## Actor input object example

```json
{
  "sp_intended_usage": "Describe your intended use...",
  "sp_improvement_suggestions": "Share your suggestions here...",
  "sp_contact": "Share your email here...",
  "eventTypes": [],
  "states": [],
  "counties": [],
  "minEstimatedEquity": 0,
  "maxItems": 100,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# 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 = {
    "sp_intended_usage": "Describe your intended use...",
    "sp_improvement_suggestions": "Share your suggestions here...",
    "sp_contact": "Share your email here...",
    "eventTypes": [],
    "states": [],
    "counties": [],
    "dateFrom": "",
    "dateTo": "",
    "minEstimatedEquity": 0,
    "onlyOwnerOccupied": false,
    "maxItems": 100,
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("jungle_synthesizer/probate-foreclosure-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 = {
    "sp_intended_usage": "Describe your intended use...",
    "sp_improvement_suggestions": "Share your suggestions here...",
    "sp_contact": "Share your email here...",
    "eventTypes": [],
    "states": [],
    "counties": [],
    "dateFrom": "",
    "dateTo": "",
    "minEstimatedEquity": 0,
    "onlyOwnerOccupied": False,
    "maxItems": 100,
    "proxyConfiguration": { "useApifyProxy": False },
}

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

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

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

```

## CLI example

```bash
echo '{
  "sp_intended_usage": "Describe your intended use...",
  "sp_improvement_suggestions": "Share your suggestions here...",
  "sp_contact": "Share your email here...",
  "eventTypes": [],
  "states": [],
  "counties": [],
  "dateFrom": "",
  "dateTo": "",
  "minEstimatedEquity": 0,
  "onlyOwnerOccupied": false,
  "maxItems": 100,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call jungle_synthesizer/probate-foreclosure-leads-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=jungle_synthesizer/probate-foreclosure-leads-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Probate & Foreclosure Leads Scraper",
        "description": "Aggregate distressed-property events across US open-data portals: probate, foreclosure, sheriff sale, tax lien, tax sale. Unified schema with case numbers, addresses, parties, sale dates, and amounts.",
        "version": "1.0",
        "x-build-id": "WmSXq8IKnbmMCHxEe"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/jungle_synthesizer~probate-foreclosure-leads-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-jungle_synthesizer-probate-foreclosure-leads-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/jungle_synthesizer~probate-foreclosure-leads-scraper/runs": {
            "post": {
                "operationId": "runs-sync-jungle_synthesizer-probate-foreclosure-leads-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/jungle_synthesizer~probate-foreclosure-leads-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-jungle_synthesizer-probate-foreclosure-leads-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "sp_intended_usage",
                    "sp_improvement_suggestions"
                ],
                "properties": {
                    "sp_intended_usage": {
                        "title": "What is the intended usage of this data?",
                        "minLength": 1,
                        "type": "string",
                        "description": "Please describe how you plan to use the data extracted by this crawler."
                    },
                    "sp_improvement_suggestions": {
                        "title": "How can we improve this crawler for you?",
                        "minLength": 1,
                        "type": "string",
                        "description": "Provide any feedback or suggestions for improvements."
                    },
                    "sp_contact": {
                        "title": "Contact Email",
                        "minLength": 1,
                        "type": "string",
                        "description": "Provide your email address so we can get in touch with you."
                    },
                    "eventTypes": {
                        "title": "Event Types",
                        "type": "array",
                        "description": "Select one or more distressed-property event types. Defaults to all five.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "probate",
                                "foreclosure",
                                "sheriff_sale",
                                "tax_lien",
                                "tax_sale"
                            ],
                            "enumTitles": [
                                "Probate",
                                "Foreclosure",
                                "Sheriff Sale",
                                "Tax Lien",
                                "Tax Sale"
                            ]
                        }
                    },
                    "states": {
                        "title": "States",
                        "type": "array",
                        "description": "Restrict results to these US states (two-letter codes). Empty = all.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "AL",
                                "AK",
                                "AZ",
                                "AR",
                                "CA",
                                "CO",
                                "CT",
                                "DE",
                                "DC",
                                "FL",
                                "GA",
                                "HI",
                                "ID",
                                "IL",
                                "IN",
                                "IA",
                                "KS",
                                "KY",
                                "LA",
                                "ME",
                                "MD",
                                "MA",
                                "MI",
                                "MN",
                                "MS",
                                "MO",
                                "MT",
                                "NE",
                                "NV",
                                "NH",
                                "NJ",
                                "NM",
                                "NY",
                                "NC",
                                "ND",
                                "OH",
                                "OK",
                                "OR",
                                "PA",
                                "RI",
                                "SC",
                                "SD",
                                "TN",
                                "TX",
                                "UT",
                                "VT",
                                "VA",
                                "WA",
                                "WV",
                                "WI",
                                "WY"
                            ],
                            "enumTitles": [
                                "Alabama",
                                "Alaska",
                                "Arizona",
                                "Arkansas",
                                "California",
                                "Colorado",
                                "Connecticut",
                                "Delaware",
                                "District of Columbia",
                                "Florida",
                                "Georgia",
                                "Hawaii",
                                "Idaho",
                                "Illinois",
                                "Indiana",
                                "Iowa",
                                "Kansas",
                                "Kentucky",
                                "Louisiana",
                                "Maine",
                                "Maryland",
                                "Massachusetts",
                                "Michigan",
                                "Minnesota",
                                "Mississippi",
                                "Missouri",
                                "Montana",
                                "Nebraska",
                                "Nevada",
                                "New Hampshire",
                                "New Jersey",
                                "New Mexico",
                                "New York",
                                "North Carolina",
                                "North Dakota",
                                "Ohio",
                                "Oklahoma",
                                "Oregon",
                                "Pennsylvania",
                                "Rhode Island",
                                "South Carolina",
                                "South Dakota",
                                "Tennessee",
                                "Texas",
                                "Utah",
                                "Vermont",
                                "Virginia",
                                "Washington",
                                "West Virginia",
                                "Wisconsin",
                                "Wyoming"
                            ]
                        }
                    },
                    "counties": {
                        "title": "Counties",
                        "type": "array",
                        "description": "Restrict to specific counties by name (e.g. 'King', 'Cook', 'Orleans'). Case-insensitive. Empty = all.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "dateFrom": {
                        "title": "Date From (YYYY-MM-DD)",
                        "type": "string",
                        "description": "Filter events with sale_date or filing_date on/after this date."
                    },
                    "dateTo": {
                        "title": "Date To (YYYY-MM-DD)",
                        "type": "string",
                        "description": "Filter events with sale_date or filing_date on/before this date."
                    },
                    "minEstimatedEquity": {
                        "title": "Min Estimated Equity (USD)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Only include records whose estimated_value - mortgage_balance >= this value. 0 disables.",
                        "default": 0
                    },
                    "onlyOwnerOccupied": {
                        "title": "Only Owner-Occupied",
                        "type": "boolean",
                        "description": "If true, drop records where owner-occupied cannot be verified."
                    },
                    "maxItems": {
                        "title": "Max Items",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of distressed-property records to return across all datasets.",
                        "default": 100
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Socrata open-data APIs do not require proxies. Leave defaults unless your network blocks outbound HTTPS."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
