Real Estate Aggregator avatar

Real Estate Aggregator

Pricing

from $1.50 / 1,000 extracted listings

Go to Apify Store
Real Estate Aggregator

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

Tri⟁angle

Maintained by Apify

Actor 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:

FieldWhat it holds
sourceThe provider it came from, the listing url there, its localId, and scrapedAt
offerType, propertyType, propertyTypeRawRent or sale, the normalized property type, and the site's own label
priceThe asking price or rent
bedrooms, bathrooms, livingArea, landArea, areaUnitSize, in square feet or square meters
address, gpsStreet, city, state, ZIP, county, and coordinates
title, description, picturesThe listing text and photos
extrasDays 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:

FieldWhat it holds
yearBuilt, numberOfStories, numberOfUnitsBuilding facts
schoolsNearby schools with rating and distance
amenitiesFeatures 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

SiteRentSaleDetails
Realtor.comYesYesYes
ZillowYesYesYes
RedfinYesYesYes
Apartments.comYesNoYes
ZumperYesNoYes

For a sale search, Apartments.com and Zumper are skipped and the run log says so.

How to run it in Apify Console

  1. Open Real Estate Aggregator and enter a location, such as 90210 or Austin, TX.
  2. Choose offerType: rent or sale.
  3. Optionally pick the providers, set maxResults per site, and turn on includeDetails or deduplicateResults.
  4. 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

FieldTypeWhat it does
locationstringOne place name, ZIP code, or postcode. Required
offerTypestringrent or sale. Default sale. Required
providersarrayWhich sites to search: realtor, apartments, zumper, zillow, redfin. Default all five
maxResultsintegerThe most listings from each site. Default 100
includeDetailsbooleanRead each listing's own page for richer records. Default false
deduplicateResultsbooleanRemove listings that appear on several sites, matched on offer type, country, ZIP, and street, keeping the first. Default false
unitsstringimperial (square feet, the default) or metric (square meters)
propertyTypesarrayAny of house, condo, apartment, townhouse, land, multifamily, other. Applied on Realtor.com and Redfin; other sites return all property types
radiusMilesnumberSearch 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:

EventFree planDiamond 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 offerType to rent.
  • The same home appears twice. Turn on deduplicateResults.
  • A filter seems ignored. propertyTypes is applied only on Realtor.com and Redfin, and radiusMiles only on Realtor.com. Results from the other sites are not filtered. To get only matching types, filter the dataset on propertyType.

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"}.

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.

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.