# Redfin and Realtor.com Listings Scraper

> Redfin scraper and Realtor.com scraper for homes for sale, sold or for rent. Get price, beds, baths, sq ft and ZIP in one table. No login.

URL: https://cliqtomedia.com/actors/us-property-listings/

Category: Real estate, travel & cars · Status: coming soon · Apify profile: https://apify.com/cliqtomedia?fpr=cliqto

Get US home listings from Redfin or Realtor.com for cities, ZIP codes or counties. Choose for sale, recently sold or for rent. Both sites give the same columns.

## How to use it: 3 steps

1. **Follow us on Apify.** The tool is built and waits in the queue for the Apify Store. Apify is the cloud platform where our tools run.
2. **Paste your input and press Start.** No code needed: you fill in a form (the input). It already has a working example. For example: `Austin, TX` in Locations. Each start is one run.
3. **Download the results.** When the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too.

## What it does

Redfin & Realtor Listings Scraper reads public US home listings from [Realtor.com](https://www.realtor.com/) or [Redfin](https://www.redfin.com/) for the cities, ZIP codes or counties you add. It returns one row per listing with price, beds, baths, square feet, address, ZIP, coordinates, listing date, photos and (on Realtor.com) the listing office name. You do not need a login or an API key.

- Locations (`locations`): up to 20 places, for example `Austin, TX`, ZIP `78704` or `Travis County, TX`. For Redfin you can also paste a redfin.com city, county or neighborhood link.
- Website (`source`): Realtor.com (default) or Redfin.
- Listing status (`status`): for sale now, recently sold, or for rent.
- Price range (`minPrice`, `maxPrice`) in US dollars. For rentals this is the monthly rent.
- Max listings (`maxItems`): how many rows to save in total.

### Good for

- Track asking prices, new listings and days on market in a city or ZIP code.
- Collect recent sales (sold price, sold date) for a price comparison.
- Build a rental list with monthly rent, beds and square feet.
- Get the same columns from Realtor.com and Redfin to check one against the other.

### Not a good fit

- No agent names, phone numbers, e-mails or listing descriptions. Only the public name of the listing office, and only on Realtor.com.
- Only the United States. Only the two portals above; Zillow is not supported.
- One Realtor.com search returns at most 10,000 results. For a bigger area, split it into ZIP codes or cities.
- The data is what the portal shows at the time of the run. Some fields can be empty when the portal does not show them (see Output).

## Price

Prices will be shown after release.

## Questions

### Do I need a login?

No. It reads public results without login or API key.

### Why is a sold price empty?

Some states do not make sale prices public. Then you see the last asking price.

### Can I get agent phone numbers?

No. You get only the listing office name on Realtor.com.

### Why do the two sites show different numbers?

Each site has its own listings and area borders.

### Do I need a Realtor.com or Redfin account?

No. The Actor reads public search results. You do not need a login, cookies or an API key.

### How fresh is the data?

Each row is read live from the portal during your run. `fetchedAt` shows when the row was saved.

## Data fields

- `id` (string): Unique row ID: source plus the site's property ID, e.g. realtor:9876543210.
- `source` (string): Site the listing comes from: realtor or redfin.
- `propertyId` (string): The site's own property ID.
- `listingId` (string): The site's listing ID for this listing, when it has one.
- `mlsId` (string): MLS number of the listing.
- `url` (string): Link to the listing page.
- `status` (string): for_sale, sold or for_rent, as asked in the input.
- `sourceStatus` (string): Status as the site shows it, e.g. Active, Pending, Coming Soon, Closed.
- `address` (string): Street address with unit number.
- `city` (string): City.
- `state` (string): Two-letter state code.
- `zip` (string): ZIP code.
- `lat` (number): Latitude.
- `lng` (number): Longitude.
- `price` (number): USD. For sale: asking price. Sold: sale price (null where the site hides it). Rent: monthly rent, the lowest one for buildings with several units.
- `priceMin` (number): Lowest price when the site shows a range (buildings, new construction).
- `priceMax` (number): Highest price when the site shows a range.
- `listPrice` (number): Asking price. For sold homes: the last asking price, when the site shows it.
- `beds` (integer): Bedrooms (the smallest unit for buildings).
- `baths` (number): Bathrooms, halves as .5.
- `sqft` (number): Living area in square feet.
- `lotSqft` (number): Lot size in square feet.
- `yearBuilt` (integer): Year built.
- `propertyType` (string): single_family, condo, townhouse, multi_family, apartment, manufactured, land, ...
- `listedAt` (string): When the listing went on the site (ISO date-time; Redfin: estimated to the minute from its time on site, empty where Redfin does not show it).
- `soldAt` (string): Sale date, YYYY-MM-DD (sold listings).
- `daysOnMarket` (integer): Whole days on the market: Redfin's own count for homes for sale, otherwise counted from listedAt. Null for sold listings.
- `photos` (array): Links to the full-size listing photos.
- `photoCount` (integer): Number of photos the listing has.
- `brokerName` (string): Public name of the listing office (Realtor.com only; Redfin search results do not include it). No agent names, phones or e-mails.
- `buildingName` (string): Building or community name (rentals).
- `searchLocation` (string): Which input location found this listing.
- `fetchedAt` (string): When the row was saved (ISO date-time).

## Input settings

- `locations` (array, required): Places to search, one per line: "Austin, TX", a 5-digit ZIP like "78704", or "Travis County, TX". For Redfin you can also paste a redfin.com city, county or neighborhood link. Up to 20 places; the listings limit is shared between them.
- `source` (string): Which site to read. Realtor.com is the default. Both return the same columns.
- `status` (string): Homes for sale now, homes sold recently, or rentals (price is the monthly rent).
- `maxItems` (integer): Maximum listings to save in total, across all locations. You pay per saved listing.
- `minPrice` (integer): Lowest price in US dollars. For rentals: monthly rent. Listings without a price are left out when a price filter is set.
- `maxPrice` (integer): Highest price in US dollars. For rentals: monthly rent.
- `soldWithinDays` (integer): Only for "Recently sold": how far back to look. 90 days by default.

## Step by step on Apify

1. Open the Input tab.
2. In Locations (`locations`), keep the prefilled `Austin, TX` or add your own place, for example `78704` or `Miami, FL`.
3. Keep Website = Realtor.com and Listing status = For sale (the defaults), and Max listings = 10 (the prefill).
4. Click Start.
5. Open the Output tab. The Listings view shows address, price, beds, baths and the link for each home.

## Use cases

| Task | Input | You get | Key fields | Next step |
|---|---|---|---|---|
| New listings in a city | `locations` + `status: for_sale` | Listing | `price`, `listedAt`, `daysOnMarket`, `url` | Schedule + Google Sheets |
| Sales comps | `status: sold` + `soldWithinDays` | Sold listing | `price`, `listPrice`, `soldAt`, `sqft` | CSV export |
| Rental market check | `status: for_rent` + `maxPrice` | Rental | `price` (monthly rent), `beds`, `sqft`, `buildingName` | API / JSON |
| Portal check | same `locations`, run once with each `source` | Listing | `mlsId`, `address`, `price` | Join by `mlsId` or address |

## Tips

- Add up to 20 places per run, like a city, ZIP or county.
- Run the same search on both sites and match homes by MLS ID.
- For rentals, the price range is the monthly rent.

## Limits



- Up to 20 places and 10,000 listings per run.
- Realtor.com returns at most 10,000 results for one search, and some of them repeat. A very large place gives about 9,500 unique rows. The run log tells you when you hit this limit; split the place into ZIP codes.
- Redfin city search uses the official city boundary from the US Census and saves only homes inside it. ZIP, county and redfin.com links work as Redfin defines them.
- Redfin does not show the office name, so `brokerName` is empty for Redfin.
- In some regions Redfin does not show how long a home has been listed; then `listedAt` and `daysOnMarket` are empty.
- `baths` counts a half bath as 0.5 (for example 2 full + 1 half = 2.5).
- If the portal blocks or fails for two places in a row, the run stops and skips the rest, so you do not pay for a long run with no data. Try again later.

## Sample result

```json
{
  "id": "realtor:8335975485",
  "source": "realtor",
  "propertyId": "8335975485",
  "listingId": "3001860367",
  "mlsId": "84517392",
  "url": "https://www.realtor.com/realestateandhomes-detail/1704-Cherry-Orchard-Dr_Austin_TX_78745_M83359-75485",
  "status": "for_sale",
  "sourceStatus": "for_sale",
  "address": "1704 Cherry Orchard Dr",
  "city": "Austin",
  "state": "TX",
  "zip": "78745",
  "lat": 30.201456,
  "lng": -97.803077,
  "price": 315000,
  "priceMin": null,
  "priceMax": null,
  "listPrice": 315000,
  "beds": 3,
  "baths": 1,
  "sqft": 934,
  "lotSqft": 7675,
  "yearBuilt": 1971,
  "propertyType": "single_family",
  "listedAt": "2026-10-15T05:36:33.000Z",
  "soldAt": null,
  "daysOnMarket": 0,
  "photos": [
    "https://ap.rdcpix.com/c98353ff63623b72d8afed1653f828ffl-m296950462s-w1280_h960.jpg"
  ],
  "photoCount": 13,
  "brokerName": "Houston Elite Properties LLC",
  "buildingName": null,
  "searchLocation": "Austin, TX",
  "fetchedAt": "2026-10-15T05:57:50.503Z"
}
```

## Similar tools

- [99acres & MagicBricks India Property Scraper - No Login](https://cliqtomedia.com/actors/india-property-listings/)
- [Events Scraper: Eventbrite, Meetup & Luma — No Login](https://cliqtomedia.com/actors/events-aggregator/)
- [Google Flights Scraper - Prices & Times, No Login](https://cliqtomedia.com/actors/google-flights-scraper/)
