Realtor.com Scraper avatar

Realtor.com Scraper

Pricing

from $0.69 / 1,000 properties

Go to Apify Store
Realtor.com Scraper

Realtor.com Scraper

Scrape Realtor.com property listings for sale, for rent and recently sold: price, beds, baths, sqft, address, agent contacts, photos, price and tax history, schools, value estimates and climate risk scores.

Pricing

from $0.69 / 1,000 properties

Rating

0.0

(0)

Developer

ParseBird

ParseBird

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Realtor.com Scraper

Realtor.com Scraper extracts property listings from Realtor.com: homes for sale, rentals and recently sold properties with price, beds, baths, square footage, full address and coordinates, listing agent and office contacts, photos, value estimates, price and tax history, schools and climate risk scores, as clean JSON, CSV or Excel.

Search any US city, ZIP code, neighborhood, county or state, or paste Realtor.com search and property URLs, filter by listing status and property type, and get 88 fields per home, including assigned schools, mortgage estimate and flood, fire, heat, wind and air risk scores.

Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

Apify Actor: parsebird/realtor-scraper. Scrapes US property listings from Realtor.com (homes for sale, rentals, recently sold). Call via ApifyClient: client.actor("parsebird/realtor-scraper").call(run_input={"searchLocations": ["Austin, TX", "78701"], "listingStatus": "for_sale", "propertyType": "single_family", "maxItems": 100, "includePropertyDetails": true}). Inputs: searchLocations (array of strings: "City, ST", ZIP code, neighborhood "Zilker, Austin, TX", county "Travis County, TX", state "Texas" or a street address), startUrls (array of Realtor.com search URLs such as https://www.realtor.com/realestateandhomes-search/Austin_TX, /apartments/Miami_FL, /realestateandhomes-search/Denver_CO/show-recently-sold, with type-, price-, beds-, baths-, sqft-, lot-sqft- filters read from the URL; or property URLs /realestateandhomes-detail/..._M12345-67890), listingStatus (for_sale | for_rent | recently_sold, default for_sale, applies to searchLocations), propertyType (all | single_family | condos | townhomes | multi_family | land | mobile | farm, default all, applies to searchLocations), maxItems (integer, total properties across all searches, default 100, 0 = no limit), includePropertyDetails (boolean, default true: schools, property_history, tax_history, mortgage estimate, local flood/fire/heat/wind/air scores and severities, features). Output: one record per property with property_id, listing_id, status, href, list_price, list_price_min, list_price_max, price_per_sqft, last_sold_price, last_sold_date, days_on_market, list_date, address_line, address_city, address_state_code, address_postal_code, address_lat, address_lon, county_name, neighborhoods, beds, baths_consolidated, sqft, lot_sqft, year_built, property_type, description_text, tags, is_new_construction, is_foreclosure, is_pending, is_contingent, primary_agent_name, primary_agent_email, primary_agent_phone, primary_office_name, source_name, source_listing_id, hoa_fee, estimates_current, photo_urls, photo_count, rental_units, open_houses, has_details, scraped_at; with details also mortgage_monthly_payment, property_tax_rate, property_history, tax_history, assigned_schools, nearby_schools, local_flood_score, local_fire_score, local_heat_score, local_wind_score, local_air_score (each with *_severity), features. Pricing: pay per event, "property" per property saved plus "details" per property with full details. Full API spec: https://apify.com/parsebird/realtor-scraper/api. Get your token: https://console.apify.com/settings/integrations.

What is Realtor.com Scraper?

Realtor.com Scraper turns Realtor.com search results and property pages into a structured dataset. Type a location such as "Austin, TX" or a ZIP code, pick For sale, For rent or Recently sold, and click Start. On October 18, 2026, Realtor.com showed 6,842 homes for sale in Austin, 14,239 rentals in Miami and 92,159 sold homes in Denver, and the actor can read searches of that size end to end.

It works as a Realtor.com API alternative: no account, API key or browser needed. You can also set up a search on Realtor.com in your browser, copy the URL and paste it in.

What can Realtor.com Scraper do?

  • 🔎 Search by location. City and state, ZIP code, neighborhood, county, whole state or a single street address.
  • 🔗 Paste Realtor.com URLs. Search-results URLs keep their location, listing status and filters (property type, price, beds, baths, sqft, lot size). Property page URLs return that one home.
  • 🏠 For sale, for rent and sold. Recently sold searches return the most recent sales first.
  • 🏘️ Property type filter. Single family, condos, townhomes, multi-family, land, mobile homes, farms and ranches.
  • 📋 Full property details. Assigned and nearby schools with ratings, price and listing history, tax history with assessments, mortgage estimate, HOA fee and the full feature list.
  • 🌊 Climate risk scores. Flood (with FEMA zone), wildfire, heat, wind and air quality scores from 1 to 10 with severity labels.
  • 💵 Value estimates. Current automated valuations from several providers (for example Cotality™, Quantarium and Collateral Analytics), with high and low range.
  • 📈 Past the 10,000-result limit. Realtor.com stops paging at 10,000 results; the actor splits large searches into price ranges so a whole city or state can be read.
  • 📅 Scheduling. Run daily or weekly with Apify Schedules to track new listings and price changes.
  • 🔌 API and integrations. Use the Apify API, or send results to Google Sheets, Zapier, Make, Slack or webhooks with Apify integrations. Export as JSON, CSV, Excel, XML or HTML.

What data can you extract from Realtor.com?

FieldDescription
property_id, listing_id, hrefRealtor.com property id, listing id and listing URL
statusfor_sale, for_rent or sold
list_price, list_price_min, list_price_maxAsking price or rent in USD; rental communities show a min/max range
price_per_sqft, hoa_feePrice per square foot and monthly HOA fee
last_sold_price, last_sold_datePrevious sale
list_date, days_on_marketWhen the current listing went live, and days since then (empty on sold listings)
address_line, address_city, address_state_code, address_postal_codeFull address
address_lat, address_lon, county_name, neighborhoodsCoordinates, county and neighborhood names
beds, baths_consolidated, sqft, lot_sqft, year_builtSize and age of the home
property_type, property_sub_type, stories, garageHome type and layout
description_text, tagsListing description and feature tags (e.g. central_air, hardwood_floors)
is_new_construction, is_foreclosure, is_pending, is_contingentListing flags
primary_agent_name, primary_agent_email, primary_agent_phoneListing agent contact (when shown on Realtor.com)
primary_office_name, primary_office_phone, broker_nameListing office and broker
source_name, source_listing_idMLS name and MLS listing number
estimates_currentAutomated value estimates by provider
photo_urls, photo_count, primary_photoFull-size listing photos
rental_units, pets_cats_allowed, pets_dogs_allowedRental floor plans and pet policy
mortgage_monthly_payment, property_tax_rateEstimated monthly payment, loan, down payment, rate and tax rate (details)
property_history, tax_historyPrice and listing events, yearly tax and assessment (details)
assigned_schools, nearby_schoolsSchools with rating, grades, distance and student count (details)
local_flood_score … local_air_scoreFlood, fire, heat, wind and air risk scores and severities (details)
featuresFull feature list grouped by category (details)

How to scrape Realtor.com

  1. Open Realtor.com Scraper in Apify Console and sign in (or create a free account).
  2. Type one or more Locations, for example Austin, TX or 78701.
  3. Pick the Listing status (For sale, For rent or Recently sold) and, if you like, a Property type.
  4. Or paste Realtor.com URLs copied from your browser: search pages or single property pages.
  5. Set Max properties. Start with 10-50 to test.
  6. Leave Include property details on for schools, history, mortgage and risk scores, or turn it off for search data only.
  7. Click Start, then download the results from the Output tab as JSON, CSV or Excel, or read them through the API.

How much does it cost to scrape Realtor.com?

Realtor.com Scraper uses pay-per-event pricing. Compute and proxy costs are included in the event prices; there are no other usage charges for the run.

EventFreeBronzeSilverGold
property (per property saved)$0.00089$0.00079$0.00069$0.00069
details (per property with full details)$0.00059$0.00049$0.00039$0.00039
Per 1,000 properties, details off$0.89$0.79$0.69$0.69
Per 1,000 properties, details on$1.48$1.28$1.08$1.08

For example, 1,000 Austin homes for sale with full details cost $1.48 on the Free plan, or $0.89 without details. details is charged only for properties whose property page was loaded. Set a maximum cost per run in Apify Console and the actor stops when it's reached.

Input parameters

ParameterTypeRequiredDefaultDescription
searchLocationsstring[]No*[]City and state ("Austin, TX"), ZIP code ("78701"), neighborhood, county, state or street address
startUrlsURL[]No*[]Realtor.com search or property URLs; the type is detected automatically
listingStatusstringNofor_salefor_sale, for_rent or recently_sold (applies to searchLocations)
propertyTypestringNoallall, single_family, condos, townhomes, multi_family, land, mobile, farm (applies to searchLocations)
maxItemsintegerNo100Total properties to return across all searches; 0 = no limit
includePropertyDetailsbooleanNotrueLoad property pages for schools, history, mortgage, risk scores and features
proxyConfigurationobjectNononeOptional proxy; the actor switches to Apify Proxy on its own if needed

* Give at least one location or URL.

Search by location

{
"searchLocations": ["Austin, TX"],
"maxItems": 50
}

Recently sold single-family homes

{
"searchLocations": ["Denver, CO"],
"listingStatus": "recently_sold",
"propertyType": "single_family",
"maxItems": 200
}

Realtor.com URLs with filters

{
"startUrls": [
{ "url": "https://www.realtor.com/realestateandhomes-search/Austin_TX/type-single-family-home/beds-3/price-300000-600000" },
{ "url": "https://www.realtor.com/apartments/Miami_FL" },
{ "url": "https://www.realtor.com/realestateandhomes-detail/6700-Tulloch-Way_Austin_TX_78754_M83959-32351" }
],
"maxItems": 100
}

Output example

One property with details on (lists shortened, agent contact masked):

{
"property_id": "7989332242",
"listing_id": "3001951700",
"status": "for_sale",
"href": "https://www.realtor.com/realestateandhomes-detail/9802-Zion-Way_Austin_TX_78733_M79893-32242",
"list_price": 625000,
"price_per_sqft": 597,
"last_sold_date": "2021-09-22",
"days_on_market": 0,
"list_date": "2026-10-18T02:15:37Z",
"photo_count": 32,
"address_line": "9802 Zion Way",
"address_city": "Austin",
"address_state_code": "TX",
"address_postal_code": "78733",
"address_lat": 30.345631,
"address_lon": -97.8612,
"county_name": "Travis",
"neighborhoods": "Austin Lake Estates, West Austin",
"beds": 2,
"baths_consolidated": "2",
"sqft": 1047,
"lot_sqft": 14505,
"year_built": 1965,
"property_type": "single_family",
"description_text": "Tucked beneath a canopy of towering trees in highly sought-after Austin Lake Estates, this updated '60s fishing cabin blends original charac...",
"tags": ["central_air", "central_heat", "community_clubhouse", "community_outdoor_space", "community_park"],
"is_new_construction": false,
"is_pending": false,
"primary_agent_name": "Jane Smith",
"primary_agent_email": "jane@example.com",
"primary_agent_phone": "5125550100",
"primary_office_name": "Coldwell Banker Realty",
"source_name": "UnlockMLS",
"source_listing_id": "7487574",
"hoa_fee": 54,
"estimates_current": [
{ "source": { "type": "corelogic", "name": "Cotality™" }, "estimate": 530500, "estimate_high": 574300, "estimate_low": 486800, "date": "2026-10-05", "is_best_home_value": true },
{ "source": { "type": "quantarium", "name": "Quantarium" }, "estimate": 510897, "estimate_high": 648839, "estimate_low": 372954, "date": "2026-10-14", "is_best_home_value": false }
],
"photo_urls": ["https://ap.rdcpix.com/62514f69c46cf0e4708de23e2093ee45l-m1880588193r.jpg"],
"mortgage_monthly_payment": 4422,
"mortgage_loan_amount": 500000,
"mortgage_down_payment": 125000,
"mortgage_rate": 0.07247,
"property_tax_rate": 0.01188,
"property_history": [
{ "date": "2026-10-18", "event_name": "Listed", "price": 625000, "price_change": 0, "source_name": "UnlockMLS", "source_listing_id": "7487574" }
],
"tax_history": [
{ "year": 2026, "tax": 7110, "assessment_building": 78631, "assessment_land": 401369, "assessment_total": 480000 }
],
"assigned_schools": [
{ "name": "West Ridge Middle School", "rating": 10, "parent_rating": 2, "distance_in_miles": 3.2, "education_levels": ["middle"], "grades": ["6", "7", "8"], "funding_type": "public", "student_count": 885, "assigned": true }
],
"local_flood_score": 1,
"local_flood_severity": "minimal",
"local_flood_fema_zone": ["X (unshaded)"],
"local_fire_score": 1,
"local_fire_severity": "Minimal",
"local_heat_score": 8,
"local_heat_severity": "Severe",
"local_wind_score": 6,
"local_wind_severity": "Major",
"local_air_score": 2,
"local_air_severity": "Minor",
"has_details": true,
"scraped_at": "2026-10-18T06:25:14Z"
}

With details off, the detail fields (mortgage_*, property_history, tax_history, schools, local_*, features) are null and has_details is false. Download the dataset in JSON, CSV, Excel, XML or HTML from the Output tab.

Use the Realtor.com Scraper API

Start the actor and read its results from your own code with the Apify API clients. Find your token in Apify Console → Settings → Integrations.

Python (apify-client):

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("parsebird/realtor-scraper").call(run_input={
"searchLocations": ["Austin, TX", "78704"],
"listingStatus": "for_sale",
"propertyType": "single_family",
"maxItems": 200,
})
for home in client.dataset(run["defaultDatasetId"]).iterate_items():
print(home["address_line"], home["list_price"], home["beds"], home["local_flood_score"])

JavaScript (apify-client):

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('parsebird/realtor-scraper').call({
startUrls: [{ url: 'https://www.realtor.com/apartments/Miami_FL' }],
maxItems: 100,
includePropertyDetails: false,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((home) => console.log(home.address_line, home.list_price, home.primary_agent_phone));

Use cases

  • Real estate investors: find homes by price, size and type, and compare asking prices with automated value estimates.
  • Market research: analyse prices, price per square foot, days on market and inventory by ZIP code, city or state.
  • Comparable sales: pull recently sold homes with sale dates and price history for valuation work.
  • Rental analysis: collect rents, floor plans and pet policies across a metro area.
  • Lead generation: list agents, offices and brokers with their contact details.
  • Risk and insurance: combine flood (FEMA zone), fire, heat, wind and air scores with property data.
  • Relocation and schools: compare homes by assigned school ratings.

How it works

  1. Each location is matched to a Realtor.com city, ZIP code, neighborhood, county, state or address; each URL is read for its location, status and filters.
  2. The actor pages through the search results, newest listings first (sold searches: latest sales first), and removes duplicates across searches.
  3. Searches with more than 10,000 results are split into price ranges so they can be read past Realtor.com's paging limit.
  4. With Include property details on, it loads each property page for schools, history, mortgage, risk scores and features.
  5. Records are saved as they come in, and each property is charged once, when it's saved. If Realtor.com starts refusing requests, the actor switches to Apify Proxy by itself.

FAQ

How many properties can I scrape? Set maxItems to 0 to read a whole search. In our tests on Apify, 1,000 properties with full details took 36 seconds, and 12,000 Chicago rentals without details took about 100 seconds.

Why does a search return a little fewer properties than Realtor.com's total? Realtor.com counts listings, and some homes have more than one listing (for example, listed by two agents, or for sale and for rent at once). The actor returns each property once. When a search is split into price ranges, the few listings without any price are left out.

How is days_on_market calculated? It's the number of days since the current listing's list_date. It resets when a home is relisted, and it's empty on sold listings because their clock has stopped.

What's the sale price of a sold home? For sold homes, last_sold_price and last_sold_date are the sale, and list_price is the last asking price before the sale. A price filter in a sold search URL (e.g. price-na-500000) applies to the sale price.

Why are the agent email or phone empty for some homes? The actor returns the contacts Realtor.com shows for the listing. Some listings show only the office, and some show no contact details.

Do the filters in the input apply to pasted URLs? No. A search URL keeps its own location, status and filters (property type, price, beds, baths, sqft, lot size). Listing status and Property type apply to the Locations field. Filters the actor doesn't support are listed in the run log.

Which time zone are dates in? Timestamps such as list_date, last_update_date and scraped_at are UTC. Plain dates (last_sold_date, property_history.date) are as Realtor.com shows them.

Can I schedule runs and connect them to other tools? Yes. Use Apify Schedules for recurring runs and integrations for Google Sheets, Slack, Zapier, Make, n8n or webhooks. Results are also available through the API.

Something doesn't work or a field is missing? Open an issue on the actor's Issues tab with the input you used, and we'll look into it.

This actor collects publicly available property listing data from Realtor.com. Agent names, emails and phone numbers can be personal data, so if you process them, make sure you have a lawful basis under the privacy laws that apply to you (for example the CCPA), and respect Realtor.com's terms of use. Scraping public data is generally lawful, but you are responsible for how you use it. Read more in Apify's blog post Is web scraping legal?, and ask a lawyer if you're unsure.

Other real estate scrapers

ActorWhat it does
Trulia Property ScraperUS homes for sale and rent from Trulia
Apartments.com Scraper & APIUS apartment rentals, prices and floor plans
RentCafe ScraperUS rental listings from RentCafe
LoopNet Commercial Property ScraperUS and UK commercial real estate for sale and lease
Airbnb Scraper & APIShort-term rental listings, prices and hosts