Realtor.com Scraper avatar

Realtor.com Scraper

Pricing

from $0.89 / 1,000 property results

Go to Apify Store
Realtor.com Scraper

Realtor.com Scraper

Scrape Realtor.com for-sale, rental and sold listings by city, ZIP code or URL. Get prices, beds, baths, sqft, photos, price and tax history, schools and agent contacts as JSON, CSV or Excel. Flat $0.89 per 1,000 results with full details included. No login, cookies or proxies needed.

Pricing

from $0.89 / 1,000 property results

Rating

0.0

(0)

Developer

BatScrape

BatScrape

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

13 days ago

Last modified

Categories

Share

Realtor.com Scraper: For-Sale, Rental & Sold Listings with Full Property Details 🏡

Scrape Realtor.com by city, ZIP code, neighborhood or county, or paste any Realtor.com search or property URL, and export listings as clean JSON: price, beds, baths, size, address, coordinates, all photos, price and sale history, tax history, nearby schools, listing agents, HOA fee, value estimates, and flood and noise data. Pricing is transparent and flat per result. There's no Realtor.com account to log in with, no cookies, and no proxies to manage. Perfect for market research, investment screening, sold comps, rental market analysis, and PropTech data feeds on America's leading home-listing site.

💰 Price: $0.0005 flat per run + $0.00089/result (no query fee, full details included) 🌏 Coverage: Realtor.com USA: for sale, for rent and recently sold 📊 Data: Price, beds/baths, sqft, address, photos, price & tax history, schools, agents, estimates 🎯 Filters: Property type, price, beds, baths, size, lot, year built, amenities, days on market, radius, keyword, sort 🛡️ Flat Per-Result Pricing

Quick Navigation

🧭 What Does This Actor Do?

This actor searches Realtor.com and pushes every listing to your dataset as structured JSON. There's no headless browser, no bot challenge to fight, and no login wall on your end. Give it locations, Realtor.com URLs, or both, and it queues exactly the searches needed. It deduplicates across queries and stays within your maxItems cap and pay-per-event budget as it goes.

🔍 Location & URL Search: search as many cities, ZIP codes, neighborhoods or counties as you like, or paste Realtor.com search URLs with their filters already applied. Property page URLs return that single property.

🏷️ Buy, Rent or Sold: switch between for-sale listings, rentals (including community rental floor plans) and recently sold homes, with a sold-within window for comps.

📋 Full Property Details Included: by default every result is the complete property record (description, all photos, price and tax history, schools, agents, estimates, flood and noise scores) at the same flat price as a summary.

🏡 Features and Functionality

FeatureDescriptionBenefit
💰 Flat Per-Result PricingOne price per unique property delivered, whether it's a summary or has full detailsPredictable cost, with no query, detail or floor-plan fees
🔍 Locations & URLsCities, ZIP codes, neighborhoods, counties, Realtor.com search URLs and property URLsStart from whatever you already have
🏷️ Buy / Rent / SoldFor-sale, for-rent and recently sold listings, with a sold-within windowListings, rentals and comps from one actor
🧹 Cross-Query DedupA property found by two locations or URLs is stored (and charged) onceNever pay twice for the same property
🎯 Rich FiltersType, price, beds, baths, size, lot, year built, amenities, days on market, radius, keywordNarrow results down at no extra cost
📋 Full Details IncludedPrice and tax history, schools, agents, HOA fee, estimates, flood and noise dataNo separate detail lookups to pay for
🔧 Custom Map FunctionJavaScript function to reshape or enrich output on the flyShape results to match your exact requirements
💵 Budget-AwareEvery result is checked against the run's charge budget before it's storedA run stops cleanly instead of overspending

💰 Pricing: Transparent Event-Based Costs

Pay-per-event pricing with no subscription and no hidden fees: a flat run fee, then one charge per unique property actually delivered.

Pricing Structure

EventPrice (USD)Charged For
🚀 Actor Start$0.0005Once per run, regardless of input
🏠 Property Result$0.00089Each unique Realtor.com property actually delivered

How Pricing Works

Every run charges a flat $0.0005 Actor Start fee once, however many locations or results you request. After that, each unique property stored in your dataset costs $0.00089, and nothing else is charged: full details, floor plans and photos are all included. A search that returns nothing costs only the run fee. For paying users, the first page of results (up to 42 properties) for each location or search URL is free. Property URLs you look up directly are always charged.

💵 Real-World Pricing Examples

Use CaseConfigurationTotal CostBreakdown
Quick sample1 location, 10 results$0.0094$0.0005 + (10 × $0.00089)
Single location, default settings1 location, up to 100 results$0.0895$0.0005 + (100 × $0.00089)
Multi-market sweep5 locations, up to 100 results each (~500 unique)$0.4455$0.0005 + (500 × $0.00089)
Large market pull1 location, up to 5,000 results$4.4505$0.0005 + (5,000 × $0.00089)

Result counts vary from location to location. A small town or a tightly filtered search returns fewer properties (and costs less) than a big metro. The rows above are illustrative at the volumes shown, before the free first page for paying users.

🔑 Who Needs This?

  • 📈 Market researchers & analysts: track inventory, list prices, price cuts and days on market across metros.
  • 💼 Investors & wholesalers: screen for-sale and sold listings by price, size and lot to find deals and pull comps.
  • 🏢 Agents & brokerages: monitor competing listings, price reductions and recent sales in your farm area.
  • 🏘️ Rental analysts & property managers: follow asking rents and community floor plans with mode: RENT.
  • 🧮 Appraisers & lenders: pull sale history, tax assessments and value estimates for valuation work.
  • 🤖 PropTech & data teams: feed structured US listing data into apps, dashboards and models.

🗺️ Input Parameters

FieldDescriptionDefault
locationsCities, ZIP codes, neighborhoods or counties ("Austin, TX", "78701", "Travis County, TX"). Provide locations, start URLs, or both.—
startUrlsRealtor.com search URLs (they keep their own mode and filters) and property page URLs (one property each).—
modeBUY (for sale) / RENT (for rent) / SOLD (recently sold). Applies to locations; search URLs use their own mode.BUY
maxResultsPerQueryProperties per location or search URL. 0 = all available (Realtor.com shows at most 10,000 per search).100
includeDetailsFull property record (on) or a lighter summary (off). Same price either way.true
includeFloorplansAdd floor plans to full property details (community rentals only).false
typeProperty types: single-family-home, multi-family-home, condo, condop, coop, townhome, apartments, mfd-mobile-home, farms-ranches, land.(all)
sortFor sale: relevant, newest, newest-built, luxury, affordable, highest-price, lowest-price, open-house-date, recently-reduced, largest-sqft, lot-size, photo-count. For rent: best-match, recently-added, newest-built, luxury, affordable, highest-price, lowest-price. Sold: sold-date, newest-built, luxury, affordable, highest-price, lowest-price, largest-sqft, lot-size, photo-count.(Realtor.com default)
minPrice / maxPricePrice range in USD (monthly rent for rentals; listing price in sold mode).—
minBed / maxBedBedroom range. minBed: 0 includes studios.—
minBath / maxBathBathroom range.—
minSqft / maxSqftInterior size range in square feet.—
minLotSqft / maxLotSqftLot size range in square feet.—
minYearBuilt / maxYearBuiltYear built range (1500–2100).—
keywordListing text must contain this keyword, e.g. "pool".—
radiusMiles around the location (0–50).—
daysOnMarketOnly listings added within this many days.—
tagsRequired amenities: garage-1-or-more, garage-2-or-more, garage-3-or-more, swimming-pool, spa-or-hot-tub, horse-facilities.—
includePendingInclude pending and contingent listings.true
soldWithinSold mode only: 1, 3, 6, 12, 24 or 36 months back.6
maxItemsOverall cap across all locations and URLs combined. 0/empty = unlimited (each query is still capped by maxResultsPerQuery).1000
customMapFunction(object) => object applied to every item. Must not be used for filtering.(none)

See INPUT_SCHEMA.json for the full schema.

💡 Input Strategy Guide

Just want a quick sample? Set maxResultsPerQuery to 10 and run one location. It's a cheap, fast check that the location and filters return what you expect.

Already have a search set up on Realtor.com? Copy the URL from your browser into startUrls. Its mode and filters (type, price, beds, baths, size, lot, days on market, radius, hide pending, page) are kept, and any filters you set in the input are applied on top.

Pulling sold comps? Use mode: SOLD with sort: sold-date and a soldWithin window, plus the same bed, bath and size range as your subject property. Note that sold prices are blank in non-disclosure states such as Texas.

Covering a whole region? List every city or ZIP code up front. Cross-query dedup means a property found by two overlapping locations is never charged twice, so one batched run never costs more than separate runs.

🔎 Example Requests

Search two cities for single-family homes under $600,000 with at least 3 bedrooms:

{
"locations": ["Austin, TX", "Round Rock, TX"],
"mode": "BUY",
"type": ["single-family-home"],
"maxPrice": 600000,
"minBed": 3,
"maxResultsPerQuery": 200
}

Pull the last 3 months of sold comps in one ZIP code, newest sales first:

{
"locations": ["78701"],
"mode": "SOLD",
"sort": "sold-date",
"soldWithin": "3",
"maxResultsPerQuery": 100
}

Mix a filtered Realtor.com search URL with a single property page:

{
"startUrls": [
{
"url": "https://www.realtor.com/realestateandhomes-search/Austin_TX/type-condo/price-200000-500000"
},
{
"url": "https://www.realtor.com/realestateandhomes-detail/48-East-Ave-1705_Austin_TX_78701_M93840-73561"
}
],
"maxResultsPerQuery": 50
}

📦 Output

One dataset item per unique Realtor.com property. A location that returns no matches simply adds no items; no placeholder row is stored.

Captured from a real run (locations: ["Austin, TX", "78701"], type: ["condo"], minBed: 1). The item is trimmed for brevity: arrays are cut to one or two entries, the long description is shortened with …, the signed Street View URL is shortened with …, and the listing agent's contact details are replaced with …:

{
"inputSource": "78701",
"includeDetails": true,
"id": "9384073561",
"listingId": "2980201441",
"permalink": "48-East-Ave-1705_Austin_TX_78701_M93840-73561",
"url": "https://www.realtor.com/realestateandhomes-detail/48-East-Ave-1705_Austin_TX_78701_M93840-73561",
"status": "for_sale",
"listPrice": 520000,
"lastSoldPrice": null,
"soldOn": "2022-03-02",
"listDate": "2025-04-04T17:12:02Z",
"priceReducedAmount": 2500,
"name": null,
"type": "condos",
"subType": "condo",
"beds": 1,
"baths": 1,
"bathsFull": 1,
"bathsHalf": null,
"sqft": 749,
"lotSqft": 61,
"garage": null,
"stories": 1,
"yearBuilt": 2022,
"units": null,
"description": "Located in the heart of downtown Austin, #1705 offers unmatched access to the city's most exciting destinations…",
"address": {
"street": "48 East Ave Unit 1705",
"locality": "Austin",
"region": "TX",
"postalCode": "78701",
"county": "Travis",
"countyFipsCode": "48453"
},
"coordinates": { "latitude": 30.256396, "longitude": -97.738839 },
"photoCount": 11,
"photos": [
{
"href": "https://ap.rdcpix.com/f2ba032c8172c56e67de1962b9114bb5l-m1247951936s.jpg",
"tags": ["exterior"]
}
],
"streetViewUrl": "https://maps.googleapis.com/maps/api/streetview?…",
"flags": {
"isNewListing": false,
"isPriceReduced": false,
"isPending": false,
"isContingent": false,
"isForeclosure": false,
"isNewConstruction": false,
"isComingSoon": false
},
"hoaFee": 0,
"taxHistory": [
{
"year": 2026,
"tax": 8726,
"assessment": { "building": 374849, "land": 51564, "total": 426413 }
}
],
"history": [
{
"date": "2026-03-19",
"eventName": "Price Changed",
"price": 520000,
"sourceName": "UnlockMLS"
},
{
"date": "2026-01-13",
"eventName": "Price Changed",
"price": 522500,
"sourceName": "UnlockMLS"
}
],
"nearbySchools": [
{
"name": "Mathews Elementary School",
"rating": 10,
"levels": ["elementary"],
"distance": 2,
"fundingType": "public"
}
],
"details": [
{
"category": "Bedrooms",
"parentCategory": "Interior",
"text": ["Bedrooms: 1"]
}
],
"advertisers": [
{
"name": "…",
"type": "seller",
"email": "…",
"href": "…",
"office": "…",
"phones": [{ "number": "…", "type": "Mobile" }]
}
],
"branding": [{ "type": "Agent", "name": "…", "photo": null }],
"estimates": [
{
"source": "Collateral Analytics",
"estimate": 526000,
"date": "2026-09-15"
}
],
"mls": {
"id": "AUTX",
"name": "UnlockMLS",
"listingId": "9946797",
"type": "mls"
},
"local": {
"noise": { "score": null },
"flood": { "score": 1, "severity": "minimal" }
},
"floorplans": []
}

Notes on the fields:

  • includeDetails tells the two shapes apart. With includeDetails: false, an item is a lighter summary keyed on propertyId (instead of id). It has price, soldPrice, a location object and up to 3 photos, plus priceMin/priceMax and similar ranges for community rentals. If a property's full details can't be loaded, that property comes back as a summary instead of being dropped.
  • inputSource is the location or URL from your input that found the property.
  • lastSoldPrice / soldPrice are often null, even for sold homes, because many states (such as Texas) don't disclose sale prices.
  • Missing values are null, not absent, so every item of a shape has the same keys.

In the Apify Console, the dataset opens with ready-made table views of the same data:

ViewShows
OverviewOne row per property: address, status, price, beds, baths, size, type
PricingList price, price cut, last sale, HOA fee and listing flags
Property detailsType, rooms, size, lot, year built, description
LocationFull address, county, coordinates, Street View link
Price historyOne row per price or sale event
Tax historyOne row per tax year
Nearby schoolsOne row per school
AgentsOne row per listing agent or office
SummariesFor runs with includeDetails turned off

🔧 Troubleshooting

❓ Getting Few or No Results?

  • ✅ Check maxItems / maxResultsPerQuery: the run stops once either is reached
  • ✅ Check the charge budget: a run that can't afford another result stops cleanly rather than erroring
  • ✅ Check the location spelling: use "City, ST", a 5-digit ZIP code or "County Name, ST"
  • ✅ Loosen the filters: a narrow price, bed or year range combined with amenities can leave nothing
  • ✅ Check the sort value: a sort that doesn't belong to the chosen mode is ignored (see the log)
  • ✅ Confirm locations or startUrls isn't empty, and that start URLs are realtor.com URLs

💰 Unexpected Costs?

Every run charges a flat $0.0005 Actor Start fee once, whatever you ask for. Beyond that, the cost is simply $0.00089 × unique properties delivered. There's no separate per-location, per-page, detail or floor-plan fee to budget for.

💡 Want to Minimize Costs?

  • ✅ Set maxResultsPerQuery to only what you actually need per location
  • ✅ Set maxItems to a hard cap matching your budget
  • ✅ Use filters to narrow results instead of scraping a whole market and filtering afterwards
  • ✅ Batch overlapping locations into one run, since cross-query dedup means overlaps are never charged twice

❔ FAQ

Do I need a Realtor.com account, cookies or proxies? No. Searches run through a backend service, so you don't need a login, cookies or proxies.

Are full property details and floor plans extra? No. Every result costs the same $0.00089, whether it's a summary or a full property record, with or without floor plans.

Can I use a Realtor.com URL with filters already applied? Yes. Paste search URLs (for sale, /rentals/, /apartments/ or /show-recently-sold) into startUrls. Their filters are kept. Property page URLs work too.

Does this actor download photos? No. It returns photo URLs (with room tags) but doesn't download or store image files itself.

Which countries are covered? The United States, which is what Realtor.com lists. International listings aren't supported.

📞 Contact

Reach out to the maintainers directly for support.

  • ✉️ Email: batscrape@gmail.com
  • 💬 Discord: discord.com/invite/ZRANXwhWU
  • 🐦 X (Twitter): x.com/batscrape
  • 🛒 Apify: apify.com/batscrape