Real Estate Comp Puller avatar

Real Estate Comp Puller

Pricing

from $900.00 / 1,000 comp report generateds

Go to Apify Store
Real Estate Comp Puller

Real Estate Comp Puller

MCP server that pulls recently-sold comps from Zillow & Redfin for any US address. Returns suggested value range, avg $/sqft, median sale price, and full comp list. Handles non-disclosure states (TX, LA + 13 others) using pending listings as proxies.

Pricing

from $900.00 / 1,000 comp report generateds

Rating

0.0

(0)

Developer

Andrew Moon

Andrew Moon

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

0

Monthly active users

a day ago

Last modified

Share

🏠 Real Estate Comp Puller β€” Apify MCP Server

An MCP (Model Context Protocol) server that pulls recently-sold comparable properties from Zillow and Redfin for any US address, deduplicates them, and returns a structured analysis with a suggested value range, avg $/sqft, and supporting comp list.

Built for homeowners and buyers who want a quick, AI-accessible answer to: "What's this property worth?"


What it does

Given an address (plus optional beds/baths/sqft), the get_comps tool:

  1. Fetches recently-sold listings from Zillow and Redfin via Apify scrapers
  2. Deduplicates results across sources
  3. Filters by bed/bath match (Β±1) and sqft tolerance (default Β±20%)
  4. Returns:
    • Suggested value range (Β±5% of avg comp price)
    • Avg & median sale price
    • Avg price per sqft
    • Avg days on market
    • Full comp list sorted by sold date

Project structure

real-estate-comp-puller/
β”œβ”€β”€ .actor/
β”‚ β”œβ”€β”€ actor.json # Apify Actor config (standby mode, MCP path)
β”‚ β”œβ”€β”€ Dockerfile # Container build
β”‚ └── pay_per_event.json # PPE pricing ($0.25/report)
β”œβ”€β”€ src/
β”‚ β”œβ”€β”€ __init__.py
β”‚ β”œβ”€β”€ __main__.py # Entrypoint
β”‚ β”œβ”€β”€ main.py # MCP server + Starlette app
β”‚ β”œβ”€β”€ zillow.py # Zillow scraper via Apify
β”‚ β”œβ”€β”€ redfin.py # Redfin scraper via Apify
β”‚ └── analysis.py # Dedup, filter, and analysis logic
β”œβ”€β”€ requirements.txt
└── README.md

Local development

1. Install deps

$pip install -r requirements.txt

2. Set env vars

export APIFY_TOKEN=your_apify_token_here
export APIFY_META_ORIGIN=STANDBY
export ACTOR_STANDBY_PORT=3000

3. Run

$python -m src

The MCP server will be available at: http://localhost:3000/mcp


Deploy to Apify

1. Install Apify CLI

npm install -g apify-cli
apify login

2. Push the Actor

$apify push

3. Enable Standby mode

In Apify Console β†’ your Actor β†’ Settings β†’ enable Standby mode.

4. Set your APIFY_TOKEN env var

In Apify Console β†’ your Actor β†’ Settings β†’ Environment variables:

  • APIFY_TOKEN = your token (needed to call Zillow/Redfin sub-actors)

5. Connect from Claude or any MCP client

{
"mcpServers": {
"real-estate-comp-puller": {
"type": "http",
"url": "https://YOUR_USERNAME--real-estate-comp-puller.apify.actor/mcp",
"headers": {
"Authorization": "Bearer YOUR_APIFY_TOKEN"
}
}
}
}

Monetization

This Actor uses Pay Per Event (PPE) pricing at $0.25 per comp report.

  • Users are charged once per successful get_comps call that returns results
  • You earn 80% β†’ ~$0.20/report after Apify's 20% commission
  • Platform costs (Zillow + Redfin actor runs, proxies) ~$0.03–0.07/run
  • Net ~$0.13–0.17 per report

To activate monetization:

  1. Go to Apify Console β†’ your Actor β†’ Publication
  2. Select Pay Per Event
  3. The events are pre-configured in .actor/pay_per_event.json

Example prompt

"Pull comps for 456 Oak Ave, Austin TX 78704 β€” 3 bed, 2 bath, 1800 sqft"

Example response:

{
"comp_count": 7,
"summary": {
"suggested_value_range": { "low": "$418,500", "high": "$461,900" },
"avg_sale_price": "$440,200",
"median_sale_price": "$435,000",
"avg_price_per_sqft": "$241.50",
"avg_days_on_market": 18.3,
"sources": ["zillow", "redfin"]
},
"comps": [...]
}

Roadmap

  • Geocoding for true radius-based filtering (Google Maps / Nominatim)
  • Realtor.com as a third source
  • Price history trend chart
  • Neighborhood median price trend (90-day, 180-day)
  • Free tier: 1 free report, then PPE kicks in