Realtor.com Property Listing Scraper avatar

Realtor.com Property Listing Scraper

Pricing

$1.00 / 1,000 results

Go to Apify Store
Realtor.com Property Listing Scraper

Realtor.com Property Listing Scraper

Search Realtor.com property listings by location and filter by price, size, beds, baths, property type, listing age, and status. Get bounded, structured records with address, pricing, MLS, media, and listing-contact details in an Apify dataset.

Pricing

$1.00 / 1,000 results

Rating

0.0

(0)

Developer

Data Dino

Data Dino

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

a day ago

Last modified

Share

Realtor.com Property Listing Search

Find structured Realtor.com property listings for a location and turn them into an actionable Apify dataset. Search for homes for sale, rentals, sold properties, pending listings, off-market records, or new communities, then narrow the results by price, size, bedrooms, bathrooms, property type, listing age, and sort order.

This actor is built for real estate researchers, investors, brokers, analysts, rental teams, and data workflows that need consistent property records without manually opening and copying listing pages.

Why use this actor?

  • Start with a place, not a complicated URL: search by ZIP code, city, city and state, address, neighborhood, or county.
  • Control the search before collecting data: apply price, size, bedroom, bathroom, property-type, and listing-age filters.
  • Keep runs bounded and predictable: request from 1 to 1,000 properties per run, with a default of 20.
  • Cover more than active listings: choose for-sale, for-rent, sold, pending, off-market, or new-community records.
  • Get practical records in one dataset row: combine listing identity, status, price, address, property facts, MLS identifiers, media, and listing-agent or office details where provided.
  • Move quickly from collection to analysis: export the Apify dataset as JSON or CSV, or consume it through the Apify API.

What you can do with the data

  • Build comparable-property and neighborhood datasets.
  • Find homes that match an investment or acquisition screen.
  • Monitor a location for new, pending, sold, or recently updated listings.
  • Compare asking prices, size, property types, HOA fees, and days on market.
  • Find listing-agent and brokerage contact details attached to available property records.
  • Support rental discovery, market research, territory analysis, and real estate lead workflows.

Input

Only location is required. All other fields are optional.

FieldTypeDescriptionDefault
locationstringZIP code, city, city and state, address, neighborhood, or county to search.San Diego, CA
listingTypestringListing group: for_sale, for_rent, sold, pending, off_market, or new_community.for_sale
bedsMinintegerMinimum number of bedrooms.unset
bedsMaxintegerMaximum number of bedrooms.unset
bathsMinnumberMinimum number of bathrooms.unset
bathsMaxnumberMaximum number of bathrooms.unset
sqftMinintegerMinimum property size in square feet.unset
sqftMaxintegerMaximum property size in square feet.unset
priceMinintegerMinimum listing price in US dollars.unset
priceMaxintegerMaximum listing price in US dollars.unset
pastDaysintegerRestrict listings to the past number of days.unset
pastHoursintegerRestrict listings to the past number of hours.unset
limitintegerMaximum number of properties to request. Valid range: 1–1,000.20
sortBystringSort by list_price, list_date, sqft, beds, baths, or last_update_date.unset
sortDirectionstringSort direction: asc or desc.desc
propertyTypesarray of stringsOptional property types such as single_family, condos, or townhomes.[]

Example input

{
"location": "San Diego, CA",
"listingType": "for_sale",
"bedsMin": 2,
"bathsMin": 2,
"priceMax": 900000,
"sqftMin": 1000,
"limit": 50,
"sortBy": "list_price",
"sortDirection": "asc",
"propertyTypes": ["single_family", "condos"]
}

Output

Each property returned by the run is pushed as one item to the Apify dataset. The exact populated fields depend on the listing and its available source data. Fields may be null when a listing does not provide a value.

Returned records include fields in these groups:

  • Listing identity: property_url, property_id, listing_id, permalink, mls, and mls_id.
  • Status and timing: status, mls_status, list_date, pending_date, last_status_change_date, last_update_date, and days_on_mls.
  • Address and geography: formatted and street-level address fields, city, state, ZIP code, county, FIPS code, latitude, longitude, and neighborhoods.
  • Property facts: bedrooms, full and half bathrooms, square feet, year built, stories, lot size, style, garage parking, HOA fee, and new-construction status.
  • Pricing and history: list price ranges, sold price fields, price per square foot, assessed or estimated values, tax fields, and source-dependent historical information.
  • Listing contacts: agent, broker, builder, and office identifiers, names, emails, MLS references, and phone arrays where provided.
  • Media and additional information: primary and alternate photos, listing text, and nearby-school data where available.

Example dataset item

{
"property_url": "https://www.realtor.com/realestateandhomes-detail/example",
"property_id": "1234567890",
"listing_id": "9876543210",
"status": "FOR_SALE",
"mls_status": "Active",
"formatted_address": "123 Example Street, San Diego, CA, 92101",
"city": "San Diego",
"state": "CA",
"zip_code": "92101",
"beds": 3,
"full_baths": 2,
"sqft": 1450,
"year_built": 2005,
"list_price": 750000,
"price_per_sqft": 517,
"agent_name": "Example Agent",
"office_name": "Example Realty"
}

After the run, open the dataset to browse the results, export them, or continue processing them in your workflow.

Running the actor

  1. Enter a location.
  2. Select a listing type and add only the filters needed for the decision you are making.
  3. Set limit to keep the run within the desired sample size.
  4. Run the actor and open the default dataset.
  5. Export or connect the dataset to the next step in your workflow.

Practical tips

  • Start with a small limit to validate a location and filter combination.
  • Use sortBy: "list_price" with sortDirection: "asc" to review lower-priced matches first.
  • Use pastDays or pastHours when the workflow depends on recent listing activity.
  • Keep source identifiers such as property_id, listing_id, mls, and mls_id when joining or deduplicating records.
  • Treat contact, tax, estimate, school, HOA, and historical fields as source-dependent.

Limitations and responsible use

  • Results depend on Realtor.com availability and the source listing data returned for the selected location and filters.
  • Listings can change, disappear, or move between statuses between runs.
  • Some records will have null or missing optional fields; a field in the output shape is not a guarantee that every listing supplies a value.
  • The actor is a property-listing search, not a full Realtor.com agent-directory search. Agent and office fields are included when attached to a property listing.
  • The current input supports one location per run and a maximum of 1,000 requested properties.
  • Do not treat listing data, prices, estimates, taxes, or contact details as verified financial, legal, appraisal, or professional advice.
  • Respect Realtor.com terms, applicable laws, privacy requirements, and reasonable request limits. Use the resulting data only for authorized and lawful purposes.