L logiover
real-estate · Jun 2, 2026 · 9 min read

How to Scrape Realtor.com US Real Estate Listings in 2026

Scrape Realtor.com for-sale, for-rent and sold listings at scale — price, beds, baths, sqft, lot size, address, agent, photos and coordinates. No login, no API key.

If you want to scrape Realtor.com for structured US property data, the hard part is never the data itself — Realtor.com publishes price, beds, baths, square footage and exact coordinates on every listing page. The hard part is volume. The site is built for a human browsing one home at a time, not for pulling an entire metro’s inventory into a spreadsheet or a warehouse. This guide covers what US real-estate listing data is actually worth, how to drive a Realtor.com scraper by location or by raw search URL, what fields you get back, and the four use cases that make this dataset pay for itself.

Why US real-estate listing data is valuable

Realtor.com is one of the three big US listing portals, fed by MLS data and updated continuously as homes hit the market, change price, and close. For anyone working in property, that stream is gold — but only if you can get it in bulk and in a clean shape.

A single structured record of a listing tells you the asking price, the physical attributes (beds, baths, sqft, lot size, year built), the precise location down to lat/lng, the listing agent and brokerage, and how long it has been on the market. Multiply that across an entire city and you have a comps table, an inventory snapshot, a pricing model’s training set, or a lead list — depending on who’s asking.

The alternative is a licensed MLS feed, which is regional, contract-bound, and slow to set up. Scraping public Realtor.com listing pages gives you a fast, no-contract way to assemble the same shape of data across any US market, with no login, no cookies and no developer API key.

Two input modes: location builder vs. direct search URLs

The scraper accepts two ways of telling it what to pull, and which one you reach for depends on how precise you want to be.

Mode 1 — the location builder

The simplest path is to hand it a location and a listing type. Location can be a city + state, a ZIP code, a county or a neighborhood — Austin, TX, 90210, Miami, FL. Listing type is one of forSale, forRent or sold (it defaults to forSale). Layer on the optional filters — minPrice, maxPrice, minBeds, minBaths, and a sortBy of relevant, newest, price_low or price_high — and the actor builds the equivalent Realtor.com search for you.

{
  "location": "Austin, TX",
  "listingType": "forSale",
  "minPrice": 250000,
  "maxPrice": 750000,
  "minBeds": 3,
  "sortBy": "newest",
  "maxResults": 1000
}

This is the right mode for market-wide pulls: “every 3-bed home for sale in Austin between $250k and $750k, newest first.”

Mode 2 — direct Realtor.com search URLs

If you’ve already dialed in a search in the Realtor.com UI — with map bounds, drawn polygons, or filter combinations the builder doesn’t expose — just copy the URL and paste it into searchUrls. You can pass several at once, and search URLs take priority over the location field, so the location builder is ignored when URLs are present.

{
  "searchUrls": [
    "https://www.realtor.com/realestateandhomes-search/Austin_TX",
    "https://www.realtor.com/realestateandhomes-search/Miami_FL"
  ],
  "maxResults": 2000
}

This mode is ideal when you want pixel-exact parity with a search you tuned by hand, or when you’re feeding a list of pre-built market URLs from somewhere else.

For sale, for rent and sold coverage

The listingType field is what makes this more than a homes-for-sale scraper:

  • forSale — active inventory currently on the market. This is your comps-and-availability dataset.
  • forRent — rental listings, for rent-vs-buy analysis, yield modeling, or rental-market lead lists.
  • sold — recently closed sales. Sold records include the sold price and sold date (from roughly the last 12 months), which is the single most important input for valuation and comp work, because asking prices lie and closing prices don’t.

Pick the type per run, or skip the builder entirely and point searchUrls at any Realtor.com search of any type.

Pagination: thousands of listings per run

A single Realtor.com search page shows you a handful of listings; the full result set is buried behind page after page. The scraper handles that for you — it resolves each search and walks the full result set with deep pagination, streaming records to the dataset as it goes and de-duplicating by property so you don’t get the same home twice.

You control the ceiling with maxResults (it defaults to 200). Raise it to pull thousands of listings across a run. This is the difference between a curiosity and a usable dataset: set the location, raise maxResults, and let it walk the whole market.

Run the Realtor.com Scraper — point it at any city, ZIP or Realtor.com search URL and pull every listing with full property data: price, beds, baths, sqft, agent, photos and coordinates. No login, no API key. $3 per 1,000 listings.

Output: exactly what each listing record contains

Every listing comes back as one clean, structured JSON record. Here’s a real example of the shape:

{
  "listingId": "2995782396",
  "propertyId": "8949222794",
  "url": "https://www.realtor.com/realestateandhomes-detail/801-Huntingdon-Pl_Austin_TX_78745_M89492-22794",
  "status": "for_sale",
  "price": 174900,
  "address": "801 Huntingdon Pl",
  "city": "Austin",
  "state": "TX",
  "postalCode": "78745",
  "county": "Travis",
  "lat": 30.195624,
  "lng": -97.79123,
  "beds": 4,
  "baths": 2,
  "sqft": 1137,
  "lotSize": 6673,
  "propertyType": "single_family",
  "yearBuilt": 1971,
  "garage": 1,
  "stories": 1,
  "listDate": "2026-05-21T23:58:33Z",
  "daysOnMarket": 14,
  "soldPrice": null,
  "soldDate": null,
  "agent": "Jane Smith",
  "broker": "Kritt Real Estate, LLC",
  "images": [
    "http://ap.rdcpix.com/...-m2256901179s.jpg",
    "http://ap.rdcpix.com/...-m2070052377s.jpg"
  ],
  "flags": { "is_new_listing": true, "is_price_reduced": null }
}

Field reference

  • price / soldPrice — the list price, and the last sold price (populated for sold listings).
  • beds / baths / sqft / lotSize — the core property size metrics.
  • propertyTypesingle_family, townhomes, condos, land, and similar.
  • statusfor_sale, for_rent, sold or ready_to_build.
  • address / city / state / postalCode / county — the full address broken into parts, so you don’t have to parse a single address string.
  • lat / lng — exact geo-coordinates, ready for mapping and GIS.
  • yearBuilt / garage / stories — additional building detail.
  • listDate / daysOnMarket — when it was listed and how long it’s been live.
  • agent / broker — the listing agent and the listing brokerage / office.
  • images — the full set of listing photo URLs.
  • url — a direct link back to the listing on Realtor.com.

The address breakdown, the coordinates, and the agent/broker pair are the three things that turn this from a scrape into something you can actually join, map and act on without post-processing.

Use cases

Investors and analysts — comps and inventory

The bread-and-butter use. Pull every for-sale and recently-sold listing in a target market, and you’ve got a comps table keyed by sqft, beds, baths and postalCode, with price and soldPrice for the spread between ask and close. daysOnMarket tells you which segments are moving and which are stale. Because every record carries lat/lng, you can cut comps by exact radius instead of by ZIP boundary.

Proptech and data teams — AVMs and ML models

A valuation or automated-valuation-model pipeline lives and dies on training data. The combination of physical attributes (sqft, lotSize, yearBuilt, beds, baths), location (lat/lng, postalCode, county) and outcome (soldPrice, soldDate) is exactly the feature/label shape an AVM needs. Run the sold listing type across your coverage markets on a schedule and you have a continuously refreshed labeled dataset.

Agents and brokers — monitor the market

Run a tight forSale search for your farm area on a schedule and diff the results. New listDate values are new listings; a changed price with is_price_reduced flagged is a price cut you can react to; rising daysOnMarket flags stale inventory worth a conversation. It’s a homemade market-alert system without paying for a third-party dashboard.

Lead generation — listings, agents and brokerages

Every record carries agent and broker, so a sweep of a market doubles as a directory of who’s actively listing there. Build targeted lists of high-volume agents and brokerages, or of specific listings (new construction, price-reduced, high-DOM) to drive outreach. The listing data and the people behind it come out of the same run.

Why no browser and no API key matters

The actor reads only public listing data over US residential proxies, so it needs no Realtor.com login, no cookies and no developer API key — there’s no account to get restricted. It’s lightweight HTTP access rather than a headless browser, which is what keeps it fast and cheap at scale. The US residential proxy is required (and pre-configured for you) because Realtor.com serves US visitors and bot-protects datacenter traffic; routing through a US residential IP is what keeps the scrape clean.

FAQ

Do I need a login or API key to scrape Realtor.com?

No. The actor reads public listing data only — no Realtor.com account, no cookies, and no developer API key. There’s nothing to authenticate and no account that can be restricted.

How many listings can I pull per run?

Thousands. The scraper paginates the entire search result set and de-duplicates by property. You cap the volume with maxResults, which defaults to 200 — raise it to pull a whole market in one run.

Can I scrape for-rent and sold listings, not just for-sale?

Yes. Set listingType to forRent or sold. Sold listings include the sold price and sold date from roughly the last 12 months, which is what you want for comps and valuation work.

Can I use my own Realtor.com search URL?

Yes. Paste one or more URLs into searchUrls. They take priority over the location builder, so this is the way to get exact parity with a search you tuned by hand in the Realtor.com UI — including map bounds and filter combinations the builder doesn’t expose.

Are coordinates and photos included?

Yes. Every listing record includes exact lat/lng coordinates and the full set of listing photo URLs in images, so the data is ready for mapping, GIS and visual workflows out of the box.

Why is a US residential proxy required?

Realtor.com serves US visitors and bot-protects datacenter traffic. The actor defaults to Apify’s US residential proxy, which is pre-configured for you, so the request looks like a normal US visitor and the scrape stays reliable.

Wrapping up

Realtor.com is one of the richest public sources of US property data — price, size, location, agent and outcome on every listing — but it’s locked behind a one-home-at-a-time UI. A managed scraper flips that: point it at a city, ZIP or search URL, choose for-sale, for-rent or sold, raise maxResults, and walk the whole market into a clean dataset with coordinates and photos attached. Whether you’re building comps, training an AVM, watching your farm area, or generating leads, the data comes out in one shape you can join and act on immediately.

Run the Realtor.com Scraper — for-sale, for-rent and sold US listings with full property data, coordinates and agent details. No login, no cookies, no API key. $3 per 1,000 listings.

This guide (how-to-scrape-realtor-com-us-real-estate-listings.mdx) showed you how to scrape Realtor.com US real estate listings at scale — by location or by direct search URL, across for-sale, for-rent and sold coverage.

Related guides