Real Estate Aggregator
Pricing
from $1.50 / 1,000 extracted listings
Real Estate Aggregator
Multi-source scraper for real estate data. Supports rent and sale listings and details, deduplication, and consistent output from Zillow, Realtor, Zumper, Apartments.com, and Redfin.
Pricing
from $1.50 / 1,000 extracted listings
Rating
5.0
(3)
Developer
Tri⟁angle
Maintained by ApifyActor stats
12
Bookmarked
600
Total users
19
Monthly active users
10 days ago
Last modified
Categories
Share
Scrape US real estate listings from Zillow, Redfin, Realtor.com, Zumper, and Apartments.com at once
Real Estate Aggregator searches five US listing sites for one location in a single run and returns every result in the same format: Realtor.com, Apartments.com, Zumper, Zillow, and Redfin. Give it a ZIP code or a city and choose rent or sale. It queries each site that covers that offer type, normalizes the listings into one schema, and can remove the same home when it appears on several sites.
What you get
One dataset row per listing, with the same fields whichever site it came from:
| Field | What it holds |
|---|---|
source | The provider it came from, the listing url there, its localId, and scrapedAt |
offerType, propertyType, propertyTypeRaw | Rent or sale, the normalized property type, and the site's own label |
price | The asking price or rent |
bedrooms, bathrooms, livingArea, landArea, areaUnit | Size, in square feet or square meters |
address, gps | Street, city, state, ZIP, county, and coordinates |
title, description, pictures | The listing text and photos |
extras | Days on market, HOA, and the site-specific data that does not fit the shared fields |
With includeDetails on, each site reads the listing's own page and adds:
| Field | What it holds |
|---|---|
yearBuilt, numberOfStories, numberOfUnits | Building facts |
schools | Nearby schools with rating and distance |
amenities | Features grouped the way the site groups them |
Some sites also add site-specific data under extras.providerData, such as price history and tax records (Redfin), sale history (Realtor.com), open houses (Redfin, Realtor.com), and agent contacts (Redfin, Realtor.com, Zumper). Which fields are filled depends on the site and the listing.
Which sites cover what
| Site | Rent | Sale | Details |
|---|---|---|---|
| Realtor.com | Yes | Yes | Yes |
| Zillow | Yes | Yes | Yes |
| Redfin | Yes | Yes | Yes |
| Apartments.com | Yes | No | Yes |
| Zumper | Yes | No | Yes |
For a sale search, Apartments.com and Zumper are skipped and the run log says so.
How to run it in Apify Console
- Open Real Estate Aggregator and enter a
location, such as90210orAustin, TX. - Choose
offerType:rentorsale. - Optionally pick the
providers, setmaxResultsper site, and turn onincludeDetailsordeduplicateResults. - Start the run and export the dataset as JSON, CSV, or Excel.
It searches one location per run. For several locations, start one run for each.
Input
| Field | Type | What it does |
|---|---|---|
location | string | One place name, ZIP code, or postcode. Required |
offerType | string | rent or sale. Default sale. Required |
providers | array | Which sites to search: realtor, apartments, zumper, zillow, redfin. Default all five |
maxResults | integer | The most listings from each site. Default 100 |
includeDetails | boolean | Read each listing's own page for richer records. Default false |
deduplicateResults | boolean | Remove listings that appear on several sites, matched on offer type, country, ZIP, and street, keeping the first. Default false |
units | string | imperial (square feet, the default) or metric (square meters) |
propertyTypes | array | Any of house, condo, apartment, townhouse, land, multifamily, other. Applied on Realtor.com and Redfin; other sites return all property types |
radiusMiles | number | Search radius around the location. Applied on Realtor.com only; other sites ignore it |
The smallest input that works:
{"location": "90210","offerType": "sale"}
Rentals in one city, all sites, duplicates removed:
{"location": "Austin, TX","offerType": "rent","maxResults": 200,"deduplicateResults": true}
Call it from code, or from an AI agent
Start a run with the Apify API and read the listings when it finishes:
curl -X POST "https://api.apify.com/v2/acts/tri_angle~real-estate-aggregator/runs" \-H "Authorization: Bearer $APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"location": "90210", "offerType": "sale", "deduplicateResults": true}'
The response carries the run's defaultDatasetId. Read the listings from https://api.apify.com/v2/datasets/{defaultDatasetId}/items once the run has finished. A run queries several sites, so start it asynchronously like this.
To let an agent use it, connect Apify's MCP server at https://mcp.apify.com in Claude, Cursor, or any MCP client and add Real Estate Aggregator as a tool. The agent gets one comparable set of listings for an area instead of five different formats.
What it costs
You pay per event, at the price of your Apify plan:
| Event | Free plan | Diamond plan |
|---|---|---|
| Actor start | $0.0012 | $0.00084 |
| Listing | $0.002 | $0.0015 |
Detailed listing (with includeDetails) | $0.002 | $0.0015 |
| Deduplication add-on, once per run | $0.005 | $0.003 |
Five sites with the default 100 listings each can return up to 500 listings, about $1 on the Free plan. Deduplication is charged once per run, however many duplicates it removes.
Limitations
- US listings only, from the five sites above, as they show them at run time.
- One location per run.
- Each site has its own coverage and fields, so some values are empty for some sites.
- Deduplication matches on the address, so a home listed with two different street spellings can survive as two rows.
Troubleshooting
These cover what usually goes wrong.
- No rows from Apartments.com or Zumper. They cover rentals only. Set
offerTypetorent. - The same home appears twice. Turn on
deduplicateResults. - A filter seems ignored.
propertyTypesis applied only on Realtor.com and Redfin, andradiusMilesonly on Realtor.com. Results from the other sites are not filtered. To get only matching types, filter the dataset onpropertyType.
For anything else, open an issue on the Actor's Issues tab with your run ID.
Frequently asked questions
These are the questions people ask before their first run.
Is the listing data live?
Yes. Every run searches the sites at the time it runs.
What is the smallest input that works?
A location and an offerType, for example {"location": "90210", "offerType": "sale"}.
What happens when a site has no listings for my search?
That site adds no rows to the dataset.
Can I use it as a real estate API?
Yes. Call it through the Apify API with a JSON input and read the listings back as JSON, in one format for all five sites.
Does it work with MCP and AI agents?
Yes. Add it to Apify's MCP server and any MCP client can run it as a tool.
How much does it cost to scrape 500 listings?
About $1 on the Free plan, plus the start fee, and $0.005 more if you remove duplicates.
Can I search several cities at once?
Not in one run. Start one run per location, for example from a loop in your code or from several saved tasks.
Can I get rentals and homes for sale together?
Run it twice, once with offerType: rent and once with sale.
Is it legal to scrape real estate listings?
Scraping publicly available listing data is generally legal. Agent names and phone numbers can be personal data, which laws such as GDPR protect. Follow each site's terms and ask a lawyer if you are unsure about your use case.