Realtor Property Scraper
Pricing
from $8.10 / 1,000 results
Realtor Property Scraper
Search Realtor.com property listings in the United States. Extract sale, rent, and sold listing data with prices, beds, baths, area, images, location details, agents, and source URLs.
Pricing
from $8.10 / 1,000 results
Rating
5.0
(2)
Developer
AgentX
Maintained by CommunityActor stats
3
Bookmarked
40
Total users
6
Monthly active users
1.5 hours
Issues response
4 days ago
Last modified
Categories
Share
Realtor Property Scraper is a realtor.com property scraper that searches Realtor.com by location and returns 40 normalized, source-linked property fields. It is designed for real estate analysts and acquisition teams that need repeatable Dataset rows instead of manual copy-and-paste research.
- 40 public Dataset fields cover identity, price, rooms, area, location, media, contacts, provenance, and processing time.
- 7 public inputs with four required fields keep the request explicit while leaving optional filters unset unless supplied.
- the United States coverage is routed through Realtor.com according to the verified source map.
- Pay-per-event billing is $0.01000 per Actor Start plus one Result event for each row stored in the default Dataset.
The smallest useful test sets max_results to 1; at the FREE price it costs at most $0.01900 when one listing is stored.
Why Choose Realtor Property Scraper
Realtor Property Scraper turns a source-specific property search into a consistent record contract that downstream tools can validate and export.
- Traceable research. Every accepted row can carry
platform,source_url,processor, andprocessed_at, so a reviewer can return to the originating listing. - Comparable listing facts. Nested
price,rooms,area,geo,building, andcontactobjects reduce source-specific column sprawl. - Bounded collection.
max_resultscaps accepted listings, while requiredcountry,location, andlisting_typestate the intended market and transaction. - Optional filters stay optional.
property_type,posted_since, andplatformsremain present in every edition. Leaving an optional field empty does not invent a request filter; fixed routes document fields they cannot apply. - Export-ready output. Apify Datasets can be downloaded as JSON, CSV, Excel, XML, or RSS and consumed through the API.
The practical decision is whether Realtor.com and the United States match the project. Search results reflect the listings and fields Realtor.com exposes for the requested market at run time.
Quick Start Guide
The console already contains a verified working prefill, so a first run can be reduced to one result before increasing scope.
Step 1: Configure the search
Open the Input tab. The current prefill is {"max_results": 10, "country": "United States", "location": "Chicago, IL", "listing_type": "for_sale"}. Set max_results to 1 for the smallest check and keep the country, location, and listing type explicit.
Step 2: Run the Actor
Start the run and inspect the log for the final returned-property count. A successful run can still store zero rows when the source has no matching public listing, the location cannot be resolved, or a requested filter is unsupported.
Step 3: Collect and verify
Open the default Dataset, inspect title, price, location, platform, and source_url, then export only after confirming that the sample supports the intended use.
Input Parameters
Realtor Property Scraper exposes 7 public inputs in the shared family order. max_results, country, location, and listing_type are required in every edition; property_type, posted_since, and platforms remain present and optional even when a fixed route requires them to be left empty.
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
max_results | integer | Yes | Maximum number of property listings to return from Realtor.com | 10 |
country | string (1 schema option) | Yes | Fixed market for Realtor.com: United States. | United States |
location | string | Yes | City, region, neighborhood, postal code, or address to search on Realtor.com | Chicago, IL |
listing_type | string (3 schema options) | Yes | Transaction types supported by Realtor.com: for_sale, for_rent, and sold. | for_sale |
property_type | string (8 schema options) | No | Optional Realtor.com property-type filter: residential, house, apartment, condo, townhouse, land, new_development, and ready_to_build. Leave empty for no property-type restriction. | optional |
posted_since | string | No | Optional listing-age filter supported by the fixed Realtor.com route. Accepts YYYY-MM-DD or a relative value such as 7 days. | optional |
platforms | array (1 schema option) | No | Compatibility selector retained across every property-family edition. This edition always uses Realtor.com; leave empty or select Realtor.com. | optional |
The effective console prefill is:
{"max_results": 10,"country": "United States","location": "Chicago, IL","listing_type": "for_sale"}
The platforms field is intentionally retained with the singleton schema value Realtor.com. Runtime identity fixes this edition to Realtor.com; the field is not deleted merely to differentiate the product.
property_type and posted_since affect requests only when explicitly supplied with a value supported by this route.
Output Data Schema
Each Dataset row is one accepted property advertisement normalized into exactly 40 top-level fields; unavailable source values remain empty rather than being guessed.
| Group | Fields |
|---|---|
| Identity, media, and classification | cover_image, image_urls, title, description, listing_id, mls_id, listing_type, availability, market_type, property_type, subtype, category, business_type |
| Price and size | price, rooms, area, land |
| Place and timing | location, address, geo, country, building, dates, posted_time |
| Listing detail | fees, media, open_houses, features, amenities, details, reviews, policies, units, nearby |
| Contact and provenance | contact, platform, source_url, official_url |
| Processing | processor, processed_at |
The following item is abbreviated; a real row follows the full 40-field schema and may contain additional nested values or empty fields:
{"title": "Illustrative Chicago, IL property listing","listing_id": "source-12345","listing_type": "for_sale","property_type": "apartment","price": {"value": 750000,"text": "750,000","currency": "USD"},"rooms": {"beds": 2,"baths": 2},"location": "Chicago, IL","country": "United States","platform": "realtor","source_url": "https://example.com/property/source-12345","processed_at": "2026-08-10T12:00:00.000Z"}
Use JSON when nested objects must stay intact, CSV or Excel for tabular review, and the Dataset API for incremental downstream processing. Always retain source_url when results will be reviewed later.
Integration Examples
Use Actor ID eou9sUeDcGLZomwXL or the name form agentx/realtor-property-scraper to call Realtor Property Scraper from HTTP, an SDK, automation tools, or MCP.
Actor ID
eou9sUeDcGLZomwXL
The name form agentx/realtor-property-scraper is also accepted by Apify clients.
HTTP
curl -X POST "https://api.apify.com/v2/acts/eou9sUeDcGLZomwXL/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"max_results": 1, "country": "United States", "location": "Chicago, IL", "listing_type": "for_sale"}'
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("eou9sUeDcGLZomwXL").call(run_input={"max_results": 1, "country": "United States", "location": "Chicago, IL", "listing_type": "for_sale"})items = client.dataset(run["defaultDatasetId"]).list_items().items
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('eou9sUeDcGLZomwXL').call({"max_results": 1, "country": "United States", "location": "Chicago, IL", "listing_type": "for_sale"});const { items } = await client.dataset(run.defaultDatasetId).listItems();
Make.com
Use the Apify Run an Actor module, paste eou9sUeDcGLZomwXL, map the one-result JSON input, wait for completion, and pass the default Dataset items to the next module.
n8n
Use an HTTP Request node with POST https://api.apify.com/v2/acts/eou9sUeDcGLZomwXL/runs, authenticate with an Apify token, and send the same JSON body. Read defaultDatasetId from the completed run before requesting items.
MCP
Connect the official Apify MCP server, choose Actor eou9sUeDcGLZomwXL, and provide max_results, country, location, and listing_type from the one-result scenario. The live API page contains generated endpoint and SDK references.
Pricing
Realtor Property Scraper costs $0.00900 per Result on the FREE tier, plus a $0.01000 Actor Start; a one-result test totals at most $0.01900.
| Plan tier | Price per Result |
|---|---|
| FREE | $0.00900 |
| BRONZE | $0.00810 |
| SILVER | $0.00720 |
| GOLD | $0.00675 |
| PLATINUM | $0.00675 |
| DIAMOND | $0.00675 |
One Result event is charged for each listing stored in the default Dataset. Actor Start is a one-time run event under the current 1 GB configuration; platform accounting can scale that start event with memory. A 10-result FREE-tier run costs $0.01000 + 10 × $0.00900 = $0.10000 when all ten rows are stored. Empty searches do not create Result events, although Actor Start still applies.
Prices can change; confirm the live pricing page before a production run.
Use Cases
Realtor Property Scraper fits bounded workflows where source-linked listing rows are more useful than an opaque aggregate.
- Comparable-property review. Use
price,rooms,area,location, andsource_urlto assemble a review queue for assemble a Chicago sale-listing review queue. - Inventory monitoring. Schedule the same required inputs and compare
listing_id,price,availability, andprocessed_atbetween Datasets. - Lead research. Review
contact,official_url, andsource_urlonly when the source exposes them and the intended outreach is lawful. - Regional snapshots. Group
geo,country,property_type, andlisting_typeto describe visible public inventory without claiming full-market coverage. - Data-quality sampling. Measure which of the 40 fields are populated for a location before designing a larger integration.
The reverse fit matters: Choose a licensed listing feed when you need permissioned bulk redistribution, service levels, or complete MLS coverage.
Alternatives
The best alternative depends on scale, rights, and the decision the data must support.
- Manual source search is reasonable for a handful of listings that a person can verify immediately; it stops being efficient when the same fields must be compared or refreshed repeatedly.
- The source's own search experience is best for interactive browsing, saved searches, maps, and consumer decisions. Realtor.com documents the source behavior relevant to this route: Realtor.com's official sitemap distinguishes homes for sale, rentals, new construction, foreclosures, and recently sold homes.
- An official or licensed feed is the better path for contractual rights, service levels, or complete inventory. This Actor does not turn public pages into a licensed feed.
- A valuation or analytics product is better when the deliverable is an appraisal, forecast, or modeled market estimate rather than source-attributed advertisements.
Choose something else if the project cannot tolerate nullable fields, requires a guaranteed refresh interval, or lacks permission for the planned access and reuse.
Limits and Troubleshooting
Source conditions determine what a run can return, so troubleshoot with the smallest one-result input first.
- Zero rows → no public match or unresolved place → retry the exact
Chicago, ILscenario, verify spelling and country, then loosen only one optional filter. - Requested filter skipped → source route does not support it → remove the optional
property_typeorposted_sincevalue and rerun; do not assume every schema-wide option works on every marketplace. - Fewer rows than
max_results→ source inventory or detail acceptance ended first → treatmax_resultsas a ceiling, not a promise. - Empty nested values → the advertisement did not expose them → keep null handling in downstream code and verify material facts through
source_url. - Intermittent source response → public pages or anti-automation controls changed → rerun the one-result case and report the run ID if the same input remains reproducible.
For a reproducible defect, open the Issues page and include the run ID, sanitized input, expected result, actual result, and UTC timestamp.
Trust and Reliability
Trust comes from a checkable contract: Apify isolates each run, the Actor bills stored rows as Result events, and the Dataset schema names 40 public fields.
The Actor does not fabricate absent listing facts. It normalizes values exposed by the source, preserves a source URL when available, and timestamps processing. A stable schema makes downstream validation possible, but it does not guarantee that every source fills every field.
Use max_results=1 as a release check for a critical workflow. Confirm the returned platform, listing type, location, price currency, and source URL before increasing the result ceiling or scheduling recurring runs.
Legal and Compliance
Public data scope. The Actor processes publicly reachable property advertisements; it does not grant access rights, ownership, or a license to reuse source content.
Platform rules. Review the source's terms, robots controls, and applicable database or copyright rules before collection. Realtor.com documents the source behavior relevant to this route: Realtor.com's official sitemap distinguishes homes for sale, rentals, new construction, foreclosures, and recently sold homes.
Privacy and decisions. Minimize personal contact data, set retention limits, secure exports, and do not use an advertisement alone for housing, lending, legal, or investment decisions. Verify important facts with the source and qualified professionals.
Frequently Asked Questions
How do I scrape realtor.com property listings?
Set country, location, listing_type, and max_results, leave unsupported optional filters empty, and start with one result. The Chicago, IL scenario is a verified bounded example for this Actor.
Can I export realtor.com listings to csv?
Yes. Run Realtor Property Scraper, keep source_url and platform, and export the default Dataset as CSV, Excel, or JSON. The output is a normalized listing dataset, not an official source API response.
Is there a free property listings API?
Apify accounts can test Actors within their available platform credits, but this Actor charges $0.01000 for Actor Start and $0.00900 per stored Result on the FREE pricing tier. Check the live pricing page and account limits before running.
Can I schedule runs to monitor property listings over time?
Yes. Apify Schedules can repeat the same explicit input. Store each Dataset snapshot and compare listing_id, price, availability, and processed_at; the Actor itself does not maintain a historical database or send listing-change alerts.
Why are some of the 40 fields empty?
Each public advertisement exposes a different set of details. Empty values mean the source record did not provide a reliable value or the detail page was unavailable; downstream code should treat nullable fields as expected.
Does max_results guarantee that many listings?
No. It is an upper bound. The Actor can return fewer rows when inventory is limited, filters exclude candidates, a location cannot be resolved, or the source does not expose enough acceptable details.
Is Realtor Property Scraper affiliated with Realtor.com?
No. Realtor Property Scraper is an independent AgentX Actor. It does not represent, endorse, or replace Realtor.com, and users remain responsible for permission and compliant reuse.
Related AgentX Actors
AgentX currently has 77 Actor repositories; this section lists the three closest choices first, followed by the complete generated catalog.
Closest to this Actor:
- All Property Scraper — narrows the workflow to its source-specific search contract.
- Zillow Property Scraper — covers an adjacent market with the same 40-field Dataset shape.
- Homes Property Scraper — provides the closest alternative route for cross-source comparison.
Business and Market Intelligence
- Google Keyword Trends — Google Trends keyword interest, compared five at a time
- Google Trends Scraper — Google Trends trending searches
- Google Maps Store Scraper — Google Maps business listings
- LinkedIn Company Lookup — LinkedIn company records
- LinkedIn Profile Lookup — LinkedIn profile records
- Weather Forecast API — forecast and historical weather data
Jobs and Hiring
- All Jobs Scraper — multi-platform job listings
- Bayt Jobs Scraper — Bayt job listings
- Glassdoor Jobs Scraper — Glassdoor job listings
- Indeed Jobs Scraper — Indeed job listings
- JobStreet Company Profile — JobStreet employer records
- Jooble Jobs Scraper — Jooble job listings
- LinkedIn Jobs Scraper — LinkedIn job listings
- Naukri Jobs Scraper — Naukri job listings
- Talent Jobs Scraper — Talent.com job listings
- ZipRecruiter Jobs Scraper — ZipRecruiter job listings
Social Media
- Instagram Creator Scraper — Instagram creator profiles
- Instagram Reels Scraper — Instagram Reels metadata
- Instagram Trending Scraper — Instagram trending content
- Medium Scraper — Medium articles
- Medium Profile Scraper — Medium author profiles
- Reddit Profile Scraper — Reddit user profiles
- Reddit Viral Scraper — Reddit viral posts
- SubReddit Info Scraper — subreddit metadata
- Subreddit Members Scraper — subreddit member lists
- Subreddit Posts Scraper — subreddit post feeds
- Telegram Chat Scraper — Telegram chat messages
- Telegram Info Scraper — Telegram channel metadata
- Telegram Member Adder — Telegram group membership management
- Telegram Member Scraper — Telegram group members
- Telegram Private Group Scraper — private Telegram group data
- TikTok Creator API — TikTok creator profiles
- X Twitter Community API — X community data
- X Twitter Profile Lookup — X profile records
- YouTube Creator Email Scraper — YouTube creator contact data
Video, Transcripts and Downloads
- All Video Scraper — multi-platform video metadata
- Video Transcript — multi-platform transcripts
- Video Captions Downloader — caption files
- Video to Social Post — video repurposed into social copy
- YouTube Transcript — YouTube transcripts
- TikTok Transcript — TikTok transcripts
- X Twitter Transcript — X video transcripts
- Facebook Transcript — Facebook video transcripts
- Bilibili Transcript — Bilibili transcripts
- Dailymotion Transcript — Dailymotion transcripts
- Rutube Transcript — Rutube transcripts
- Loom Transcript — Loom transcripts
- Wistia Transcript — Wistia transcripts
- Live Stream Transcript — live stream transcripts
- Instagram Reels Downloader — Reels downloads
- Kick Clip Downloader — Kick clip downloads
- Linkedin Video Downloader — LinkedIn video downloads
- Pinterest Video Downloader — Pinterest video downloads
- Reddit Video Downloader — Reddit video downloads
- Snapchat Video Downloader — Snapchat video downloads
- TED Talk Downloader — TED talk downloads
- TikTok Live Downloader — TikTok live downloads
- Twitch VOD Downloader — Twitch VOD downloads
- Zoom Recording Downloader — Zoom recording downloads
E-Commerce and Retail
- All Shopping Scraper — multi-platform product data
- AliExpress Product Scraper — AliExpress products
- Amazon Storefront Scraper — Amazon Brand Store pages
- Bol Product Scraper — Bol.com products
- eBay Seller Leads API — eBay seller records
- Hepsiburada Product Scraper — Hepsiburada products
- Kakaku Product Scraper — Kakaku.com products
- Rakuten Product Scraper — Rakuten products
Classifieds and Automotive
- All Vehicle Scraper — multi-platform vehicle listings
- AutoTrader Vehicle Search — AutoTrader US listings
- AutoTrader UK Vehicle Search — AutoTrader UK listings
Real Estate
- All Property Scraper — multi-platform property listings
- Homes Property Scraper — Homes.com listings
- MagicBricks Property Scraper — MagicBricks listings
- NoBroker Property Scraper — NoBroker listings
- Property24 Property Scraper — Property24 listings
- Zillow Property Scraper — Zillow listings
Support and Community
Ask about Realtor.com search inputs, nullable property fields, and Dataset integrations in the AgentX community on Telegram; for a reproducible bug, open an Issue with the run ID and the exact input.
AgentX is an Arcyton brand — arcyton.com.
Last Updated: August 10, 2026