Realtor Rental Listings Scraper avatar

Realtor Rental Listings Scraper

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Realtor Rental Listings Scraper

Realtor Rental Listings Scraper

Get rental listings from Realtor.com with 70+ fields per property: rent, beds and baths, square footage, amenities, pet policy, lease terms, available units, agent contacts, photos and GPS coordinates.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

SilentFlow

SilentFlow

Maintained by Community

Actor stats

2

Bookmarked

27

Total users

5

Monthly active users

4 days ago

Last modified

Share

Realtor.com Rental Scraper - Pay Per Event

1 URL. 100 Realtor Rental Listings results. 0 fields per result.

From SilentFlow. Creators of Pinterest Scraper (#1 for “pinterest pins scraper” in Apify Store search) and Leboncoin Scraper Ppe, with 260,000+ combined lifetime runs.

Pay only for the data you get! Proxies included, no compute costs.

Extract rental listings from Realtor.com, apartments, houses, condos, and townhomes. Get comprehensive rental data including rent prices, pet policies, utilities included, lease terms, amenities, agent contact info, and photos. Search by location, narrow it down with keywords like pool or furnished, or provide direct listing URLs.

✨ Why use this scraper?

  • 💰 Pay per result: only charged for listings you actually get, no wasted compute
  • 🌐 Proxies included: residential proxies bundled in, no setup required
  • 🏠 50+ data fields per listing: rent, beds, baths, pet policy, utilities, amenities, lease terms, agent info, and more
  • 🐾 Rental-specific data: pet policies (cats/dogs, deposits, fees), utilities included, laundry type, parking details
  • ⚡ Concurrent scraping: configurable worker pool processes multiple listings in parallel for fast results
  • 📍 Flexible input: search by city/state location or paste any Realtor.com rental URL directly
  • 🔑 Keyword search: keep only the rentals whose description or features match pool, washer dryer, furnished or any word that matters to you

Try Realtor Rental Listings Scraper

🎯 Use cases

IndustryUse Case
Real estateMonitor rental inventory, track price changes, analyze market trends
Property managementBenchmark your rents against comparable listings in any market
Finance & investmentAnalyze rental yields, cap rates, and market saturation by area
Relocation servicesCompile curated rental lists for clients moving to a new city
Tech & startupsBuild rental databases, recommendation engines, or market dashboards
ResearchStudy rental market dynamics, affordability, and geographic trends

📥 Input parameters

URL Scraping

ParameterTypeDescription
startUrlsArrayRealtor.com URLs to scrape. Accepts search pages, including filtered ones copied from your browser (realtor.com/apartments/Austin_TX/beds-2/price-1000-2500), and individual listing pages (realtor.com/rentals/details/...)
ParameterTypeDescription
locationStringCity and state (Austin, TX), a neighborhood (Brooklyn Heights, Brooklyn, NY), or a ZIP code (78701)
keywordsArrayWords or phrases the listing's description or features must match (pool, washer dryer, furnished). Every keyword must match. Applies to the location and to search URLs, not to individual listing links

Sorting & Filtering

ParameterTypeDefaultDescription
sortStringnewestSort by newest, price_asc, or price_desc
propertyTypeStringallFilter by apartment, house, townhome, condo, or mobile

Limits

ParameterTypeDefaultDescription
maxItemsInteger100Maximum number of listings to save

Options

ParameterTypeDefaultDescription
includeDetailsBooleantrueCollect the full listing record for each result (lease terms, utilities included, deposits and fees, specials, move-in dates)

📊 Output data

Each listing is saved as a structured JSON object:

{
"propertyId": "M1234567890",
"listingId": "2945987601",
"url": "https://www.realtor.com/rentals/details/123-Main-St_New-York_NY_10001_M1234567890",
"listingType": "apartment",
"status": "for_rent",
"address": "123 Main St Apt 4B",
"city": "New York",
"state": "New York",
"stateCode": "NY",
"zip": "10001",
"country": "US",
"lat": 40.7128,
"lng": -74.006,
"neighborhood": "Midtown Manhattan",
"county": "New York County",
"rent": 3500,
"rentMin": 3200,
"rentMax": 4000,
"beds": 2,
"baths": 1,
"sqft": 850,
"availableDate": "2026-03-01",
"listingDate": "2026-02-25T10:00:00Z",
"daysOnMarket": 5,
"leaseTerm": "12 months",
"securityDeposit": 3500,
"applicationFee": 75,
"petsAllowed": true,
"catsAllowed": true,
"dogsAllowed": true,
"petDeposit": 500,
"petFee": 50,
"petPolicy": "Cats and dogs welcome, max 2 pets, deposit required",
"utilitiesWater": true,
"utilitiesGas": false,
"utilitiesElectric": false,
"utilitiesTrash": true,
"utilitiesInternet": false,
"utilitiesCable": false,
"laundryType": "in-unit",
"parkingType": "garage",
"parkingFee": 150,
"yearBuilt": 1995,
"stories": 15,
"unitNumber": "4B",
"buildingName": "The Grand Tower",
"amenities": ["Dishwasher", "Central Air", "Elevator"],
"tags": ["cats", "dogs", "central_air", "laundry_in_unit"],
"details": [
{ "category": "Interior Features", "text": ["Washer/Dryer In Unit", "Dishwasher"] },
{ "category": "Utilities Included", "text": ["Water", "Trash"] }
],
"agentName": "Jane Smith",
"agentPhone": "+12125551234",
"agentEmail": "jane@realty.com",
"officeName": "NYC Realty Group",
"photoCount": 12,
"photos": ["https://ap.rdcpix.com/photo1.jpg", "https://ap.rdcpix.com/photo2.jpg"],
"description": "Beautiful 2BR apartment in Midtown Manhattan with stunning city views.",
"openHouses": [],
"scrapedAt": "2026-02-28T12:00:00Z",
"dataType": "rental"
}

🗂️ Data fields

CategoryFields
IdentificationpropertyId, listingId, url
Type & StatuslistingType, status
Locationaddress, city, state, stateCode, zip, country, lat, lng, neighborhood, county
Pricingrent, rentMin, rentMax
Property detailsbeds, baths, sqft, yearBuilt, stories, unitNumber, buildingName
AvailabilityavailableDate, listingDate, daysOnMarket
Rental termsleaseTerm, securityDeposit, applicationFee
Pet policypetsAllowed, catsAllowed, dogsAllowed, petDeposit, petFee, petPolicy
UtilitiesutilitiesWater, utilitiesGas, utilitiesElectric, utilitiesTrash, utilitiesInternet, utilitiesCable
Building featureslaundryType, parkingType, parkingFee
Amenitiesamenities, tags, details
Agent infoagentName, agentPhone, agentEmail, officeName
MediaphotoCount, photos
Otherdescription, openHouses, scrapedAt, dataType

🚀 Examples

Search by location

{
"location": "Austin, TX",
"maxItems": 200,
"sort": "newest",
"includeDetails": true
}

Search by keyword

Only rentals that come with a pool and a washer and dryer:

{
"location": "Austin, TX",
"keywords": ["pool", "washer dryer"],
"maxItems": 100
}

Scrape specific search URL

{
"startUrls": [
{ "url": "https://www.realtor.com/apartments/Chicago_IL/" }
],
"maxItems": 500,
"includeDetails": true
}

Scrape individual listings

{
"startUrls": [
{ "url": "https://www.realtor.com/rentals/details/123-Main-St_Austin_TX_78701_M1234567890" },
{ "url": "https://www.realtor.com/rentals/details/456-Oak-Ave_Austin_TX_78702_M9876543210" }
]
}

High-volume market research

{
"startUrls": [
{ "url": "https://www.realtor.com/apartments/Los-Angeles_CA/" },
{ "url": "https://www.realtor.com/apartments/San-Francisco_CA/" },
{ "url": "https://www.realtor.com/apartments/Seattle_WA/" }
],
"maxItems": 1000,
"sort": "price_asc"
}

💻 Integrations

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run_input = {
"location": "New York, NY",
"maxItems": 100,
"sort": "newest",
"includeDetails": True,
}
run = client.actor("YOUR_ACTOR_ID").call(run_input=run_input)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"${item['rent']}/mo, {item['beds']}BR {item['listingType']} at {item['address']}, {item['city']}")
if item.get("petsAllowed"):
print(f" Pets: cats={item['catsAllowed']}, dogs={item['dogsAllowed']}")

JavaScript

const { ApifyClient } = require('apify-client');
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('YOUR_ACTOR_ID').call({
location: 'Austin, TX',
maxItems: 200,
sort: 'price_asc',
includeDetails: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach(item => {
console.log(`$${item.rent}/mo, ${item.beds}BR at ${item.address}`);
});

📈 Performance & limits

MetricValue
Listings per requestup to 200
Typical run (100 listings, full details)under 30 seconds
Typical run (1,000 listings, full details)1–3 minutes
Memory usage256 MB

💡 Tips for best results

  • Keep full details on: includeDetails: true adds lease terms, utilities included, security deposits, application and pet fees, move-in dates, and current specials, essential for rental analysis.
  • Use direct search URLs: Copy a filtered Realtor.com URL from your browser (beds, baths, price range, square footage, pets, property type) for more precise results.
  • Search by ZIP or neighborhood: location accepts 78701 or Brooklyn Heights, Brooklyn, NY when a whole city is too broad.
  • Find the features you care about: add keywords such as doorman, furnished or garage to keep only the listings that match them. Start with one or two keywords, each extra one narrows the results further.
  • Cover large markets: Large cities like NYC or LA have thousands of listings. Set maxItems: 2000+ for comprehensive coverage.
  • Filter by property type: Use propertyType to focus on apartments, houses, or specific unit types and speed up your run.
  • Combine multiple cities: Add multiple URLs to startUrls, one per city, for cross-market analysis in a single run.

❓ FAQ

Q: What URL formats does this scraper support? A: Search pages like realtor.com/apartments/Austin_TX/, realtor.com/apartments/New-York_NY/pg-2, realtor.com/apartments/78701, filtered searches like realtor.com/apartments/Austin_TX/beds-2/price-1000-2500/pets-cats,dogs, and individual listing pages like realtor.com/rentals/details/{slug}.

Q: Why does includeDetails matter? A: Search results already include address, rent, beds, baths, pet policy, amenities, photos, and agent contact. Full details add lease terms, utilities included, security deposit, application and pet fees, move-in dates, and current specials. Keep it on for complete datasets.

Q: How do keywords work? A: Each keyword is a word or a phrase matched against the listing's description and features, whatever the letter case, so washer dryer also finds listings that describe their laundry setup. A listing is kept only when it matches every keyword, so ["pool", "gym"] returns rentals with both. Keywords apply to your location and to every search URL in startUrls; they need one of the two to know where to search.

Q: Can I scrape multiple cities in one run? A: Yes, add multiple URLs to startUrls, one per city. All results are combined in a single dataset.

Q: How often does Realtor.com update its listings? A: Listings are typically updated in real time or within hours. Re-run the scraper daily for up-to-date market data.

Q: Is the pet policy data reliable? A: Pet policy data comes directly from the listing agent. Availability varies by listing, some listings don't specify pet policy details.

Q: What's the difference between rent, rentMin, and rentMax? A: For single-unit properties, all three are the same. For multi-unit buildings offering various floor plans, rentMin and rentMax show the price range.

More SilentFlow scrapers

🛒 E-commerce

💼 Jobs

🏠 Real estate

📣 Social media

🏢 Business data

✈️ Travel

🎯 Lead generation

🔎 SEO

📈 Marketing

🧰 More tools

📬 Support

For feature requests or custom scraping solutions, reach out via the Apify platform.