Realtor Scraper avatar

Realtor Scraper

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Realtor Scraper

Realtor Scraper

Scrape property listings from Realtor.com. Get prices, beds, baths, sqft, photos, agents, schools, tax history, flood/wildfire risk data, and 40+ fields per property.

Pricing

from $1.00 / 1,000 results

Rating

5.0

(18)

Developer

Crawler Bros

Crawler Bros

Maintained by Community

Actor stats

19

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Realtor.com Property Scraper

Scrape property listings from Realtor.com. Get prices, descriptions, photos, agent details, schools, tax history, flood/noise/wildfire risk data, and 40+ fields per property. Search for sale, rent, or recently sold properties.

What is Realtor.com Property Scraper?

Realtor.com Property Scraper is an Apify actor that extracts property listing data from Realtor.com. Enter a location, choose a search mode (buy, rent, or sold), and get structured data for every property — from basic listing details to comprehensive information including nearby schools, tax history, and environmental risk scores.

Features

  • Search by location — Find properties in any US city, state, or neighborhood
  • Three search modes — For sale (BUY), for rent (RENT), or recently sold (SOLD)
  • Comprehensive property data — Price, beds, baths, sqft, lot size, year built, garage, stories
  • Full descriptions — Property marketing text and listing details
  • Photo URLs — All listing photos with direct image links
  • Agent and office info — Agent name, phone, email, and brokerage office
  • Nearby schools — School name, rating, distance, grades, and type
  • Environmental risk data — Flood factor, wildfire risk, and noise scores
  • Listing history — Price changes, sales events, and source data
  • Tax history — Assessment values, market values, and tax amounts by year
  • Property features — Cooling, heating, roofing, construction, pool, fireplace, zoning
  • Direct URL support — Paste Realtor.com property detail URLs for targeted scraping
  • Automatic deduplication — No duplicates when combining search and direct URLs

Use Cases

  • Real estate investment analysis — Compare prices, tax history, and environmental risks
  • Market research — Track listing prices, sold prices, and days on market across neighborhoods
  • Property comparison — Side-by-side data for multiple listings in a target area
  • Rental market analysis — Compare rental prices and availability by location
  • School district analysis — Find properties near top-rated schools
  • Risk assessment — Evaluate flood, wildfire, and noise risks before buying
  • Agent/broker research — Identify active listing agents in your target market
  • Data enrichment — Augment your property database with fresh listing data

Input

FieldTypeDefaultDescription
Search LocationStringCity and state to search (e.g., "Houston, TX", "San Francisco, CA")
Search ModeSelectBUYBUY (for sale), RENT (for rent), or SOLD (recently sold)
Maximum PropertiesInteger50Max property listings to scrape (1-500)
Maximum PagesInteger5Max search result pages to scrape per search (1-20)
Scrape Full DetailsBooleantrueFetch full detail pages for schools, history, tax, etc. Disable for faster runs.
Start URLsURL ListDirect Realtor.com property or search URLs

Note: At least one of Search Location or Start URLs must be provided.

Example input — Buy properties

{
"search": "Houston, TX",
"mode": "BUY",
"maxItems": 50,
"scrapeDetails": true
}
{
"search": "Miami, FL",
"mode": "RENT",
"maxItems": 25
}

Example input — Recently sold

{
"search": "Denver, CO",
"mode": "SOLD",
"maxItems": 30
}

Example input — Direct property URLs

{
"startUrls": [
{ "url": "https://www.realtor.com/realestateandhomes-detail/123-Main-St_Houston_TX_77001_M12345-67890" }
],
"scrapeDetails": true
}

Output

Each property produces one item in the output dataset:

Core Property Data

FieldTypeDescription
urlStringProperty detail URL on Realtor.com
idStringRealtor.com property ID
listingIdStringMLS listing ID
statusStringfor_sale, for_rent, sold, pending, etc.
listPriceNumberCurrent listing price
lastSoldPriceNumberLast recorded sale price
soldOnStringDate property was last sold
priceReducedNumberPrice reduction amount (if applicable)
bedsNumberNumber of bedrooms
bathsStringTotal bathrooms (e.g., "4.5")
bathsFullNumberFull bathrooms
bathsHalfNumberHalf bathrooms
sqftNumberLiving area in square feet
lotSqftNumberLot size in square feet
yearBuiltNumberYear the property was constructed
typeStringProperty type (single_family, condo, townhouse, etc.)
subTypeStringProperty sub-type
storiesNumberNumber of stories
garageNumberGarage spaces
nameStringProperty or community name
textStringFull property description
listDateStringDate when listed

Location

FieldTypeDescription
address.streetStringStreet address
address.cityStringCity
address.stateStringState code (e.g., "TX")
address.postalCodeStringZIP code
coordinates.latNumberLatitude
coordinates.lngNumberLongitude

Rich Data (from detail pages)

FieldTypeDescription
photosArrayPhoto URLs for the property
featuresObjectProperty features — cooling, heating, roofing, construction, pool, fireplace, zoning
agentsArrayListing agents — name, phone, email, office, type
nearbySchoolsArrayNearby schools — name, rating, distance, grades, type
local.floodObjectFlood factor score, severity, FEMA zone
local.noiseObjectNoise score and categories
local.wildfireObjectWildfire factor score and severity
historyArrayListing history — date, event, price, price per sqft
taxHistoryArrayTax records — year, tax amount, assessment and market values
yearRenovatedNumberYear of last renovation
roomsNumberTotal room count
scrapedAtStringISO timestamp when data was collected

Sample output

{
"url": "https://www.realtor.com/realestateandhomes-detail/46-Kingwood-Greens-Dr_Kingwood_TX_77339_M71671-24763",
"id": "7167124763",
"listingId": "2989700820",
"status": "for_sale",
"listPrice": 318000,
"lastSoldPrice": null,
"soldOn": "2002-01-03",
"priceReduced": null,
"beds": 5,
"baths": "4.5",
"bathsFull": null,
"bathsHalf": null,
"sqft": 5526,
"lotSqft": 22346,
"yearBuilt": 2000,
"type": "single_family",
"subType": "",
"stories": null,
"garage": 3,
"name": "",
"text": "Spacious 5 bedroom home in Kingwood with pool and 3-car garage...",
"listDate": "2025-12-23T15:21:17.000000Z",
"address": {
"street": "46 Kingwood Greens Dr",
"city": "Kingwood",
"state": "TX",
"postalCode": "77339"
},
"coordinates": {
"lat": 30.033194,
"lng": -95.180402
},
"photos": [
"https://ap.rdcpix.com/1751b6c594d6451bf2a78323162ed623l-m1516646319s.jpg"
],
"agents": [
{
"name": "Lori Brown",
"email": "lori.brown@rhss.com",
"phone": "9792550702",
"office": "REALHome Services and Solutions, Inc.",
"type": "seller"
}
],
"features": {
"cooling": "Central Air",
"heating": "Central",
"pool": "Yes",
"roofing": "Composition"
},
"nearbySchools": [
{
"name": "Kingwood Park High School",
"rating": 7,
"distance": 1.2,
"grades": ["9", "10", "11", "12"],
"type": "public",
"levels": ["high"],
"studentCount": 2100
}
],
"local": {
"flood": {
"floodFactorScore": 3,
"severity": "Minor",
"femaZone": ["X"],
"insuranceRequired": "No"
},
"noise": {
"score": 72,
"categories": ["traffic"]
}
},
"history": [
{
"date": "2025-12-23",
"event": "Listed",
"price": 318000,
"pricePerSqft": 58,
"source": "HOTX"
}
],
"taxHistory": [
{
"year": 2024,
"tax": 8500,
"assessmentTotal": 310000,
"assessmentLand": 95000,
"assessmentBuilding": 215000,
"marketTotal": 325000,
"marketLand": 100000,
"marketBuilding": 225000
}
],
"scrapedAt": "2026-03-25T12:00:00.000000+00:00"
}

How to use

Quick start

  1. Enter a US city and state in the Search Location field (e.g., "Houston, TX")
  2. Select a Search Mode — BUY, RENT, or SOLD
  3. Set Maximum Properties to control how many listings to scrape
  4. Click Start and wait for results

Scrape specific properties

  1. Go to Realtor.com in your browser
  2. Navigate to the property listing you want
  3. Copy the URL from your browser's address bar
  4. Paste it into the Start URLs field

Combine search and direct URLs

You can provide both a location search and direct URLs. The scraper processes all sources and deduplicates results automatically.

Faster runs without detail enrichment

Set Scrape Full Details to false for a significantly faster run. You'll get core property data (price, beds, baths, sqft, address, photos, agents) from search results without visiting each property's detail page. This skips schools, tax history, listing history, risk data, and full descriptions.

How many properties can I scrape?

Realtor.com shows up to 42 properties per search page, with a maximum of 20 pages (840 properties per search). Use the Maximum Properties and Maximum Pages inputs to control how many to scrape.

Tips

  • Start small — Use maxItems: 5 with scrapeDetails: false for your first run to verify the output format
  • Disable details for speed — Set scrapeDetails: false for 3-5x faster runs when you only need listing-level data
  • Use specific locations — "Houston, TX" works better than just "Houston"
  • Recently sold data — Use SOLD mode for historical price data and market analysis

FAQ

Do I need a proxy? The scraper automatically uses a residential proxy, which is required to access Realtor.com. This is handled internally — no configuration needed.

Why are some detail fields empty? Detail enrichment depends on what Realtor.com provides for each listing. Not all properties have school data, tax records, or environmental risk scores. Some newer listings may not have history yet.

What's the difference between BUY, RENT, and SOLD modes? BUY searches active for-sale listings, RENT searches rental apartments and homes, and SOLD shows recently sold properties with final sale prices.

Can I scrape a specific neighborhood or ZIP code? Yes. Use formats like "77339" (ZIP code), "Kingwood, TX" (neighborhood + state), or a full address.

How fast is the scraper? With details enabled: approximately 5-10 properties per minute. Without details: approximately 42 properties per page every 5-8 seconds.

Why did I get fewer properties than maxItems? The location may have fewer listings than your limit, or the search may have reached the last page of results.