Realtor.com Scraper avatar

Realtor.com Scraper

Pricing

Pay per event

Go to Apify Store
Realtor.com Scraper

Realtor.com Scraper

Scrape property listings from Realtor.com 🏑 Get prices, addresses, GPS coordinates, agent contacts, photos, and listing details for any US location. Supports for-sale, for-rent, and sold properties.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Scrape real estate listings from Realtor.com without an API key or login. Extract property prices, details, photos, GPS coordinates, and agent information for any US location. Supports for-sale, for-rent, and recently sold listings with powerful filters.

What does Realtor.com Scraper do?

🏑 Realtor.com Scraper extracts structured property listing data from Realtor.com β€” one of the largest real estate marketplaces in the United States with over 100 million monthly visitors and millions of active listings.

Search by city and state, zip code, or neighborhood. Filter by listing type (for sale, for rent, recently sold), price range, bedroom count, and property type. The scraper handles pagination automatically, so you can collect hundreds or thousands of listings in a single run.

Unlike manual browsing or paying for the Realtor.com API, this tool gives you clean, structured JSON data with 20+ fields per listing β€” no browser overhead, no API key required, and no subscription fees.

Who is Realtor.com Scraper for?

🏘️ Real estate investors

  • Screen large numbers of properties quickly with custom filters
  • Track price changes and days-on-market trends across target markets
  • Compare cap rates and price-per-sqft across zip codes

πŸ“Š Market analysts and researchers

  • Build datasets for housing market studies and economic research
  • Monitor listing inventory changes over time with scheduled runs
  • Produce city-level price trend reports with historical data

🀝 Real estate agents and brokers

  • Monitor competitor listings and price reductions in your territory
  • Find qualified seller leads β€” properties with long days-on-market
  • Extract agent contact info for networking and partnership outreach

πŸ“° Data journalists and content teams

  • Gather housing affordability data for articles and reports
  • Create interactive market visualizations from raw listing data
  • Track rental market trends across major metropolitan areas

πŸ’» Developers and data engineers

  • Feed real estate data into custom apps, CRMs, or analytics pipelines
  • Power property recommendation engines and search tools
  • Integrate with BI platforms like Tableau, Power BI, or Looker

Why use Realtor.com Scraper?

  • βœ… No API key or login required β€” works out of the box
  • βœ… Pure HTTP requests β€” no browser overhead, 256 MB memory, extremely fast
  • βœ… 20+ fields per listing β€” price, address, beds, baths, sqft, GPS, agent, photos
  • βœ… Three listing types β€” for sale, for rent, recently sold
  • βœ… Full pagination support β€” collect thousands of listings per location
  • βœ… Proxy rotation built in β€” residential and datacenter proxies available
  • βœ… Pay per result β€” only pay for listings you extract, no fixed subscription
  • βœ… Export in JSON, CSV, Excel, or XML β€” ready for any downstream tool
  • βœ… Schedulable β€” run on a cron to track market changes over time
  • βœ… 200 listings per second β€” a 1,000-listing run completes in under 10 seconds

What data can you extract?

CategoryFields
🏠 PropertyAddress, city, state, zip, property type, year built, lot size
πŸ’° PricingList price, price per sqft, last sold price, last sold date
πŸ“ SizeBedrooms, bathrooms (full + half), interior sqft
πŸ“ LocationGPS latitude and longitude, county
πŸ“… TimingDays on market, listed date
πŸ‘€ AgentAgent name, agent phone
🏒 BrokerBrokerage/brand name
πŸ”— LinksListing URL, primary photo URL
🏷️ FlagsNew listing, price reduced, foreclosure, new construction
⏱️ MetaScraped timestamp

20+ fields per listing β€” everything visible on a Realtor.com search results page.

How much does it cost to scrape Realtor.com listings?

This Actor uses pay-per-event pricing β€” you only pay for listings you extract:

EventPrice
πŸš€ Run started$0.01 (flat, one-time per run)
🏑 Listing scraped$0.003 per listing (BRONZE tier)

Tiered discounts for higher Apify plans:

TierPrice per listingvs BRONZE
FREE$0.00345β€”
BRONZE$0.003baseline
SILVER$0.00234βˆ’22%
GOLD$0.0018βˆ’40%
PLATINUM$0.0012βˆ’60%
DIAMOND$0.00084βˆ’72%

Real-world cost examples (BRONZE):

  • 50 listings: $0.01 + (50 Γ— $0.003) = $0.16
  • 200 listings: $0.01 + (200 Γ— $0.003) = $0.61
  • 500 listings: $0.01 + (500 Γ— $0.003) = $1.51
  • 5,000 listings: $0.01 + (5,000 Γ— $0.003) = $15.01

Free plan estimate: Apify's free plan includes $5 in monthly credits. That's approximately 1,630 listings per month at no cost.

How to scrape Realtor.com listings

  1. Open the Actor β€” go to Realtor.com Scraper on Apify Store
  2. Click "Try for free" β€” you'll be prompted to sign in or create a free account
  3. Enter your search location β€” type a US city/state (e.g., "Austin, TX") or zip code (e.g., "78701")
  4. Select listing type β€” choose For Sale, For Rent, or Recently Sold
  5. Set max results β€” start with 10-20 to preview data before running a larger scrape
  6. Add optional filters β€” price range, bedroom count, property type
  7. Click "Save & Run" β€” the Actor starts immediately
  8. Download results β€” export as JSON, CSV, or Excel from the Dataset tab

Example inputs for different use cases

Find affordable condos in Los Angeles:

{
"location": "Los Angeles, CA",
"listingType": "for_sale",
"maxResults": 100,
"maxPrice": 600000,
"minBeds": 1,
"propertyType": "condo"
}

Track recent home sales in Chicago:

{
"location": "Chicago, IL",
"listingType": "sold",
"maxResults": 200,
"propertyType": "house"
}

Monitor rental market in a specific zip code:

{
"location": "10001",
"listingType": "for_rent",
"maxResults": 50
}

Input parameters

FieldTypeRequiredDefaultDescription
locationStringβœ… Yesβ€”City and state, zip code, or neighborhood (e.g., "New York, NY", "90210")
listingTypeEnumNofor_saleType of listings: for_sale, for_rent, or sold
maxResultsIntegerNo50Maximum listings to return. Set to 0 for unlimited.
minPriceIntegerNoβ€”Minimum listing price filter (USD)
maxPriceIntegerNoβ€”Maximum listing price filter (USD)
minBedsIntegerNoβ€”Minimum number of bedrooms (0–10)
maxBedsIntegerNoβ€”Maximum number of bedrooms (0–10)
propertyTypeEnumNoβ€”Filter by type: house, condo, townhouse, multi_family, or land

Output examples

Each property listing is saved as a flat JSON object:

{
"address": "530 Grand St Apt F8H",
"city": "New York",
"state": "NY",
"zip": "10002",
"price": 1295000,
"beds": 3,
"baths": 2,
"sqft": 1250,
"lotSize": 129224,
"propertyType": "apartment",
"listingStatus": "for_sale",
"daysOnMarket": 27,
"agentName": "Jacob J Goldman",
"agentPhone": "(212) 388-1115",
"brokerName": "LoHo Realty",
"photoUrl": "https://ap.rdcpix.com/302c64c5d054e8e5d823866dff683313l-m3086356730s.jpg",
"url": "https://www.realtor.com/realestateandhomes-detail/530-Grand-St-Apt-F8H_New-York_NY_10002_M34703-16008",
"latitude": 40.714773,
"longitude": -73.980551,
"listedDate": "2026-02-28T02:48:42.000000Z",
"scrapedAt": "2026-03-27T05:51:05.535Z"
}

Output field reference:

FieldTypeDescription
addressStringStreet address
cityStringCity name
stateStringTwo-letter state code
zipStringZIP code
priceNumberList price (USD) β€” rent/month for rentals, last sold price for sold listings
bedsNumberBedrooms
bathsNumberTotal bathrooms
sqftNumberInterior square footage
lotSizeNumberLot size in square feet
propertyTypeStringType: single_family, apartment, condos, townhomes, etc.
listingStatusStringfor_sale, for_rent, or sold
daysOnMarketNumberDays since listing was posted
agentNameStringListing agent's name
agentPhoneStringAgent's phone number
brokerNameStringBrokerage name
photoUrlStringPrimary photo URL
urlStringDirect URL to the Realtor.com listing
latitudeNumberGPS latitude
longitudeNumberGPS longitude
listedDateStringISO 8601 date when listed
scrapedAtStringISO 8601 scrape timestamp

Tips for best results

  • 🎯 Start small β€” use maxResults: 10 for your first run to verify the location and filters work before collecting thousands of listings
  • πŸ“ Zip codes are more precise β€” a zip code search focuses on a specific neighborhood; a city search covers the entire metro area
  • πŸ”„ Schedule recurring runs β€” use Apify's scheduling feature to track new listings daily or weekly in your target market
  • πŸ’° Use price filters β€” narrow your search with price range to reduce costs and get only relevant listings
  • πŸ™οΈ Large cities have many listings β€” New York, NY has 26,000+ for-sale listings. Use maxResults and filters to get a focused dataset
  • πŸ“Š Combine listing types β€” run three searches (for_sale, for_rent, sold) on the same location to get a complete market picture
  • πŸ—“οΈ Track days on market β€” filter for high daysOnMarket values to find motivated sellers

Supported locations

This Actor works with any valid US location that Realtor.com supports:

FormatExamples
City + state"New York, NY", "Los Angeles, CA", "Chicago, IL", "Houston, TX"
Zip code"90210", "10001", "60601", "77001"
Neighborhood"Brooklyn, NY", "Manhattan, NY", "Silver Lake, Los Angeles, CA"
County"Los Angeles County, CA", "Cook County, IL"

Result counts vary by market:

  • New York, NY (for sale): ~26,000 listings
  • Los Angeles, CA (for sale): ~15,000 listings
  • Chicago, IL (for sale): ~8,500 listings
  • Small zip codes: 50–500 listings

Integrations

πŸ”— Realtor.com Scraper works with all major automation platforms through the Apify platform integrations:

  • πŸ“Š Google Sheets β€” automatically export new listings to a spreadsheet for your team. Use the Apify β†’ Google Sheets integration to append rows after every run. Perfect for agents tracking competitor inventory.
  • πŸ’¬ Slack β€” trigger a Slack alert when new listings appear in your target zip code. Connect via webhook or Zapier: "Send to #real-estate-alerts when new for-sale listings under $500K appear in 90210."
  • ⚑ Zapier / Make β€” connect with 5,000+ apps. Common workflows:
    • β†’ Airtable: Build a searchable property database with custom fields
    • β†’ HubSpot CRM: Import agent contact info as leads
    • β†’ Notion: Create a market research workspace
  • πŸ”” Webhooks β€” send results to your own API endpoint in real time as listings are scraped. Ideal for feeding custom dashboards or property alert services.
  • πŸ“§ Email digests β€” schedule a daily run and email yourself a CSV of new listings. Use Apify's built-in email notifications or connect via Zapier.
  • πŸ“… Scheduled monitoring β€” set up a cron schedule (daily, weekly) to track listing inventory, price changes, and days-on-market trends over time.

Using the Apify API

Access Realtor.com Scraper programmatically using the Apify API:

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('automation-lab/realtor-scraper').call({
location: 'Austin, TX',
listingType: 'for_sale',
maxResults: 100,
maxPrice: 600000,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Scraped ${items.length} listings`);
items.forEach(item => {
console.log(`${item.address} β€” $${item.price?.toLocaleString()}, ${item.beds}bd/${item.baths}ba`);
});

Python

from apify_client import ApifyClient
client = ApifyClient(token='YOUR_APIFY_TOKEN')
run = client.actor('automation-lab/realtor-scraper').call(run_input={
'location': 'Austin, TX',
'listingType': 'for_sale',
'maxResults': 100,
'maxPrice': 600000,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(f'Scraped {len(items)} listings')
for item in items:
print(f"{item['address']} β€” ${item['price']:,}, {item['beds']}bd/{item['baths']}ba")

cURL

# Start the run
curl -X POST "https://api.apify.com/v2/acts/automation-lab~realtor-scraper/runs" \
-H "Authorization: Bearer YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"location": "Austin, TX",
"listingType": "for_sale",
"maxResults": 100,
"maxPrice": 600000
}'
# Download results (replace DATASET_ID from the run response)
curl "https://api.apify.com/v2/datasets/DATASET_ID/items?format=json" \
-H "Authorization: Bearer YOUR_APIFY_TOKEN"

Use with AI agents via MCP

Realtor.com Scraper is available as a tool for AI assistants that support the Model Context Protocol (MCP).

Add the Apify MCP server to your AI client β€” this gives you access to all Apify actors, including this one:

Setup for Claude Code

$claude mcp add --transport http apify "https://mcp.apify.com"

Setup for Claude Desktop, Cursor, or VS Code

Add this to your MCP config file:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com"
}
}
}

Your AI assistant will use OAuth to authenticate with your Apify account on first use.

Example prompts

Once connected, try asking your AI assistant:

  • "Use automation-lab/realtor-scraper to find all 3-bedroom condos under $800K for sale in Seattle, WA and show me the cheapest ones"
  • "Scrape the top 50 recently sold homes in Austin, TX and calculate the average price per sqft by property type"
  • "Search for rental listings in 10001 zip code and export them to a CSV sorted by price"

Learn more in the Apify MCP documentation.

Realtor.com listings are publicly accessible and displayed to all visitors without login. This scraper collects only data that is visible to the general public β€” the same information you would see browsing the site manually.

Key legal principles:

  • βœ… Public data only β€” no accounts, no private messages, no personal data beyond agent contact info voluntarily listed on public pages
  • βœ… Ethical rate limits β€” the Actor is designed to make requests at reasonable rates and avoid overloading servers
  • βœ… No circumventing paywalls β€” only free, publicly visible listing data is extracted
  • βœ… GDPR/CCPA considerations β€” agent names and phone numbers are professional contact information intentionally published for business purposes

Always review Realtor.com's Terms of Service and ensure your use case complies. As a general rule, scraping for research, analysis, or internal business use is broadly accepted, while re-selling raw listing data or powering competing listing services may be restricted.

See Apify's data scraping legal guide for a detailed overview of web scraping legality.

FAQ

How fast is the scraper? Very fast. The Actor uses direct HTTP requests to Realtor.com's GraphQL API with no browser β€” approximately 200 listings per second. A 1,000-listing run typically completes in 5–10 seconds. Even large runs of 10,000+ listings finish in under 2 minutes.

How much does it cost to scrape 1,000 listings? On the BRONZE plan: $0.01 (start) + 1,000 Γ— $0.003 = $3.01. On the Apify free plan ($5 credit/month), you can scrape ~1,630 listings per month at no cost.

Does this work with zip codes? Yes. Enter just the zip code as the location (e.g., "90210") for neighborhood-level results. City searches cover the entire metro area, which often returns more listings but less focused.

Why are some fields returning null? Not all listings have complete data on Realtor.com. New or incomplete listings may be missing sqft, lot size, or agent info. The scraper returns null for any field the source does not provide rather than guessing or skipping the listing entirely.

Why is my search returning 0 results? Check that the location is a valid US city/state or zip code that Realtor.com recognizes. Unusual spellings or neighborhood names that Realtor.com doesn't index will return no results. Try a broader location (e.g., the full city name instead of a neighborhood) or verify the location on Realtor.com directly first.

Can I get all listings without a cap? Yes. Set maxResults to 0 to retrieve every listing Realtor.com returns for that location. Be aware that major cities can have tens of thousands of listings β€” set a reasonable limit for testing before running an unlimited scrape.

Is this the same as the official Realtor.com API? No. The official Realtor.com API is a paid B2B product for MLS data access requiring a business agreement and monthly fees. This scraper extracts public search results data without any API key or subscription. It's faster to set up and cheaper for most use cases.

Can I scrape listing details pages? This Actor scrapes search result listings (20+ fields per property). Individual listing detail pages with additional info (full description, tax history, HOA fees, school info) are not currently included in this Actor β€” they would require separate per-listing requests. If you need detailed page data, contact us.

Other real estate scrapers

Browse the full automation-lab actor catalog for 200+ data extraction and automation tools.