Real Estate Aggregator - Multi-Platform
Pricing
from $0.01 / 1,000 results
Real Estate Aggregator - Multi-Platform
Aggregate real estate listings from Zillow, Redfin, Realtor.com & more. Unified data format, deduplication & comprehensive property insights across all major platforms.
Pricing
from $0.01 / 1,000 results
Rating
0.0
(0)
Developer
The Howlers
Maintained by CommunityActor stats
4
Bookmarked
21
Total users
0
Monthly active users
9 hours ago
Last modified
Categories
Share
Real Estate Aggregator - Zillow + Redfin + Realtor
Search several real estate platforms in one run and get one deduplicated list. Listings that appear on more than one site are merged by normalized address, with the price on each platform, the price spread, every source URL and the best photos.
Quick Start
Run with real data
{"zipCode": "78704","platforms": ["zillow", "redfin"],"maxResultsPerPlatform": 50,"deduplicationStrategy": "keep_all_merged"}
How it works
For each platform you pick, the aggregator runs our scraper for that site on your Apify account (Zillow Scraper, Redfin Scraper, Realtor.com Scraper), collects their listings, merges duplicates and returns one row per unique property.
Each source scraper reads only public pages, without stealth browsers, proxy rotation or challenge solving. When a site blocks a source scraper, that scraper returns a status row instead of listings. The aggregator never merges or bills those rows. It reports each platform's outcome:
- one row with
resultType: "status"for every platform that returned no listings, with itsfetchStatus(blocked,no_data,unsupported_inputorerror) and message, platformStatusin theOUTPUTrecord of the key-value store.
Realtor.com today: Realtor.com answers automated requests with a bot check on every page, so it usually returns a blocked status row. Leave it out of platforms to skip that source run.
Input notes: a ZIP code gives the most reliable results. City needs its state ('Austin, TX'). Address input searches the address's ZIP code, and the radius is not applied. Redfin is skipped for recently_sold and for_rent, which its scraper does not cover.
Input Parameters
| Parameter | Type | Default | Required | Description |
|---|---|---|---|---|
platforms | array | ["zillow","redfin","realtor"] | No | Which platforms to search |
city | string | - | No | City and state, for example 'Austin, TX' |
zipCode | string | - | No | ZIP code, for example '78704' |
address | string | - | No | Street address with ZIP code; the ZIP code is searched |
searchRadius | integer | 5 | No | Kept for compatibility, not applied |
priceMin | integer | - | No | Minimum listing price |
priceMax | integer | - | No | Maximum listing price |
bedsMin | integer | - | No | Minimum bedrooms |
bathsMin | integer | - | No | Minimum bathrooms |
propertyTypes | array | [] | No | house, condo, townhouse, multi_family, land |
listingStatus | string | "for_sale" | No | for_sale, pending, recently_sold or for_rent |
maxResultsPerPlatform | integer | 50 | No | Maximum listings from each platform |
deduplicationStrategy | string | "keep_all_merged" | No | How to handle duplicate listings across platforms |
webhookUrl | string | - | No | URL to POST results to when the run finishes |
Pricing
This actor uses pay-per-event billing:
| Event | When it is charged | Price |
|---|---|---|
| Actor start | Once when the run starts, one event per GB of memory (minimum one). At the default 1 GB of memory that is $0.10 per run | $0.10 per GB |
| Listing Aggregated | Per listing aggregated across platforms | $0.04 |
| Result | Each item written to the default dataset | $0.00001 |
The source scraper runs are separate runs on your account and are billed by those actors (their run start plus their per-listing event). Status rows are never charged as listings.
Troubleshooting
Only status rows came back
Every selected platform returned no listings. Read each status row's message. A blocked row means that site answered with its bot check; nothing was charged as a listing.
How do I test for free?
Run the actor with the default input (no location) or set demoMode to true. It returns labeled sample aggregated listings in the live output format. Every sample item carries demo: true and a _notice field, and sample runs charge no task events.
Built by John Rippy | Actor Arsenal