# Realtor Property & Public Records API (Unofficial) (`neon_innovation_lab/realestate-intel-mcp`) Actor

Extract Realtor.com Next.js property specs, county tax assessments, multi-year tax history, price cuts, and GreatSchools ratings via API and MCP.

- **URL**: https://apify.com/neon\_innovation\_lab/realestate-intel-mcp.md
- **Developed by:** [Neon Innovation Lab](https://apify.com/neon_innovation_lab) (community)
- **Categories:** AI, Developer tools, Real estate
- **Stats:** 1 total users, 0 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $20.00 / 1,000 realtor property record extracteds

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

## Real Estate Intelligence & Public Records MCP Server (`realestate-intel-mcp`)

> High-defense real estate intelligence and public records extraction for AI agents (Claude Desktop, Cursor, Windsurf) and automated proptech pipelines.
>
> *Disclaimer: This Actor is an independent developer tool and is not affiliated with, authorized, maintained, or sponsored by Realtor.com, Move, Inc., the National Association of Realtors (NAR), or Idealista.*

### Overview

Unlike standard brittle scrapers, **`realestate-intel-mcp`** is engineered to navigate enterprise-grade anti-bot defenses across the world's leading real estate portals:

1. **Realtor.com (Kasada-Aware)**: Extracts the Next.js `<script id="__NEXT_DATA__">` hydration state to capture deep property intelligence, county property tax assessments, multi-year historical tax payments, price drops, GreatSchools ratings, and verified MLS agent contacts.
2. **Idealista (DataDome-Resilient)**: Targets the dominant real estate portal across Spain, Italy, and Portugal using TLS/JA4 fingerprinting to extract asking prices, size in square meters, energy ratings, estimated gross rental yields, and municipal tourist rental license compliance.

***

### Tools

#### 1. `realtor_property_intel`

Extracts structured property and public records intelligence from any Realtor.com property detail page.

**Parameters**:

- `url` *(string, required)*: The Realtor.com property detail URL (e.g. `https://www.realtor.com/realestateandhomes-detail/...`).

**Extracted Output**:

- **Listing Details**: Address, list price, price/sqft, beds, baths, square footage, lot size, year built, property type, days on market, HOA fees.
- **County Tax Assessments**: Total assessed value, land value, improvement value, assessment year, parcel ID (APN).
- **Multi-Year Tax History**: Array of historical tax payments and assessed amounts.
- **Price Cut History**: Event log of price reductions and delistings (identifying motivated sellers).
- **GreatSchools Data**: School names, verified ratings, grades, and distance.
- **Agent Attribution**: Listing agent name, brokerage office, and MLS ID.
- **FCRA Safe-Harbor Metadata**: Structured disclaimer confirming public records non-consumer report status.

#### 2. `idealista_market_intel`

Extracts property metrics, gross rental yield benchmarks, and holiday rental license compliance across Spain, Italy, and Portugal.

**Parameters**:

- `url` *(string, required)*: The Idealista property listing URL (e.g. `https://www.idealista.com/inmueble/...`).

**Extracted Output**:

- **Property Specs**: Price, price/m², size (m²), rooms, bathrooms, floor, and energy efficiency certification (A–G).
- **Estimated Gross Yield**: Municipal benchmark rental yield comparison.
- **Tourist License Status**: Flags declared holiday rental license numbers (`VUT-`, `HUTB-`, `AL/`).
- **Advertiser**: Professional real estate agency vs. private seller.
- **EU GDPR Notice**: Confirms 100% public market data processing without non-consensual personal tracking.

***

### Monetization & Pricing Guarantee

- **`realtor-intel`**: **$0.02** per successful property extraction.
- **`idealista-intel`**: **$0.01** per successful property extraction.
- **Zero Charge on Failure**: If a target platform blocks the request or extraction fails, **you are never billed** ($0.00).

***

### AI Agent Integration

#### Claude Desktop (`claude_desktop_config.json`)

```json
{
  "mcpServers": {
    "realestate-intel": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://neon-innovation-lab--realestate-intel-mcp.apify.actor/mcp"]
    }
  }
}
```

#### Cursor (`.cursor/mcp.json`)

```json
{
  "mcpServers": {
    "realestate-intel": {
      "type": "streamable-http",
      "url": "https://neon-innovation-lab--realestate-intel-mcp.apify.actor/mcp"
    }
  }
}
```

# Actor input Schema

## `realtorUrls` (type: `array`):

Optional list of Realtor.com property detail URLs to process in batch mode.

## `idealistaUrls` (type: `array`):

Optional list of Idealista (Spain, Italy, Portugal) property URLs to process in batch mode.

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

Proxy group configuration. Apify Residential Proxy recommended for Kasada and DataDome targets.

## `maxChargeUsd` (type: `integer`):

Maximum spending limit in USD for Pay-Per-Event billing (enforces ACTOR\_MAX\_TOTAL\_CHARGE\_USD).

## Actor input object example

```json
{
  "realtorUrls": [
    "https://www.realtor.com/realestateandhomes-detail/123-Main-St_Austin_TX_78701_M12345-67890"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  },
  "maxChargeUsd": 10
}
```

# Actor output Schema

## `mcpEndpoint` (type: `string`):

Streamable HTTP MCP endpoint for Claude Desktop, Cursor, Windsurf, or autonomous AI agents.

## `sseEndpoint` (type: `string`):

SSE transport endpoint for MCP clients.

## `discoveryUrl` (type: `string`):

Public MCP discovery and server-card URL.

# 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 = {
    "realtorUrls": [
        "https://www.realtor.com/realestateandhomes-detail/123-Main-St_Austin_TX_78701_M12345-67890"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("neon_innovation_lab/realestate-intel-mcp").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 = { "realtorUrls": ["https://www.realtor.com/realestateandhomes-detail/123-Main-St_Austin_TX_78701_M12345-67890"] }

# Run the Actor and wait for it to finish
run = client.actor("neon_innovation_lab/realestate-intel-mcp").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "realtorUrls": [
    "https://www.realtor.com/realestateandhomes-detail/123-Main-St_Austin_TX_78701_M12345-67890"
  ]
}' |
apify call neon_innovation_lab/realestate-intel-mcp --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,neon_innovation_lab/realestate-intel-mcp"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/n6Bxp3sIRgeDQwedt/builds/DmrW9kwanePjSXF2e/openapi.json
