Realtor.com Scraper
Pricing
from $0.99 / 1,000 results
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
Maintained by CommunityActor stats
1
Bookmarked
14
Total users
0
Monthly active users
3 days ago
Last modified
Categories
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.
| Field | Type | Description |
|---|---|---|
listing_id | String | Unique listing identifier when available |
property_id | String | Property identifier when available |
status | String | Listing status, such as for_sale or ready_to_build |
list_price | Number | Current asking price |
price_reduced_amount | Number | Price reduction amount when published |
list_date | String | Listing date when published |
description.beds | Number | Number of bedrooms |
description.baths_consolidated | String | Consolidated bathroom count, which may include half bathrooms |
description.sqft | Number | Interior square footage |
description.lot_sqft | Number | Lot size in square feet |
description.type | String | Primary property type |
description.sub_type | String | Property subtype when available |
description.year_built | Number | Year the property was built |
location.address | Object | Street, city, state, ZIP code, and coordinates when available |
photo_count | Number | Number of published photos |
primary_photo | String | Main listing photo URL |
photos | Array | Available listing gallery photo URLs |
products | Object | Listing product or brand metadata when published |
matterport | Boolean | Whether a Matterport tour is available |
virtual_tours | Array | Available virtual tour links |
permalink | String | Realtor.com listing permalink identifier |
url | String | Direct URL to the property detail page |
source_url | String | Search URL used to find the listing |
page | Number | Search page number where the listing was found |
How to scrape Realtor.com listings
- Open Realtor.com Scraper on Apify.
- Paste a public Realtor.com search URL, or enter a location slug if you do not have a URL.
- Set
results_wantedto the maximum number of listings you need. - Set
max_pagesto limit how many search pages the run may process. - Configure Apify Proxy when you need additional stability for a larger collection.
- Start the run and review the dataset preview.
- 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
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
startUrl | String | No | - | Public Realtor.com search URL. When provided, the Actor uses this URL to identify the search location. |
location | String | No | - | Location slug used when startUrl is not provided, such as Jacksonville_FL, Austin_TX, or another Realtor.com location value. |
results_wanted | Integer | No | 20 | Maximum number of unique listings to save. Must be at least 1. |
max_pages | Integer | No | 5 | Maximum number of search pages to process. Must be at least 1. |
proxyConfiguration | Object | No | No proxy | Apify 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
Basic City Search
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_pageswhen 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_TXorJacksonville_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.
Is it legal to collect Realtor.com data?
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.
Related Actors
- 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.
Legal Notice
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.