Realtor.com Scraper 🏡 $1/1K, No Start Fee avatar

Realtor.com Scraper 🏡 $1/1K, No Start Fee

Pricing

$1.00 / 1,000 results

Go to Apify Store
Realtor.com Scraper 🏡 $1/1K, No Start Fee

Realtor.com Scraper 🏡 $1/1K, No Start Fee

Scrape realtor.com for-sale, rental and sold listings with 145+ fields — price history, tax records, assigned schools, FEMA flood risk, mortgage breakdown, agent emails and office phones. Every listing is scored against its own city and county median. No start fee, no cookies, no browser.

Pricing

$1.00 / 1,000 results

Rating

0.0

(0)

Developer

Kelopr_bk

Kelopr_bk

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

🏡 Realtor.com Scraper — Listings, Agents & Market Data

Pull for-sale, rental, sold and off-market listings from realtor.com with the fields the other Actors give you — and the ones they don't: tax history, assigned schools, FEMA flood risk, the mortgage breakdown, agent contacts, and every listing measured against its own city and county market.

No account. No cookies. No browser. Just a location and a run.


⚡ Quick start

  1. Click Try for free.
  2. Put a place in 📍 LocationsAustin, TX, a ZIP like 78704, a county like Travis County, TX, or paste a realtor.com search link.
  3. Pick a 🏷️ Listing statusFor sale is the default, Sold opens the archive.
  4. Press Start.

That's it. A 50-row run finishes in a few seconds.

{
"locations": ["Austin, TX"],
"status": "for_sale",
"mode": "listings",
"maxResults": 50
}

Want the deep data? Switch ⚙️ What to collect to Listings + property details:

{
"locations": ["Austin, TX"],
"mode": "listings_plus_details",
"priceMin": 300000,
"priceMax": 700000,
"bedsMin": 3,
"maxResults": 200
}

🎯 What makes this one different

Most realtor.com Actors hand you the listing and stop. This one tells you what the listing means.

Every row can carry its own market context, computed from data collected in the same run:

FieldWhat it answers
priceVsCityMedianPctIs this priced above or below the city?
priceVsCountyMedianPctAnd above or below the whole county?
pricePerSqftVsCityMedianPctIs the space priced fairly?
estimateVsPricePctIs the asking price above or below realtor.com's own valuation?
daysOnMarketVsCityMedianHas it been sitting longer than the local norm?
priceCutCount / totalPriceCutPctHas the seller already blinked, and by how much?
grossRentYieldPctWhat does the city's median rent imply for yield?
monthlyPaymentEstimateWhat would it actually cost per month?
dealScore + dealSignalsAll of the above, as one number and a plain-English reason list

Nothing here is invented. When an input is missing, the field is null rather than guessed, and analysisConfidence tells you how much of the analysis was actually computable.


📦 What you get

Always — 100+ fields per listing:

  • 🆔 propertyId, listingId, url, permalink, status, MLS id and type
  • 💵 price, price per sqft, price cuts, last sold price and date
  • 🛏️ beds, baths (full / half / three-quarter), sqft, lot size, year built, garage, stories, full listing text
  • 📍 full address, unit, county + FIPS, latitude/longitude, Street View link
  • 🚩 new listing, price reduced, new construction, foreclosure, contingent, pending, coming soon
  • 🖼️ every photo, virtual tours, Matterport flag
  • 🚪 open house dates, HOA fee, pet policy
  • 📋 feature groups — appliances, interior, exterior, utilities, exactly as realtor.com groups them
  • 🚫 suppressedFields — which values the MLS has forbidden this listing to publish, so an empty sold price reads as withheld, not missing
  • 📊 city and county medians: list price, $/sqft, days on market, rent

With Listings + property details — the deep layer:

  • 🧾 Tax history — annual tax, assessed land/building/total, market values
  • 🏫 Assigned schools — name, rating, parent rating, grades, district, student count, distance
  • 📈 Price history — every listing event with its date, price and source. realtor.com leaves this empty on for-sale search rows, so the per-property call is what fills it — and what makes priceCutCount and totalPriceCutPct real numbers rather than zeroes
  • 🌊 Flood risk — flood-factor score and severity, FEMA zone, trend, environmental risk
  • 💹 Valuation — current estimate with high/low, plus forecast and history
  • 🏦 Mortgage — loan amount, monthly payment, total payment, down payment, rate and term, property-tax and insurance rates
  • 📞 Contacts — agent name, e-mail, profile link, brokerage name and office phone

With Agents mode — one row per listing agent:

name, e-mail, office phone, brokerage, profile link, listing count, average and total list price, and the cities they work.

📌 About phone numbers: realtor.com publishes the brokerage office phone, not a personal mobile number. officePhone is filled on essentially every listing; agentPhone is what the site itself almost always leaves empty. We report exactly what the source gives, and never fabricate a number.


🎛️ Filters

All of them are applied by realtor.com itself, so a narrow search costs no more than a wide one:

💵 price · 🛏️ beds · 🛁 baths · 📐 sqft · 🌳 lot size · 📅 year built · 🚗 garage · 🏘️ HOA fee or no HOA · 🏠 20 property types · 🏢 sub types · 🔎 keywords (pool, casita, waterfront) · 🏗️ new construction · 🏚️ foreclosures · 📉 short sales · 📝 contingent · ⏳ pending · 👵 55+ · 🎥 virtual tour · 🧊 Matterport · 🐈🐕 pets (rentals) · 🚪 open-house window · 🗓️ listed-date window · 💰 sold-date window

And nine sort orders, including newest, price high/low, most photos and recently sold.


💰 Sold data is the sleeper feature

Set 🏷️ Listing status to Sold and you are reading realtor.com's archive, not the live market. Austin alone holds over 126,000 sold records — comps, absorption rates, and a price history most listing scrapers never touch.

Pair it with soldSince / soldUntil to pull a specific quarter.


✅ Built to be predictable

  • Bad input never crashes the run. Type a filter wrong and you get a plain sentence saying which field and why — not a stack trace.
  • Rows are written as they are found. If a run stops early, everything collected up to that point is already in your dataset.
  • No start fee. Most Actors in this niche charge $0.005–$0.01 just to press Start. This one charges for results.
  • Datacenter proxy is enough. realtor.com needs a US address, not an expensive residential one — which is why this Actor is cheap to run.

🔧 Output example (trimmed)

{
"propertyId": "9332841646",
"url": "https://www.realtor.com/realestateandhomes-detail/13409-Madrone-Mountain-Way_Austin_TX_78737_M93328-41646",
"status": "for_sale",
"price": 1359990,
"priceSource": "propertyDetail",
"searchPrice": 450000,
"beds": 4,
"baths": 4,
"sqft": 3414,
"address": "13409 Madrone Mountain Way",
"city": "Austin",
"stateCode": "TX",
"postalCode": "78737",
"county": "Hays",
"priceVsCityMedianPct": 167.0,
"estimatedValue": 1250400,
"estimateVsPricePct": -8.1,
"daysOnMarketComputed": 739,
"grossRentYieldPct": 1.72,
"monthlyPaymentEstimate": 8578,
"dealScore": 31,
"dealSignals": [
"priced well above the city median",
"on the market longer than the local median"
],
"analysisConfidence": "high",
"latestTaxYear": 2025,
"latestTaxAmount": 7440,
"schoolRatingAverage": 8.0,
"floodFactorScore": 1,
"floodFactorSeverity": "minimal",
"femaZone": ["X (unshaded)"],
"agentName": "Julie Gualandri",
"agentEmail": "julieg@jbgoodwin.com",
"officePhone": "(512) 901-9600",
"officeName": "KW-Austin Portfolio Real Estate"
}

The searchPrice line is not a mistake. realtor.com's own search sometimes returns one property twice at different prices; the Actor takes the canonical per-property price, keeps the search figure next to it, and says through priceSource which one you are looking at.


🏘️ More real-estate Actors

Working a whole market rather than one portal? These cover the rest of it:


❓ FAQ

Do I need a realtor.com account or cookies? No. Nothing is logged in and nothing is stored between runs.

How many listings can one search return? realtor.com stops paging a single search at 10,000, and in practice starts repeating rows before that — a measured Austin run asked for 6,000 and got 4,752 unique listings out of the 6,978 the site claims. Duplicates are dropped rather than billed. To go deeper, split the search — by price band, by property type, or by ZIP code — and run each as its own location.

Why is daysOnMarket sometimes empty? realtor.com leaves that field blank on most search rows. The Actor fills daysOnMarketComputed from the listing date instead, and daysOnMarketSource tells you which of the two you are looking at.

What does dataCompleteness mean? listing — search data only. enriched — contacts were added. full — the property detail call succeeded and the deep fields are populated.

Can I scrape a specific property? Yes. Paste its page link or numeric id into 🔗 Specific properties.