# Realtor.com $0.9💰 Powerful Filters + Deep Search (`abotapi/realtor-com-scraper`) Actor

From $0.9/1K. Extract property listings from realtor.com. Get comprehensive data, including prices, property details, agent contacts, coordinates, photos, and more. Supports for sale, rental, and recently sold listings across all US markets.

- **URL**: https://apify.com/abotapi/realtor-com-scraper.md
- **Developed by:** [AbotAPI](https://apify.com/abotapi) (community)
- **Categories:** Real estate, AI, Developer tools
- **Stats:** 12 total users, 2 monthly users, 100.0% runs succeeded, 2 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $0.90 / 1,000 results

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

## Realtor.com Property Scraper

Extract property listings from **realtor.com**, the largest US real estate listing site with over 100 million monthly visitors. Get comprehensive data including prices, property details, agent contacts, coordinates, photos, and more. Supports for sale, rental, and recently sold listings across all US markets.

### What does Realtor.com Scraper do?

This Actor collects property listings from realtor.com for any US city or neighborhood. It extracts up to 200 listings per request and supports all listing types, property types, and search filters. Results are delivered in structured JSON format, ready for analysis or integration into your applications.

#### Key Features

| Feature | Description |
|---------|-------------|
| **Search Any US Location** | Enter a city and state to scrape properties in any market |
| **All Listing Types** | For Sale, For Rent, and Recently Sold properties |
| **Property Type Filters** | Single Family, Condo, Townhome, Multi Family, Mobile, Farm, Land |
| **Price and Room Filters** | Narrow results by price range, bedrooms, and bathrooms |
| **200 Listings Per Page** | High speed extraction with up to 200 properties per request |
| **Rental Data** | Building names, pet policies, individual unit details with prices |
| **Sold Data** | Sold price and sold date for recently sold listings |
| **Agent and Brokerage Data** | Contact details for listing agents and offices |
| **Photos and Virtual Tours** | Property images, 3D Matterport tours, and Google Street View links |
| **GPS Coordinates** | Latitude and longitude for mapping and geospatial analysis |
| **MLS Data** | MLS ID, MLS name, and source information |
| **Resume Support** | Checkpoint based resume for large scale scrapes |

### What data can you extract?

The scraper extracts 40+ fields per listing:

<table>
<tr><td>

**Property Details**
- Property ID and listing URL
- Full address (street, city, state, zip, county)
- Latitude and longitude
- Property type (single family, condo, apartment, etc.)
- Bedrooms, bathrooms, sqft, lot sqft
- Year built and garage spaces
- Listing status and date

</td><td>

**Pricing**
- List price (for sale and sold)
- Price range min/max (rentals)
- Formatted display price
- Price reduced amount
- Sold price and sold date

</td></tr>
<tr><td>

**Listing Flags**
- New listing
- Price reduced
- Foreclosure
- New construction
- Pending / Contingent
- Coming soon
- Auction

</td><td>

**Agent and Brokerage**
- Agent name, email, phone
- Agent type (seller, management)
- Office and brokerage name
- MLS ID, MLS name, source type

</td></tr>
<tr><td>

**Media and Location**
- Up to 10 property photos (large format)
- Total photo count
- Virtual tour and 3D Matterport tour links
- Google Street View URL
- County FIPS code

</td><td>

**Rental Specific**
- Building and community name
- Pet policy (cats, dogs, small/large)
- Individual units with beds, baths, sqft, price, availability

</td></tr>
</table>

### How to use Realtor.com Scraper

#### Step 1: Choose your search mode

**Search by Location** (best for market research)
```json
{
  "mode": "location",
  "locations": [
    { "city": "Portland", "state": "OR" },
    { "city": "Seattle", "state": "WA" }
  ],
  "listingType": "for_sale"
}
````

**Direct URLs** (best for specific searches with custom filters)

```json
{
  "mode": "url",
  "urls": [
    "https://www.realtor.com/realestateandhomes-search/Portland_OR/type-single-family-home/beds-3",
    "https://www.realtor.com/apartments/Seattle_WA/beds-2"
  ]
}
```

#### Step 2: Add filters (optional)

```json
{
  "mode": "location",
  "locations": [{ "city": "Denver", "state": "CO" }],
  "listingType": "for_sale",
  "propertyType": "single_family",
  "bedsMin": 3,
  "bathsMin": 2,
  "priceMin": 400000,
  "priceMax": 800000
}
```

#### Step 3: Scrape rentals

```json
{
  "mode": "location",
  "locations": [{ "city": "Austin", "state": "TX" }],
  "listingType": "for_rent",
  "bedsMin": 2,
  "priceMin": 1000,
  "priceMax": 2500
}
```

#### Step 4: Scrape sold properties

```json
{
  "mode": "location",
  "locations": [{ "city": "San Francisco", "state": "CA" }],
  "listingType": "sold",
  "propertyType": "condo"
}
```

### Input Parameters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `mode` | string | `location` | Search mode: `location` or `url` |
| `locations` | object\[] | | Cities to search. Each has `city` (string) and `state` (2 letter code) |
| `urls` | string\[] | | Full realtor.com search URLs (for `url` mode) |
| `listingType` | string | `for_sale` | `for_sale`, `for_rent`, or `sold` |
| `propertyType` | string | `any` | `any`, `single_family`, `condo`, `townhome`, `multi_family`, `mobile`, `farm`, `land` |
| `bedsMin` | integer | | Minimum bedrooms (1 to 5) |
| `bathsMin` | integer | | Minimum bathrooms (1 to 5) |
| `priceMin` | integer | | Minimum price (USD) |
| `priceMax` | integer | | Maximum price (USD) |
| `openHouseOnly` | boolean | `false` | Only listings with open houses (for sale only) |
| `newConstructionOnly` | boolean | `false` | Only new construction (for sale and sold only) |
| `maxListings` | integer | `20` | Maximum total listings (0 = unlimited) |
| `maxPages` | integer | `0` | Maximum pages per location (0 = unlimited) |
| `resumeFromCheckpoint` | boolean | `true` | Resume from last checkpoint on restart |

#### Filter Compatibility

| Filter | For Sale | For Rent | Sold |
|--------|----------|----------|------|
| `propertyType` | All types | All types | All types |
| `bedsMin` / `bathsMin` | Yes | Yes | Yes |
| `priceMin` / `priceMax` | Yes | Yes | Yes |
| `openHouseOnly` | Yes | Ignored | Ignored |
| `newConstructionOnly` | Yes | Ignored | Yes |

#### Location Examples

| City | State | What it searches |
|------|-------|------------------|
| `Portland` | `OR` | All of Portland, Oregon |
| `New York` | `NY` | All of New York City |
| `San Francisco` | `CA` | San Francisco, California |
| `Capitol Hill` | `WA` | Capitol Hill neighborhood in Seattle |
| `Orenco` | `OR` | Orenco neighborhood in Hillsboro |

### Send results into your apps (MCP connectors)

Optionally pipe the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. This is an extra delivery step **after** the scrape — the Apify dataset is never changed.

**What gets written to the connector:** a condensed, human-readable **summary** of each record — not the full JSON. Each item becomes one entry with a **title** and its key fields flattened to plain text. The **complete record always stays in the Apify dataset**.

1. Authorize a connector once under **Apify → Settings → Integrations** (Notion, Linear, Airtable, or Apify).
2. Select it in the **"Pipe results into your apps"** input field. (If the picker is empty, you haven't authorized a connector yet.)
3. For **Notion**, also set `notionParentPageUrl` to the page where items should be created.

The connection is mediated by Apify's MCP proxy, so this actor never sees your third-party credentials. Leave the field empty to skip.

### Output Example

#### For Sale

```json
{
  "propertyId": "P100234567",
  "listingId": "L299887766",
  "url": "https://www.realtor.com/realestateandhomes-detail/123-Main-St_Portland_OR_97201_M12345-67890",
  "listingType": "for_sale",
  "status": "for_sale",
  "address": {
    "street": "123 Main St",
    "city": "Portland",
    "state": "Oregon",
    "stateCode": "OR",
    "postalCode": "97201",
    "county": "Multnomah",
    "full": "123 Main St, Portland, OR, 97201"
  },
  "coordinates": {
    "latitude": 45.5231,
    "longitude": -122.6765
  },
  "price": {
    "value": 525000,
    "display": "$525,000"
  },
  "features": {
    "propertyType": "single_family",
    "bedrooms": 3,
    "bathrooms": 2.5,
    "sqft": 1850,
    "lotSqft": 5200,
    "yearBuilt": 2005,
    "garage": 2
  },
  "flags": {
    "isNewListing": true
  },
  "agents": [
    {
      "name": "Jane Smith",
      "email": "jane@example.com",
      "type": "seller",
      "office": "Example Realty Group",
      "phone": "5035551234"
    }
  ],
  "brokerage": "Example Realty Group",
  "mlsId": "MLS12345",
  "mlsName": "RMLS",
  "streetViewUrl": "https://maps.googleapis.com/maps/api/streetview?...",
  "hasMatterport": true,
  "photos": [
    "https://ap.rdcpix.com/example-photo-od-w480_h360_x2.jpg"
  ],
  "photoCount": 32,
  "listDate": "2026-03-15T10:00:00.000000Z",
  "scrapedAt": "2026-03-23T10:30:00.000Z"
}
```

#### Rental

```json
{
  "propertyId": "P960012345",
  "listingId": "L297700001",
  "url": "https://www.realtor.com/rentals/details/456-Oak-Ave_Portland_OR_97209_M96001-23456",
  "listingType": "for_rent",
  "status": "for_rent",
  "address": {
    "street": "456 Oak Ave",
    "city": "Portland",
    "stateCode": "OR",
    "postalCode": "97209",
    "county": "Multnomah",
    "full": "456 Oak Ave, Portland, OR, 97209"
  },
  "price": {
    "min": 1200,
    "max": 1800,
    "display": "$1,200 - $1,800"
  },
  "features": {
    "propertyType": "apartment",
    "bedrooms": 1,
    "bathrooms": 1,
    "sqft": 650
  },
  "buildingName": "Pearl District Apartments",
  "petPolicy": {
    "cats": true,
    "dogs": true
  },
  "units": [
    { "beds": 1, "baths": 1, "sqft": 650, "price": 1200 },
    { "beds": 2, "baths": 1, "sqft": 900, "price": 1800, "availableDate": "2026-04-01" }
  ],
  "scrapedAt": "2026-03-23T10:30:00.000Z"
}
```

#### Recently Sold

```json
{
  "propertyId": "P121000001",
  "url": "https://www.realtor.com/realestateandhomes-detail/789-Elm-Dr_Portland_OR_97224_M12100-00001",
  "listingType": "sold",
  "status": "sold",
  "address": {
    "street": "789 Elm Dr",
    "city": "Portland",
    "state": "Oregon",
    "stateCode": "OR",
    "postalCode": "97224",
    "county": "Washington",
    "full": "789 Elm Dr, Portland, OR, 97224"
  },
  "price": {
    "value": 475000,
    "display": "$475,000"
  },
  "soldPrice": 465000,
  "soldDate": "2026-03-10",
  "features": {
    "propertyType": "single_family",
    "bedrooms": 3,
    "bathrooms": 2,
    "sqft": 1600,
    "yearBuilt": 1995
  },
  "brokerage": "Example Real Estate LLC",
  "mlsId": "MLS67890",
  "mlsName": "Willamette",
  "scrapedAt": "2026-03-23T10:30:00.000Z"
}
```

# Actor input Schema

## `mode` (type: `string`):

Location mode = pick city + state + filters below. URL mode = paste any realtor.com search URL already refined in a browser (recommended for complex filters).

## `locations` (type: `array`):

Cities or neighborhoods to search. Add one or more locations — the scraper will search each one.

## `listingType` (type: `string`):

Type of listings to scrape.

## `propertyType` (type: `string`):

Filter by property type.

## `bedsMin` (type: `integer`):

Minimum number of bedrooms (1-5).

## `bathsMin` (type: `integer`):

Minimum number of bathrooms (1-5).

## `priceMin` (type: `integer`):

Minimum listing price in USD.

## `priceMax` (type: `integer`):

Maximum listing price in USD.

## `openHouseOnly` (type: `boolean`):

Only return listings with open houses (for\_sale only, ignored for rent/sold).

## `newConstructionOnly` (type: `boolean`):

Only return new construction listings (for\_sale and sold only, ignored for rent).

## `urls` (type: `array`):

One or more full realtor.com search URLs. Tip: open realtor.com in your browser, apply any filters (price, beds, property type), then paste the resulting URL here.

## `maxListings` (type: `integer`):

Maximum number of listings to collect (0 = unlimited)

## `maxPages` (type: `integer`):

Maximum pages to scrape per location (0 = unlimited)

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

Proxy for realtor.com. Datacenter works (cheapest). Falls back to built-in proxy for free-tier users.

## `resumeFromCheckpoint` (type: `boolean`):

Resume a previous run from the last saved checkpoint

## `mcpConnectors` (type: `array`):

Optionally send the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize a connector once under Apify → Settings → Integrations, then select it here. The connector receives a condensed, human-readable summary per item (title + key fields), not the full JSON — the complete record stays in the dataset. Leave empty to skip. Supported: Notion (https://mcp.notion.com/mcp), Linear (https://mcp.linear.app/sse), Airtable (https://mcp.airtable.com/mcp), Apify (https://mcp.apify.com).

## `notionParentPageUrl` (type: `string`):

URL (or id) of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors.

## `maxNotifyListings` (type: `integer`):

Cap on items written to each connector per run. Does not affect the dataset.

## Actor input object example

```json
{
  "mode": "location",
  "locations": [
    {
      "city": "Portland",
      "state": "OR"
    }
  ],
  "listingType": "for_sale",
  "propertyType": "any",
  "openHouseOnly": false,
  "newConstructionOnly": false,
  "urls": [
    "https://www.realtor.com/realestateandhomes-search/Portland_OR?view=map"
  ],
  "maxListings": 20,
  "maxPages": 0,
  "proxyConfiguration": {
    "useApifyProxy": true
  },
  "resumeFromCheckpoint": true,
  "maxNotifyListings": 50
}
```

# Actor output Schema

## `listings` (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 = {
    "locations": [
        {
            "city": "Portland",
            "state": "OR"
        }
    ],
    "urls": [
        "https://www.realtor.com/realestateandhomes-search/Portland_OR?view=map"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("abotapi/realtor-com-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 = {
    "locations": [{
            "city": "Portland",
            "state": "OR",
        }],
    "urls": ["https://www.realtor.com/realestateandhomes-search/Portland_OR?view=map"],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("abotapi/realtor-com-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 '{
  "locations": [
    {
      "city": "Portland",
      "state": "OR"
    }
  ],
  "urls": [
    "https://www.realtor.com/realestateandhomes-search/Portland_OR?view=map"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call abotapi/realtor-com-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Realtor.com $0.9💰 Powerful Filters + Deep Search",
        "description": "From $0.9/1K. Extract property listings from realtor.com. Get comprehensive data, including prices, property details, agent contacts, coordinates, photos, and more. Supports for sale, rental, and recently sold listings across all US markets.",
        "version": "2.0",
        "x-build-id": "iGcgBOzA6nWcajZ6I"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/abotapi~realtor-com-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-abotapi-realtor-com-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/abotapi~realtor-com-scraper/runs": {
            "post": {
                "operationId": "runs-sync-abotapi-realtor-com-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/abotapi~realtor-com-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-abotapi-realtor-com-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",
                "properties": {
                    "mode": {
                        "title": "1. Search mode",
                        "enum": [
                            "location",
                            "url"
                        ],
                        "type": "string",
                        "description": "Location mode = pick city + state + filters below. URL mode = paste any realtor.com search URL already refined in a browser (recommended for complex filters).",
                        "default": "location"
                    },
                    "locations": {
                        "title": "Locations to search",
                        "type": "array",
                        "description": "Cities or neighborhoods to search. Add one or more locations — the scraper will search each one.",
                        "items": {
                            "type": "object",
                            "properties": {
                                "city": {
                                    "title": "City or Neighborhood",
                                    "type": "string",
                                    "description": "City name (e.g. Portland, Austin) or neighborhood (e.g. Capitol Hill, Orenco). Use hyphens for multi-word names like 'New York' or 'San Francisco'.",
                                    "editor": "textfield"
                                },
                                "state": {
                                    "title": "State",
                                    "type": "string",
                                    "description": "Two-letter US state code",
                                    "enum": [
                                        "AL",
                                        "AK",
                                        "AZ",
                                        "AR",
                                        "CA",
                                        "CO",
                                        "CT",
                                        "DE",
                                        "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",
                                        "DC"
                                    ],
                                    "editor": "select"
                                }
                            }
                        }
                    },
                    "listingType": {
                        "title": "Listing Type",
                        "enum": [
                            "for_sale",
                            "for_rent",
                            "sold"
                        ],
                        "type": "string",
                        "description": "Type of listings to scrape.",
                        "default": "for_sale"
                    },
                    "propertyType": {
                        "title": "Property Type",
                        "enum": [
                            "any",
                            "single_family",
                            "condo",
                            "townhome",
                            "multi_family",
                            "mobile",
                            "farm",
                            "land"
                        ],
                        "type": "string",
                        "description": "Filter by property type.",
                        "default": "any"
                    },
                    "bedsMin": {
                        "title": "Minimum Bedrooms",
                        "minimum": 1,
                        "maximum": 5,
                        "type": "integer",
                        "description": "Minimum number of bedrooms (1-5)."
                    },
                    "bathsMin": {
                        "title": "Minimum Bathrooms",
                        "minimum": 1,
                        "maximum": 5,
                        "type": "integer",
                        "description": "Minimum number of bathrooms (1-5)."
                    },
                    "priceMin": {
                        "title": "Minimum Price",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Minimum listing price in USD."
                    },
                    "priceMax": {
                        "title": "Maximum Price",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum listing price in USD."
                    },
                    "openHouseOnly": {
                        "title": "Open House Only",
                        "type": "boolean",
                        "description": "Only return listings with open houses (for_sale only, ignored for rent/sold).",
                        "default": false
                    },
                    "newConstructionOnly": {
                        "title": "New Construction Only",
                        "type": "boolean",
                        "description": "Only return new construction listings (for_sale and sold only, ignored for rent).",
                        "default": false
                    },
                    "urls": {
                        "title": "Search URLs",
                        "type": "array",
                        "description": "One or more full realtor.com search URLs. Tip: open realtor.com in your browser, apply any filters (price, beds, property type), then paste the resulting URL here.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxListings": {
                        "title": "Max Listings",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of listings to collect (0 = unlimited)",
                        "default": 20
                    },
                    "maxPages": {
                        "title": "Max Pages Per Location",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum pages to scrape per location (0 = unlimited)",
                        "default": 0
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Proxy for realtor.com. Datacenter works (cheapest). Falls back to built-in proxy for free-tier users.",
                        "default": {
                            "useApifyProxy": true
                        }
                    },
                    "resumeFromCheckpoint": {
                        "title": "Resume From Checkpoint",
                        "type": "boolean",
                        "description": "Resume a previous run from the last saved checkpoint",
                        "default": true
                    },
                    "mcpConnectors": {
                        "title": "Pipe results into your apps (optional)",
                        "type": "array",
                        "description": "Optionally send the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize a connector once under Apify → Settings → Integrations, then select it here. The connector receives a condensed, human-readable summary per item (title + key fields), not the full JSON — the complete record stays in the dataset. Leave empty to skip. Supported: Notion (https://mcp.notion.com/mcp), Linear (https://mcp.linear.app/sse), Airtable (https://mcp.airtable.com/mcp), Apify (https://mcp.apify.com)."
                    },
                    "notionParentPageUrl": {
                        "title": "Notion parent page (Notion connector only)",
                        "type": "string",
                        "description": "URL (or id) of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors."
                    },
                    "maxNotifyListings": {
                        "title": "Max items to export per connector",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Cap on items written to each connector per run. Does not affect the dataset.",
                        "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
