Realtor.com Scraper: Homes for Sale, Rent & Sold
Pricing
from $0.95 / 1,000 homes
Realtor.com Scraper: Homes for Sale, Rent & Sold
Scrape Realtor.com homes for sale, for rent and sold by city, ZIP code, county, link or map area, no login, past 10,000 homes a search. Each home gives price, beds, baths, size, MLS number, office and value estimates; details add price and tax history, schools and flood risk. CSV, Excel, API.
Pricing
from $0.95 / 1,000 homes
Rating
0.0
(0)
Developer
Automation Craft
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Realtor.com Scraper: Homes for Sale, Rent & Sold
Realtor.com scraper and API for US homes for sale, for rent, recently sold, off market and new home plans: search any city, ZIP code, county, neighborhood or state, paste a Realtor.com search link, or look up homes by property id, link, address or MLS number. Every home comes with its price, status, beds, baths, size, lot, year built, address and coordinates, all photos, the MLS number, the listing office and broker, and Realtor.com's value estimates. Turn on Home details for the full record: price and sale history, tax history, schools, flood and climate risk, mortgage estimate, local market medians, and page views and saves.
No login, no cookies and no browser: the Actor reads Realtor.com's own data service, 200 homes a request, and reads on past the 10,000 homes the site lists for one search.
What you can do with it
- Pull every home for sale in a city or county into a sheet, with prices, MLS numbers and listing offices, for deal sourcing and lead lists.
- Build sold comps: recently sold homes by ZIP code with sold dates and sold prices (where the state discloses them).
- Track rents: rentals by city with rent ranges, pets policy and units of apartment communities.
- Enrich a list of addresses or property ids with the full Realtor.com record, schools, tax history and climate risk.
- Watch a market: a free market summary per search (median price, price per square foot, days on market, homes by type).
How to use the Realtor.com Scraper
- Open the Actor and type a place in Places, for example
Austin, TX,78704,Travis County, TXorTexas, or paste a Realtor.com search link into Realtor.com links. - Pick the Listing status (for sale, for rent, recently sold, off market, new home plans) and any filters (price, beds, baths, home types, features, dates).
- Set Maximum homes and, if you need the full record of each home, turn on Home details.
- Click Start. Download the homes as JSON, CSV or Excel, or read them through the Apify API.
What data you get
One row per home (type: "home"), plus one free coverage row per search (type: "search", with the search's market summary: medians are exact up to 20,000 homes and read from an even sample of 20,000 beyond, which the row states), free status rows for anything not found or not read, and a free run summary. Fill rates are measured on 1,500 homes of Austin TX, Dayton OH, Miami FL, Garrett County MD and Phoenix AZ (test run of 2026-10-29; the agent fields on the research card's 600 rows of 2026-10-26).
| Field | What it holds | Fill |
|---|---|---|
propertyId, listingId, url | Realtor.com's ids and the home's page | 100% |
status, isPending, isContingent, isNewConstruction, isForeclosure, isPriceReduced, isComingSoon | listing status and flags | 100% |
price (priceMin, priceMax for a rent range) | list price, or monthly rent | 99.9% |
pricePerSqft | price per square foot | 88.6% |
beds, baths, bathsFull, bathsHalf | rooms | 90.6% |
sqft, sqm | living area | 88.9% |
lotSqft, lotAcres, lotSqm | lot size | 60.5% |
yearBuilt, homeType, garage, stories | the home | 74.0% (year), 100% (type) |
hoaFee | HOA fee a month | 64.1% |
address, fullAddress, latitude, longitude, county, countyFips | where it is | 99.7% (street), 97.0% (position), 100% (county) |
photos, primaryPhoto, photoCount | every photo link | 99.5% |
listDate, daysOnRealtor, lastStatusChangeDate, pendingDate | dates | 100% (list date) |
lastSoldPrice, lastSoldDate | last sale | 48.9% |
estimate, estimateLow, estimateHigh, estimates | Realtor.com's value estimates by source | 77.3% |
mls.sourceId, mls.listingId | MLS code and MLS number | 100% |
office, broker, builder | listing office (name, phones, link; its e-mail and id with includePersonalData), broker, builder | 75.2% (office), 57.7% (broker) |
features | Realtor.com's feature tags (pool, garage, view, single story ...) | 99.8% |
openHouses | open house times | 3.6% |
units, petPolicy | rental units and pets | rentals |
agents, mlsAgents | listing agent and co agent: name (99.5%), e-mail (77.5%), phones (76.7%), ids, licence | with includePersonalData |
Home details (the add-on, details): description (99.5%) and the source's feature groups (100%), price and sale history (99.8%), tax history and assessments (70.7%), nearby schools (97.0%) and assigned schools (96.9%) with ratings, flood factor and FEMA zones (93.3%), wildfire, heat, wind and air factors (93.4%), a mortgage estimate with its monthly breakdown, the county FHA loan limit and today's average rates (99.9%), value estimate history (75.7%) and forecast (69.6%), page views, clicks, saves, shares and leads over 1, 7, 14, 21 and 28 days (87.1%), the city, county and ZIP code market medians (list price, sold price, price per square foot, days on market; 99.9%), days on the MLS (26.5%), fees, parking, lease terms, pet policy, USDA eligibility, tagged photos, videos and rental units with photos.
Example row (shortened)
{"type": "home","id": "9241435802","url": "https://www.realtor.com/realestateandhomes-detail/384-Leaning-Rock-Rdg_Austin_TX_78737_M92414-35802","status": "forSale","price": 989999,"pricePerSqft": 332,"beds": 4,"baths": 4,"sqft": 2980,"lotSqft": 10742,"lotAcres": 0.247,"yearBuilt": 2025,"homeType": "single_family","fullAddress": "384 Leaning Rock Rdg, Austin, TX 78737","county": "Hays","mls": { "sourceId": "AUTX", "listingId": "8045029", "sourceType": "mls" },"office": { "name": "Christies Intl Real Estate Lone Star" },"estimate": 980000,"features": ["central_air", "community_swimming_pool", "single_story", "garage_3_or_more"],"detailsStatus": "not_requested"}
How much does it cost to scrape Realtor.com?
You pay per home delivered (pay per event). Prices per 1,000 events:
| Event | Free | Bronze | Silver | Gold |
|---|---|---|---|---|
| Home | $0.99 | $0.99 | $0.97 | $0.95 |
| Home details (add-on, only when on) | $1.40 | $1.28 | $1.16 | $1.00 |
Each run also pays a one time Actor start of $0.008 on every plan. Platinum and Diamond plans pay the Gold price. The Store pricing card shows these same prices per 1,000 events: "$0.95 / 1,000" on the Home row means one home costs less than a tenth of a cent.
- 1,000 homes of a search cost $0.95 to $0.99 plus the $0.008 start fee; with Home details on, $1.95 to $2.39.
- A home is charged once per run, even when two of your searches find it.
- Free: homes outside your search or filters, repeats, places or homes not found, records Realtor.com did not answer, and every coverage, status and summary row. A run with no usable input charges only the start fee.
- Set a maximum cost per run in the Apify Console: the run stops at the first home it cannot pay and delivers no row unpaid.
Input
| Setting | What it does |
|---|---|
locations | Places as Realtor.com names them: Austin, TX, 78704, Travis County, TX, Mueller Acres, Austin, TX, Texas. A place is searched only when exactly one Realtor.com place is that text; otherwise a free row lists the candidates. |
zipCodes | Five digit ZIP codes. |
startUrls | Realtor.com links: searches (/realestateandhomes-search/..., /apartments/..., sold with /show-recently-sold), homes (..._M92414-35802), new construction communities (..._Q717000090054) and app shortlinks (apps.realtor.com/...). A search link keeps its own status and filters; a link part the Actor does not read is a free row, never a guess. |
agentIds | Realtor.com agent or office ids: the homes each one lists. |
agentNames, mlsAgentIds | An agent's listings by the agent's name ("Stephanie Sauseda") or MLS agent id with its MLS code ("AUTX:806288"). |
mapAreas | A circle { "latitude", "longitude", "radiusMiles" } or a drawn polygon { "polygon": [[lon, lat], ...] }. |
radiusMiles | Search a circle around each place instead of the place (comparable homes nearby). |
propertyIds, addresses, mlsListingIds | Look up single homes; each is read from its full record. |
listingStatus | forSale (default), forRent, sold, offMarket, newHomePlans. |
pendingAndContingent | For sale: include (default), exclude or only pending and contingent homes. |
| Filters | minPrice, maxPrice, minBeds, maxBeds, minBaths, maxBaths, minSqft, maxSqft, minLotSqft, maxLotSqft, minYearBuilt, maxYearBuilt, maxHoaFee, noHoaFee, minGarage, homeTypes, features, keywords, listedWithinDays, priceReducedWithinDays, openHouseWithinDays, newConstruction, foreclosure, seniorCommunity, comingSoon, has3dTour, hasVirtualTour, catsAllowed, dogsAllowed, soldWithinDays, soldAfter, soldBefore, minSoldPrice, maxSoldPrice. Read from each home because Realtor.com's search does not apply them: moveInBy (rentals with a unit available by a date; rentals that show no unit date are left out, free) and street (homes on one street; best with a ZIP code). |
sort | Newest (default), oldest, price both ways, largest, lot, beds, baths, newest built, photos, open house, price reduced, recently updated, sold most recently, sold price both ways. |
maxItems, maxItemsPerSearch | How many homes in all (default 1,000) and per search. |
splitPastCap | On (default): a search larger than 10,000 homes is read on in price order until every home is met (when the caps reach past 10,000, only the first 200 homes come in your chosen order). |
startPage | Start every search at this page of results (42 homes a page, as on the site). |
includeDetails | The Home details add-on. |
includePersonalData | Off by default (see below). |
maxPhotos, outputFields | Fewer photos per home; keep only chosen fields. |
placeLookups | Free: Realtor.com's own place suggestions for a text. |
proxyConfiguration | Apify Proxy (default): the Actor draws and screens its own datacenter exits, so proxy groups and countries are refused; or your own http:// proxy links. |
Example input:
{"locations": ["Austin, TX"],"listingStatus": "forSale","minBeds": 3,"maxPrice": 600000,"maxItems": 500,"includeDetails": true}
Personal data
Off by default. With includePersonalData on, rows also carry the listing agent's and co agent's name, e-mail, phones, ids and licence number, buyer's agents and the agent's profile link, and, for rentals posted through rental platforms (where the landlord can be a private person), the landlord's contact and the home's street and exact position. It also adds the listing office's e-mail (often an agent's own mailbox) and Realtor.com's advertiser ids of offices, brokers and builders (an office's id can be the agent's own) and the street, unit and position of homes suggested in place lookups and address candidates. With it off those fields are empty; the names, phones and links of listing offices, brokers and builders are businesses and always included. You are responsible for using personal data lawfully (GDPR, CAN-SPAM, TCPA and similar).
What this Actor does not do
- No monitoring mode ("only new listings since the last run", change or price tracking). Schedule the Actor and compare the rows in your own sheet; every row carries its list date and status dates.
- No export into connected apps through MCP connectors; use Apify's integrations, webhooks or the API.
- No custom JavaScript run on your rows; use
outputFieldsto keep the fields you need. - No agent directory, agent profiles or agent reviews: rows carry the listing agent (with
includePersonalData) and the listing office. - No agent e-mails found on outside websites, and no permit history (Realtor.com's record has none).
- No other sites (Zillow, Redfin, Homes.com) in the same run.
- No mortgage calculator for any price and rate; each home's own mortgage estimate comes with Home details.
- No "relevant" or "best match" order: Realtor.com reshuffles that order on every request, so no search can be read in it without missing and repeating homes; every stable order is offered.
- Work that earns nothing has a limit: a long list of places or addresses Realtor.com does not know, or searches that find no home, stops on the unpaid work allowance and the rest is reported "not reached" on a free row (nothing is charged for it). Lists with real homes among them run on, since each home pays for the next lookups.
- A condo or apartment unit is often not findable by its street address: Realtor.com's suggestions often hold no unit, so the Actor also asks with the other unit designators and searches the building's line in its ZIP code. In tests of units the first ask missed, this found 4 of 8 in Austin and 1 of 8 in Miami (2026-10-29). A unit still not found gets a free row; look it up by its property id or link. Each such miss costs a few more requests, so about ten unfindable units in a row stop the run on the unpaid work allowance (the rest are reported "not reached", free).
- Sold prices are empty in states that do not disclose them (Texas and others); the sold price filters then return no home.
- A search started past its first page (
startPage, a link's page) reads from that page only and is not reported complete. - A rental without any rent cannot be reached past the 10,000 home window (9 of 14,347 Houston rentals); the search row then says it was not read in full.
FAQ
Is it legal to scrape Realtor.com?
This Actor reads only data Realtor.com shows to every visitor without a login, and it gives personal data only when you turn it on. Realtor.com's terms of use restrict automated collection; whether and how you use the data is your decision and responsibility.
Does Realtor.com have an official API?
Realtor.com offers no public listing API; its APIs are partner and syndication feeds. This Actor works like an API: send a JSON input through the Apify API and read the homes as JSON.
Does Realtor.com block scraping?
Realtor.com guards its web pages against bots. This Actor loads no web page and solves no challenge: it reads the same data service the site's own pages use, with no login, and it reads past the 10,000 homes the site lists for one search (all 17,370 homes for sale in Houston in one test run).
What kind of data can I get from Realtor.com?
Every home's price, status, rooms, size, lot, year built, address and coordinates, photos, MLS number, office and value estimates; with Home details also price and tax history, schools, flood and climate risk, the mortgage estimate, local market medians and page views and saves.
Why does this Actor run with limited permissions?
It needs nothing beyond its own run storage (the dataset it writes and its own key value store), so it runs with Apify's limited permissions: it cannot read or change anything else in your account.
Use it through the API
curl -X POST "https://api.apify.com/v2/acts/automation_craft~realtor-com-scraper/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \-H "Content-Type: application/json" \-d '{"locations": ["78704"], "listingStatus": "sold", "soldWithinDays": 90, "maxItems": 100}'
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_TOKEN>' });const run = await client.actor('automation_craft/realtor-com-scraper').call({ locations: ['Austin, TX'], maxItems: 200 });const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.filter((x) => x.type === 'home').length);
from apify_client import ApifyClientclient = ApifyClient("<YOUR_TOKEN>")run = client.actor("automation_craft/realtor-com-scraper").call(run_input={"propertyIds": ["9241435802"], "includeDetails": True})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item.get("fullAddress"), item.get("price"))
Changelog
- 0.1 (2026-10-29): first version.
More data tools by Automation Craft
- Zillow Scraper: Homes for Sale, Rent and Sold
- Zillow Property Details Scraper: Price History
- Bien'ici Scraper: France Real Estate Ads & DPE
- SeLoger Scraper: Listings, Prices and Agencies
- Immowelt Scraper: Rents, Prices and Energy Data
- Airbnb Scraper: Airbnb Data, Prices, Calendar
- Craigslist Scraper: Listings, Prices & Alerts