# Foreclosure & Auction Finder — Deals + Zillow Valuation (`sian.agency/distressed-deal-finder`) Actor

Scrape US foreclosure, REO and bank-owned auction listings and fuse each one with instant home valuation, rent estimate, comparable sales and neighborhood, school and demographic data. Filter by location, ZIP, coordinates or URL and pull the live auction calendar. Export to JSON, CSV or Excel.

- **URL**: https://apify.com/sian.agency/distressed-deal-finder.md
- **Developed by:** [SIÁN OÜ](https://apify.com/sian.agency) (community)
- **Categories:** Automation, Lead generation, Real estate
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

from $9.00 / 1,000 distressed deal (fused)s

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/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

## Foreclosure & Auction Finder — Deals + Home Valuation 🏚️

[![SIÁN Agency Store](https://img.shields.io/badge/Store-SI%C3%81N%20Agency-1AE392)](https://apify.com/sian.agency?fpr=sian) [![Property Skip Tracing](https://img.shields.io/badge/Store-Property%20Skip%20Tracing-1AE392)](https://apify.com/sian.agency/property-skip-tracing?fpr=sian) [![Sold Prices Forensics](https://img.shields.io/badge/Store-Sold%20Prices%20Forensics-1F4E79)](https://apify.com/sian.agency/sold-prices-forensics-scraper?fpr=sian) [![Zillow Market Analytics](https://img.shields.io/badge/Store-Zillow%20Market%20Analytics-1F4E79)](https://apify.com/sian.agency/zillow-market-analytics-scraper?fpr=sian)

#### 🎉 The only finder that fuses live foreclosure & auction inventory with instant home valuation and neighborhood data — one row, not three tabs
##### Built for US flippers, wholesalers, REO/foreclosure investors and lead-gen teams

---

### 📋 Overview

**Stop running three tools and joining spreadsheets by hand.** Foreclosure & Auction Finder pulls live foreclosure, REO and bank-owned auction listings and fuses each one with an instant home value, a rent estimate, comparable sales and neighborhood, school and demographic data — in a single dataset row.

**Why distressed-property investors choose us:**
- ✅ **One fused row, not three**: distress status + auction date/venue + home valuation + neighborhood — the join no competitor offers.
- ⚡ **Live auction calendar**: know exactly *when and where* each foreclosure or REO sells before you commit.
- 🎯 **Deal math built in**: every property carries an equity gap (estimated value − starting bid), bid-to-value ratio and gross rent yield.
- 💰 **Best-effort enrichment**: a missing valuation never fails the run — you always get your distressed inventory.
- 💎 **Flexible discovery**: search by location, ZIP, coordinates or URL, plus raw auction-calendar operations.
- ✨ **Export anywhere**: JSON, CSV or Excel, straight from the Apify dataset.

---

### ✨ Features

- 🏚️ **Distressed inventory search**: foreclosure, REO and bank-owned auction listings by location, ZIP, coordinates or URL.
- 🗓️ **Auction calendar**: pull scheduled auction events by state and asset type — date, venue, asset count.
- 🎯 **Single auction event**: drill into one event and list every property attached to it.
- 💰 **Instant valuation**: estimated home value, rent estimate and comparable nearby sales per property.
- 📈 **Deal fields**: equity gap, bid-to-value ratio and gross rent-yield-vs-bid computed automatically.
- 🏘️ **Neighborhood intel**: assigned and nearby school ratings, demographics and local amenities.
- 🏦 **Distress context**: starting bid, auction start/end, online vs trustee venue, occupancy status.
- 📤 **Clean export**: structured JSON/CSV/Excel with a curated "Distressed deals" dataset view.

---

### 🎬 Quick Start

Pick an operation, choose how to search, and run. In under a minute you have a distressed-deal dataset with valuation and neighborhood context attached.

```bash
curl -X POST "https://api.apify.com/v2/acts/sian.agency~distressed-deal-finder/runs?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"operation":"search","searchMode":"location","location":"Dallas, TX","maxResults":50}'
````

***

### 🚀 Getting Started (3 Simple Steps)

#### Step 1: Choose what to pull

Set `operation` to `search` (distressed inventory, fused), `calendar` (the auction calendar) or `calendarEvent` (one event + its properties).

#### Step 2: Tell it where to look

For search, pick a `searchMode` and provide a `location`, `zipCode`, `latitude`/`longitude` or `url`. For the calendar, set a `state` and `assetType`.

#### Step 3: Run and export

Launch the run and export the dataset to JSON, CSV or Excel.

**That's it! In about a minute, you'll have:**

- A list of distressed/auction properties for your target market
- A home value, rent estimate, comps and equity gap on each one
- School ratings, demographics and amenities per neighborhood

***

### 📥 Input Configuration

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| operation | string | No | `search`, `calendar` or `calendarEvent` (default `search`) |
| searchMode | string | No | `location`, `zip`, `coordinates` or `url` |
| location | string | No | City/area text, e.g. "Dallas, TX" (blank = nationwide) |
| zipCode | string | No | 5-digit US ZIP (searchMode = zip) |
| latitude / longitude | string | No | Coordinates (searchMode = coordinates) |
| radius | string | No | Radius in miles around coordinates |
| url | string | No | Auction browse/property URL (searchMode = url) |
| sort | string | No | auction\_date, newest, oldest, price\_low, price\_high, distance |
| state / assetType | string | No | Calendar filters (2-letter state; foreclosure / bank-owned) |
| eventId | string | No | Event code or venue id (operation = calendarEvent) |
| enrichValuation | boolean | No | Add valuation to each listing (paid tier) |
| enrichNeighborhood | boolean | No | Add neighborhood data to each listing (paid tier) |
| maxResults | integer | No | Max rows per run (FREE capped at 25) |

**Example:**

```json
{
  "operation": "search",
  "searchMode": "zip",
  "zipCode": "75217",
  "enrichValuation": true,
  "enrichNeighborhood": true,
  "maxResults": 100
}
```

***

### 📤 Output

Results are saved to the Apify dataset. Each distressed-deal row includes:

| Field | Type | Description |
|-------|------|-------------|
| listingId | string | Auction listing identifier |
| address | object | Street, city, county, state, ZIP |
| distress | object | Asset type (foreclosure/REO/bank-owned), occupancy, venue type |
| auction | object | Starting bid, start/end date, online vs trustee |
| valuation | object | Estimated value, rent estimate, comps, tax & loan context |
| deal | object | Equity gap, bid-to-value ratio, gross rent yield |
| neighborhood | object | School ratings, demographics, local amenities |
| isFusedDeal | boolean | True when a valuation was attached |

**Example:**

```json
{
  "rowType": "distressed-property",
  "listingId": "2093283",
  "address": { "city": "Dallas", "state": "TX", "zipCode": "75217" },
  "distress": { "assetType": "BANK_OWNED", "venueType": "ONLINE" },
  "auction": { "startingBid": 75000, "startDate": "2026-06-14T12:00:00Z" },
  "valuation": { "estimate": 248700, "rentEstimate": 2109, "compsCount": 8, "compsMedianPrice": 220750 },
  "deal": { "equityGapUsd": 173700, "bidToValueRatio": 0.302, "grossRentYieldPct": 33.74 },
  "neighborhood": { "avgSchoolRating": 3.7, "neighborhoodQuality": "medium" },
  "isFusedDeal": true
}
```

***

### 💼 Use Cases & Examples

#### 1. Find under-market foreclosures

**Investors hunting equity in distressed inventory.**

**Input:** A city or ZIP and `enrichValuation: true`
**Output:** Each foreclosure with its estimated value and equity gap at the starting bid
**Use:** Rank a market by built-in equity in minutes.

#### 2. Time deals to the auction calendar

**Flippers who need to be in the room (or online) when a property sells.**

**Input:** `operation: calendar`, a state and an asset type
**Output:** Scheduled auction events with date, venue and asset count
**Use:** Plan the week around the auctions that matter.

#### 3. Screen rental yield on distressed buys

**Buy-and-hold investors sizing cash flow.**

**Input:** A search with valuation enrichment
**Output:** A rent estimate and gross-yield-vs-bid on every property
**Use:** Filter to the highest-yield distressed properties.

#### 4. Vet the neighborhood in one row

**Wholesalers and lead-gen teams qualifying deals fast.**

**Input:** A search with neighborhood enrichment
**Output:** School ratings, demographics and amenities alongside each listing
**Use:** Skip a separate neighborhood lookup entirely.

#### 5. Build distressed-property lead lists

**Lead-gen and outreach teams.**

**Input:** A broad location or statewide calendar pull
**Output:** Foreclosure/REO/bank-owned rows with valuation and neighborhood context
**Use:** Export to CSV/JSON for skip tracing, outreach and CRM import.

***

### 🔗 Integration Examples

#### JavaScript/Node.js

```javascript
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });

const run = await client.actor('sian.agency/distressed-deal-finder').call({
  operation: 'search', searchMode: 'location', location: 'Dallas, TX', maxResults: 50
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0]);
```

#### Python

```python
from apify_client import ApifyClient
client = ApifyClient('YOUR_TOKEN')

run = client.actor('sian.agency/distressed-deal-finder').call(
    run_input={'operation': 'search', 'searchMode': 'zip', 'zipCode': '75217'}
)

for item in client.dataset(run['defaultDatasetId']).iterate_items():
    print(item)
```

#### cURL

```bash
curl -X POST 'https://api.apify.com/v2/acts/sian.agency~distressed-deal-finder/runs?token=YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"operation":"calendar","state":"TX","assetType":"foreclosure"}'
```

#### Automation Workflows (N8N / Zapier / Make)

1. **Trigger**: Schedule (e.g. weekly market sweep) or webhook
2. **HTTP Request**: Call the actor API
3. **Process**: Handle the distressed-deal JSON
4. **Action**: Save to a sheet, alert your team, or push to a CRM

***

### 📊 Performance & Pricing

#### FREE Tier (Try It Now)

- **25 rows** per run — full feature access, same data quality
- No credit card required
- Perfect for testing and small projects

#### PAID Tier (Production Ready)

- **Unlimited** rows per run, with valuation + neighborhood enrichment
- Faster processing, no caps
- Pay-per-event: only charged for the rows you receive

💰 **Priced for the bundle** — one fused row replaces three separate scrapers.

🔗 [View current pricing](https://apify.com/sian.agency/distressed-deal-finder?fpr=sian)

***

### ❓ Frequently Asked Questions

**Q: How many rows can I get?**
A: FREE tier: 25 per run. PAID tier: unlimited.

**Q: What if a property has no valuation match?**
A: Enrichment is best-effort — the distressed listing still ships, with valuation/neighborhood fields left empty.

**Q: Is enrichment available on the FREE tier?**
A: Valuation and neighborhood enrichment are paid-tier features; FREE runs return distressed inventory only.

**Q: What output formats are available?**
A: JSON, CSV and Excel — export directly from the Apify dataset.

**Q: Can I pull the auction calendar on its own?**
A: Yes — set `operation` to `calendar` (by state/asset type) or `calendarEvent` (one event + its properties).

**Q: Is this legal?**
A: Yes — we only extract publicly available data. See the legal section below.

***

### 🐛 Troubleshooting

**No results returned**

- Widen the area (try a city instead of a ZIP) or remove the `availability` filter.
- For coordinates, increase the `radius`.

**Valuation/neighborhood fields are empty**

- Enrichment is paid-tier only and best-effort; some distressed addresses have no public valuation match.

**Calendar returns events with zero assets**

- Many scheduled events are added before properties are attached; try a different state or asset type.

***

### ⚠️ Trademark Disclaimer

This is an independent tool and is **not affiliated with, endorsed by, or sponsored by** Auction.com, LLC, Zillow Group, Inc., or Trulia, LLC. "Auction.com", "Zillow", "Zestimate", and "Trulia" are trademarks of their respective owners. All product names, logos and brands are property of their respective owners and are used for identification purposes only. This tool accesses only publicly available data.

***

### ⚖️ Is it legal to scrape data?

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

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

You can also read Apify's blog post on the [legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

***

### 🤝 Support

[![Telegram Support](https://img.shields.io/badge/Telegram-Support%20Group-0088cc?logo=telegram)](https://t.me/+vyh1sRE08sAxMGRi)

**Join our active support community**

- For issues or questions, open an issue in the actor's repository
- Check [SIÁN Agency Store](https://apify.com/sian.agency?fpr=sian) for more automation tools
- 📧 <apify@sian-agency.online>

***

**Built by [SIÁN Agency](https://www.sian-agency.online)** | **[More Tools](https://apify.com/sian.agency?fpr=sian)**

# Actor input Schema

## `operation` (type: `string`):

What to pull. 🏚 search = distressed inventory (fused with valuation + neighborhood). 🗓 calendar = the live auction calendar. 🎯 calendarEvent = one auction event and its properties.

## `searchMode` (type: `string`):

How to find distressed inventory (used when operation = search). 📍 location = city/area text · 📮 zip = 5-digit ZIP · 🗺 coordinates = lat/lng (+ radius) · 🔗 url = an auction browse URL.

## `location` (type: `string`):

📍 City / area text, e.g. "Dallas, TX". Leave empty for a nationwide search.

## `zipCode` (type: `string`):

📮 5-digit US ZIP (used when searchMode = zip), e.g. 75217.

## `latitude` (type: `string`):

🗺 Latitude (used when searchMode = coordinates), e.g. 32.7451.

## `longitude` (type: `string`):

🗺 Longitude (used when searchMode = coordinates), e.g. -96.6496.

## `radius` (type: `string`):

🗺 Search radius in miles around the coordinates (optional).

## `url` (type: `string`):

🔗 An auction browse or property URL (used when searchMode = url).

## `sort` (type: `string`):

Sort order for search results.

## `availability` (type: `string`):

Filter listings by availability.

## `state` (type: `string`):

🗓 2-letter US state code for the auction calendar, e.g. TX.

## `assetType` (type: `string`):

🗓 Distressed asset type for the calendar.

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

🗓 Earliest auction date (YYYY-MM-DD) for the calendar.

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

🗓 Latest auction date (YYYY-MM-DD) for the calendar.

## `eventId` (type: `string`):

🎯 Event code (e.g. E-31553A) or numeric venue id (used when operation = calendarEvent).

## `enrichValuation` (type: `boolean`):

💰 Add instant home value, rent estimate and comparable sales to each distressed listing. Paid tier only.

## `enrichNeighborhood` (type: `boolean`):

🏘 Add school ratings, demographics and local amenities to each distressed listing. Paid tier only.

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

Maximum rows per run. FREE runs are capped at 25.

## Actor input object example

```json
{
  "operation": "search",
  "searchMode": "location",
  "location": "Dallas, TX",
  "sort": "auction_date",
  "availability": "active",
  "assetType": "foreclosure",
  "enrichValuation": true,
  "enrichNeighborhood": true,
  "maxResults": 50
}
```

# Actor output Schema

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

Distressed/auction listings fused with valuation and neighborhood data, and auction-calendar events.

## `htmlReport` (type: `string`):

HTML summary with run stats and enrichment counts.

# 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 = {
    "location": "Dallas, TX"
};

// Run the Actor and wait for it to finish
const run = await client.actor("sian.agency/distressed-deal-finder").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 = { "location": "Dallas, TX" }

# Run the Actor and wait for it to finish
run = client.actor("sian.agency/distressed-deal-finder").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 '{
  "location": "Dallas, TX"
}' |
apify call sian.agency/distressed-deal-finder --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=sian.agency/distressed-deal-finder",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Foreclosure & Auction Finder — Deals + Zillow Valuation",
        "description": "Scrape US foreclosure, REO and bank-owned auction listings and fuse each one with instant home valuation, rent estimate, comparable sales and neighborhood, school and demographic data. Filter by location, ZIP, coordinates or URL and pull the live auction calendar. Export to JSON, CSV or Excel.",
        "version": "1.0",
        "x-build-id": "mWUvvtUZzx3lnanKc"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/sian.agency~distressed-deal-finder/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-sian.agency-distressed-deal-finder",
                "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/sian.agency~distressed-deal-finder/runs": {
            "post": {
                "operationId": "runs-sync-sian.agency-distressed-deal-finder",
                "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/sian.agency~distressed-deal-finder/run-sync": {
            "post": {
                "operationId": "run-sync-sian.agency-distressed-deal-finder",
                "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",
                "properties": {
                    "operation": {
                        "title": "Operation",
                        "enum": [
                            "search",
                            "calendar",
                            "calendarEvent"
                        ],
                        "type": "string",
                        "description": "What to pull. 🏚 search = distressed inventory (fused with valuation + neighborhood). 🗓 calendar = the live auction calendar. 🎯 calendarEvent = one auction event and its properties.",
                        "default": "search"
                    },
                    "searchMode": {
                        "title": "Search mode",
                        "enum": [
                            "location",
                            "zip",
                            "coordinates",
                            "url"
                        ],
                        "type": "string",
                        "description": "How to find distressed inventory (used when operation = search). 📍 location = city/area text · 📮 zip = 5-digit ZIP · 🗺 coordinates = lat/lng (+ radius) · 🔗 url = an auction browse URL.",
                        "default": "location"
                    },
                    "location": {
                        "title": "Location",
                        "type": "string",
                        "description": "📍 City / area text, e.g. \"Dallas, TX\". Leave empty for a nationwide search."
                    },
                    "zipCode": {
                        "title": "ZIP code",
                        "type": "string",
                        "description": "📮 5-digit US ZIP (used when searchMode = zip), e.g. 75217."
                    },
                    "latitude": {
                        "title": "Latitude",
                        "type": "string",
                        "description": "🗺 Latitude (used when searchMode = coordinates), e.g. 32.7451."
                    },
                    "longitude": {
                        "title": "Longitude",
                        "type": "string",
                        "description": "🗺 Longitude (used when searchMode = coordinates), e.g. -96.6496."
                    },
                    "radius": {
                        "title": "Radius (miles)",
                        "type": "string",
                        "description": "🗺 Search radius in miles around the coordinates (optional)."
                    },
                    "url": {
                        "title": "Auction URL",
                        "type": "string",
                        "description": "🔗 An auction browse or property URL (used when searchMode = url)."
                    },
                    "sort": {
                        "title": "Sort",
                        "enum": [
                            "auction_date",
                            "newest",
                            "oldest",
                            "price_low",
                            "price_high",
                            "distance"
                        ],
                        "type": "string",
                        "description": "Sort order for search results.",
                        "default": "auction_date"
                    },
                    "availability": {
                        "title": "Availability",
                        "enum": [
                            "active",
                            "removed"
                        ],
                        "type": "string",
                        "description": "Filter listings by availability.",
                        "default": "active"
                    },
                    "state": {
                        "title": "State (calendar)",
                        "type": "string",
                        "description": "🗓 2-letter US state code for the auction calendar, e.g. TX."
                    },
                    "assetType": {
                        "title": "Asset type (calendar)",
                        "enum": [
                            "foreclosure",
                            "bank-owned"
                        ],
                        "type": "string",
                        "description": "🗓 Distressed asset type for the calendar.",
                        "default": "foreclosure"
                    },
                    "dateFrom": {
                        "title": "Date from (calendar)",
                        "type": "string",
                        "description": "🗓 Earliest auction date (YYYY-MM-DD) for the calendar."
                    },
                    "dateTo": {
                        "title": "Date to (calendar)",
                        "type": "string",
                        "description": "🗓 Latest auction date (YYYY-MM-DD) for the calendar."
                    },
                    "eventId": {
                        "title": "Event ID (single event)",
                        "type": "string",
                        "description": "🎯 Event code (e.g. E-31553A) or numeric venue id (used when operation = calendarEvent)."
                    },
                    "enrichValuation": {
                        "title": "Enrich with home valuation",
                        "type": "boolean",
                        "description": "💰 Add instant home value, rent estimate and comparable sales to each distressed listing. Paid tier only.",
                        "default": true
                    },
                    "enrichNeighborhood": {
                        "title": "Enrich with neighborhood data",
                        "type": "boolean",
                        "description": "🏘 Add school ratings, demographics and local amenities to each distressed listing. Paid tier only.",
                        "default": true
                    },
                    "maxResults": {
                        "title": "Max results",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Maximum rows per run. FREE runs are capped at 25.",
                        "default": 50
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
