Realtor.com Scraper avatar

Realtor.com Scraper

Pricing

from $0.99 / 1,000 results

Go to Apify Store
Realtor.com Scraper

Realtor.com Scraper

Extract live property listings, prices, photos, and agent details from Realtor.com. Perfect for market research, competitor tracking, and real estate lead generation, all automated at scale.

Pricing

from $0.99 / 1,000 results

Rating

5.0

(3)

Developer

Shahid Irfan

Shahid Irfan

Maintained by Community

Actor stats

1

Bookmarked

14

Total users

0

Monthly active users

3 days ago

Last modified

Share

What does Realtor.com Scraper do?

Realtor.com Scraper collects public for-sale and ready-to-build property listings from Realtor.com search locations. Enter a Realtor.com search URL or a location slug such as Austin_TX, choose a result limit, and receive structured property records with prices, property features, addresses, coordinates, photos, listing URLs, and source-page information.

The dataset is useful for real estate market research, investment analysis, lead generation, neighborhood comparisons, listing inventories, and recurring property monitoring. Each run stores the collected records in an Apify Dataset, where you can preview, export, schedule, or connect the results to another workflow.

Why use Realtor.com Scraper?

  • Market research - Compare asking prices, bedroom and bathroom counts, property types, sizes, and locations across US cities, states, and ZIP codes.
  • Investment research - Build a repeatable inventory of properties for sale or ready to build in selected markets.
  • Lead generation - Create property lists with direct listing URLs, addresses, prices, photos, and available property attributes for further qualification.
  • Competitive monitoring - Run the Actor on a schedule and compare listing inventories or pricing snapshots over time.
  • Photo and location data - Collect the primary image, available gallery images, address information, and coordinates when Realtor.com publishes them.
  • Automation-ready exports - Download data as JSON, CSV, Excel, XML, or use the Apify API and webhooks to pass results into your own systems.
  • Controlled collection - Set both the maximum number of listings and the maximum number of search pages for predictable runs.
  • Duplicate-free results - Repeated listings found during a run are removed before records are saved.

What data can you extract from Realtor.com?

Each dataset item represents one property listing. Realtor.com may omit individual attributes for listings that do not publish them, so some nested fields are optional.

FieldTypeDescription
listing_idStringUnique listing identifier when available
property_idStringProperty identifier when available
statusStringListing status, such as for_sale or ready_to_build
list_priceNumberCurrent asking price
price_reduced_amountNumberPrice reduction amount when published
list_dateStringListing date when published
description.bedsNumberNumber of bedrooms
description.baths_consolidatedStringConsolidated bathroom count, which may include half bathrooms
description.sqftNumberInterior square footage
description.lot_sqftNumberLot size in square feet
description.typeStringPrimary property type
description.sub_typeStringProperty subtype when available
description.year_builtNumberYear the property was built
location.addressObjectStreet, city, state, ZIP code, and coordinates when available
photo_countNumberNumber of published photos
primary_photoStringMain listing photo URL
photosArrayAvailable listing gallery photo URLs
productsObjectListing product or brand metadata when published
matterportBooleanWhether a Matterport tour is available
virtual_toursArrayAvailable virtual tour links
permalinkStringRealtor.com listing permalink identifier
urlStringDirect URL to the property detail page
source_urlStringSearch URL used to find the listing
pageNumberSearch page number where the listing was found

How to scrape Realtor.com listings

  1. Open Realtor.com Scraper on Apify.
  2. Paste a public Realtor.com search URL, or enter a location slug if you do not have a URL.
  3. Set results_wanted to the maximum number of listings you need.
  4. Set max_pages to limit how many search pages the run may process.
  5. Configure Apify Proxy when you need additional stability for a larger collection.
  6. Start the run and review the dataset preview.
  7. Export the results or connect the dataset to your application, spreadsheet, or automation workflow.

The Actor collects for-sale and ready-to-build results returned for the selected Realtor.com location. It does not apply price, bedroom, or property-type filters inside the run. For those filters, start with a Realtor.com search URL that already contains the desired search settings, or filter the resulting dataset after collection.

Input Parameters

ParameterTypeRequiredDefaultDescription
startUrlStringNo-Public Realtor.com search URL. When provided, the Actor uses this URL to identify the search location.
locationStringNo-Location slug used when startUrl is not provided, such as Jacksonville_FL, Austin_TX, or another Realtor.com location value.
results_wantedIntegerNo20Maximum number of unique listings to save. Must be at least 1.
max_pagesIntegerNo5Maximum number of search pages to process. Must be at least 1.
proxyConfigurationObjectNoNo proxyApify Proxy configuration for larger or repeated runs.

If both startUrl and location are omitted, the Actor uses its default Jacksonville, Florida search location. If both are provided, startUrl takes priority for the search location.

Usage Examples

Collect 20 listings from a Realtor.com search URL using a small page limit for an initial check:

{
"startUrl": "https://www.realtor.com/realestateandhomes-search/Jacksonville_FL",
"results_wanted": 20,
"max_pages": 3
}

Search by Location Slug

Use a city and state slug when you do not want to paste a complete search URL:

{
"location": "Austin_TX",
"results_wanted": 50,
"max_pages": 5
}

Larger Collection with Apify Proxy

Collect up to 200 listings across more search pages and enable a residential Apify Proxy group:

{
"startUrl": "https://www.realtor.com/realestateandhomes-search/Orlando_FL",
"results_wanted": 200,
"max_pages": 10,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": [
"RESIDENTIAL"
]
}
}

Sample Output

The following example shows one realistic dataset item. Optional fields are included only when the source provides them.

{
"listing_id": "2981057150",
"property_id": "5249218121",
"status": "for_sale",
"list_price": 1900000,
"price_reduced_amount": 50000,
"list_date": "2026-07-15T12:00:00Z",
"description": {
"beds": 5,
"baths_consolidated": "4.5",
"sqft": 3509,
"lot_sqft": 903870,
"type": "single_family",
"year_built": 1997
},
"location": {
"address": {
"line": "455 County Road 217",
"city": "Jacksonville",
"state_code": "FL",
"postal_code": "32234",
"coordinate": {
"lat": 30.3322,
"lon": -81.6557
}
}
},
"photo_count": 24,
"primary_photo": "https://ap.rdcpix.com/example-primary-od.jpg",
"photos": [
"https://ap.rdcpix.com/example-primary-od.jpg",
"https://ap.rdcpix.com/example-gallery-od.jpg"
],
"matterport": true,
"virtual_tours": [
{
"href": "https://my.matterport.com/show/?m=example"
}
],
"permalink": "455-County-Road-217_Jacksonville_FL_32234_M52492-18121",
"url": "https://www.realtor.com/realestateandhomes-detail/455-County-Road-217_Jacksonville_FL_32234_M52492-18121",
"source_url": "https://www.realtor.com/realestateandhomes-search/Jacksonville_FL",
"page": 1
}

Tips for Best Results

  • Validate the location first - Run 20 to 50 listings before starting a larger collection.
  • Use Realtor.com search URLs - Apply any available search settings on Realtor.com before copying the URL when you need a narrower result set.
  • Keep page limits intentional - Increase max_pages when you need wider coverage, but keep it low during testing.
  • Use a location slug carefully - Common values follow a city and two-letter state pattern, such as Austin_TX or Jacksonville_FL.
  • Enable proxy for larger runs - Apify Proxy can improve consistency when collecting larger datasets or running repeated jobs.
  • Expect optional fields - A listing may not include a lot size, year built, coordinates, photos, or virtual tour. Empty source attributes are not replaced with guesses.
  • Schedule snapshots - Run the Actor daily or weekly when you need to compare listing availability and prices over time.

Integrations

  • Google Sheets - Review and share listing inventories with a team.
  • Airtable - Build a searchable property database with views and filters.
  • Make or Zapier - Send new dataset results to downstream business tools.
  • Webhooks - Notify your application when an Actor run completes.
  • Apify API - Start runs and read dataset items programmatically.

Export Formats

Apify Dataset results can be downloaded as JSON, CSV, Excel, XML, and other supported formats. JSON is suitable for applications and data pipelines, while CSV and Excel are convenient for analysis and reporting.

Frequently Asked Questions

What type of Realtor.com listings does this Actor collect?

It collects public for_sale and ready_to_build property listings returned for the selected search location.

Can I collect listings from a ZIP code?

Yes. Use a Realtor.com search URL for the ZIP code, or provide the corresponding location value when Realtor.com supports it.

Can I scrape multiple locations in one run?

The input schema accepts one startUrl or one location value per run. For multiple locations, run the Actor separately for each search or automate multiple runs with the Apify API and schedules.

Can I filter by price, bedrooms, or property type?

The Actor does not expose separate price, bedroom, or property-type input fields. Use a Realtor.com search URL with the desired filters, or filter the saved dataset in your downstream workflow.

Why are some fields missing?

Realtor.com does not publish every attribute for every listing. The Actor keeps the available source data and removes empty values, so fields such as lot size, coordinates, photos, and virtual tours may be absent for some records.

How many listings can I collect?

Set results_wanted to the number of unique listings you want and use max_pages as a safety limit. Start with a smaller run, then increase both values after checking the dataset preview.

Can I schedule recurring runs?

Yes. Create an Apify Schedule to run the Actor hourly, daily, weekly, or on a custom interval for market snapshots and listing monitoring.

Public data collection may be subject to website terms, contracts, copyright, privacy rules, and local laws. Review Realtor.com terms and applicable regulations before using the data, and use the results responsibly. You are responsible for deciding whether your intended use is permitted.

  • iProperty Scraper - Collect Malaysian property listings, prices, locations, and agent information.
  • Propertyfinder Scraper - Collect UAE sale and rental listings with property details, locations, images, and broker data.
  • Zameen.com Scraper - Collect property listings for Pakistan, including houses, plots, and commercial properties.
  • Hemnet.se Scraper - Collect Swedish property listings for real estate research and market analysis.

Support

For bugs, feature requests, or questions about a run, use the Issues tab on the Actor page in Apify Console. Include the input JSON, the affected search location, and a short description of the dataset result so the issue can be investigated efficiently.

This Actor is intended for legitimate collection of publicly available property listing data. Users are responsible for complying with Realtor.com terms of service, applicable laws, privacy requirements, and any restrictions on storing, sharing, or using listing content and images.