Realtor.com Listings Scraper
Pricing
from $0.75 / 1,000 results
Realtor.com Listings Scraper
Scrape Realtor.com by city, state or ZIP and get up to 200 listings per location in one request: numeric price, beds, consolidated baths such as 2.5, areaSqft, lotSizeSqft, status, agentName, brokerName, detailUrl and coordinates. For sale, for rent or recently sold. No account needed.
Pricing
from $0.75 / 1,000 results
Rating
0.0
(0)
Developer
String
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Realtor.com Scraper — for-sale, for-rent and sold listings
This Actor scrapes Realtor.com listings for any US city, state or ZIP code. Realtor.com renders its search results in the browser, so the Realtor.com Scraper reads the same search API the page itself calls and returns up to 200 listings per location in one request — with numeric price, beds, baths, living area, lot size and coordinates, plus the listing agent and brokerage.
No Realtor.com account, login or cookies are used — this reads what a logged-out visitor sees.
What it returns
| Field | Type | Notes |
|---|---|---|
propertyId | string | Realtor.com's own property ID — stable across runs, use it to de-duplicate |
address | string | Street line |
city, state, zipcode | string | Split, not one blob |
price | number | 675000, not "$675,000" — the sold price on a sold row, otherwise the list price |
beds, baths | number | baths is the consolidated count, so a half bath reads as 2.5 |
areaSqft | number | Living area |
lotSizeSqft | number | Lot size in square feet |
status | string | for_sale, ready_to_build, for_rent or sold |
agentName | string | Listing agent where Realtor.com shows one |
brokerName | string | Brokerage or office as the listing displays it |
latitude, longitude | number | Exact coordinates, ready to map |
detailUrl | string | Link to the Realtor.com listing page |
searchLocation, sourceUrl, collectedAt | string | Provenance for every row |
Input
{ "locations": ["Austin, TX", "78704"], "listingType": "for_sale", "maxItems": 1000 }
| Field | Description |
|---|---|
locations | Cities with state, e.g. "Austin, TX", or ZIP codes. Required, 1–100. |
listingType | for_sale (default, includes ready_to_build new construction), for_rent or sold. |
maxItems | Cap on dataset items. Default 1000. A value under 200 also narrows each request. Free plans stop at 250 requests and 250 results — see below. |
concurrency | Locations fetched in parallel. Default 2, maximum 5. |
Use cases
- Comparable-sales analysis, using
soldrows with lot size and living area on the same record - Rental inventory and pricing across cities, from the
for_rentsurface - Agent and brokerage lead lists —
agentNameandbrokerNamecome with every location - Feeding a map or dashboard with geocoded for-sale inventory
- Tracking new construction, which Realtor.com files under the
ready_to_buildstatus
Reliability
The Realtor.com Scraper takes its rows from Realtor.com's own search API, so prices, beds, baths, square footage and coordinates arrive as numbers rather than card text. The served HTML carries only eight hydrated cards and its schema.org block omits baths, lot size, status, agent, broker and coordinates entirely — reading the API is what makes the full field set possible.
A location that cannot be read is recorded in the run's SUMMARY under failures rather than
silently returning fewer rows, and a run where every location failed exits with an error.
There are no retries by design: the String Unblocker owns proxy rotation and anti-bot solver selection, so a retry loop here would only re-roll the same block.
Frequently asked questions
Do I need a Realtor.com account, API key or cookies? No. The Realtor.com Scraper reads public search results as a logged-out visitor, and never signs in.
How many listings does the Realtor.com Scraper return per location? Up to 200 — the most the Realtor.com search accepts in one query. Five locations therefore return up to 1,000 rows for five requests.
Can I get sold homes and rentals? Yes. listingType: "sold" reads recently sold homes and
listingType: "for_rent" reads the rentals surface.
Is price the sold price on a sold listing? Yes, where Realtor.com discloses it. Non-disclosure
states such as Texas withhold sold prices, and those rows fall back to the last list price.
Which countries does it support? The United States only. This Actor targets realtor.com.
How fresh is the data? Every row carries a collectedAt timestamp and reflects what Realtor.com
showed at that moment. Schedule the Actor to re-run for a time series.
Limitations
One request per location, returning up to 200 listings — this is not a whole-market crawler, so narrow by ZIP code to widen coverage. Photos, listing descriptions, days on market, price history, open-house times, HOA fees and tax records are out of scope, as are agent phone numbers and email addresses.
Free plan limit
Runs started from an Apify free plan stop at 250 requests and 250 results, and the run
reports that it reached the limit. Any paid plan runs the full input and maxItems you set.
The limit exists because this Actor fetches through our own infrastructure, which Apify does not cover for free-plan runs. It binds on requests as well as results so that a large input list cannot spend those fetches for rows the run will not return.