Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

Redfin Scraper — US Home Listings Data, MLS & Comps (No API)

Apify Actor No API key Pay per result Real Estate Export

📄 This is the documentation repository. The scraper itself runs as a hosted Apify Actor — no install, no code to maintain. Open it on Apify Store ▶️ and press Try for free.


Scrape US home listings from Redfin without a login or API key. Paste any Redfin city, ZIP, neighborhood or county URL — or just a plain 5-digit US ZIP code — and this Redfin scraper turns it into a clean, structured real-estate dataset with list price, price-per-sqft, beds & baths, square footage, lot size, year built, HOA dues, MLS number & status, days on market and exact GPS coordinates. Choose for sale, recently sold or for rent, and the Actor pulls thousands of homes per region with full property detail. Fast, no browser, no API key, no login.

This is the unofficial Redfin API alternative for real-estate comps and CMAs, market analysis, investor deal flow and rental yield modelling — every home comes back as one record with 20+ fields, exportable to JSON, JSONL, CSV, Excel or XML.

✨ What you get

One structured row per home — 20+ fields:

Field Description
listingId / propertyId Redfin internal listing and property IDs
mlsId / mlsStatus MLS number and raw MLS status string (e.g. Active, Pending)
address / city / state / zip Full location breakdown
price List or sold price in USD
pricePerSqFt Price per square foot in USD
beds / baths Bedroom and total bathroom counts
fullBaths / partialBaths Full and half/partial bathrooms, broken out
sqFt Interior living area in square feet
lotSize Lot size in square feet
stories Number of stories/levels
yearBuilt Construction year
propertyType House, Condo, Townhouse, Multi-family, Land, etc.
hoaFee Monthly HOA fee in USD
status Listing status
daysOnMarket Days the listing has been on Redfin
soldDate ISO date the home sold (sold listings)
latitude / longitude Exact GPS coordinates
numPhotos Number of listing photos
isNewConstruction / isHot New-construction and Redfin "hot home" flags
url Direct link to the Redfin listing page
sourceUrl The Redfin search URL this record came from
scrapedAt ISO timestamp when the record was collected

💡 Use cases

  • Comps & valuation — pull recently sold homes by ZIP to build CMAs and price models with real MLS data (mlsId, mlsStatus, price, pricePerSqFt, daysOnMarket).
  • Market analysis — track inventory, price-per-sqft, days on market and HOA fees across cities and ZIPs.
  • Investor deal flow — filter by price and beds to surface rentals and value-add opportunities that fit your buy box.
  • Rental analysis — scrape rent listings alongside sold and forSale to model gross yields per neighborhood.
  • Mapping & dashboards — feed latitude/longitude plus property attributes into a GIS map or BI dashboard.
  • Lead & farm lists — assemble target lists of homes by ZIP, price band and property type for agent farming.
  • New-construction sourcing — filter on the isNewConstruction flag to find newly built inventory in a metro.

🚀 Quick start

You only need a free Apify account. All four methods call the same hosted Actor.

1. Apify Console (no code)

  1. Open the Redfin Scraper on Apify and click Try for free.
  2. Open redfin.com, search a location and copy the URL into Redfin search URLs (a city, ZIP or neighborhood). Plain 5-digit ZIPs also work. Or pick a Metro from the dropdown. Choose a Listing type: for sale, recently sold or for rent.
  3. Click Start, then export from the Output tab as JSON, CSV or Excel. Empty input returns recent listings for a default metro so you can preview the data.

2. Apify CLI

npm install -g apify-cli
apify login
apify call logiover/redfin-scraper --input '{
  "searchUrls": ["https://www.redfin.com/city/30818/TX/Austin"],
  "listingType": "forSale",
  "sortBy": "newest",
  "minPrice": 300000,
  "maxPrice": 900000,
  "minBeds": 3,
  "maxResults": 500
}'

3. API / cURL

curl -X POST "https://api.apify.com/v2/acts/logiover~redfin-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "searchUrls": ["90210", "https://www.redfin.com/zipcode/60601"],
    "listingType": "sold",
    "sortBy": "recommended",
    "maxResults": 500
  }'

4. apify-client (JavaScript)

import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });

const run = await client.actor('logiover/redfin-scraper').call({
  searchUrls: ['33139'],
  listingType: 'rent',
  minBeds: 2,
  maxResults: 300,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Scraped ${items.length} homes`);

5. apify-client (Python)

from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")

run = client.actor("logiover/redfin-scraper").call(run_input={
    "metro": "denver-co",
    "listingType": "forSale",
    "propertyType": "house",
    "sortBy": "priceLow",
    "maxResults": 250,
})

for home in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(home["address"], home["price"], home["beds"], "bd")

📎 More detailed recipes in examples/: CLI · API / cURL · JavaScript · Python.

📥 Input

Give the Actor at least one Redfin search URL (or ZIP code), or pick a Metro. Everything else is optional, and empty input returns recent listings for a default metro.

Field Type Description Default
metro string (dropdown) Quick-pick a major US metro without hunting for a URL (20 metros). Ignored if you supply your own URLs. Austin, TX
searchUrls array Redfin region URLs (city, ZIP, neighborhood or county), e.g. https://www.redfin.com/city/30818/TX/Austin, https://www.redfin.com/zipcode/90210. Plain 5-digit ZIPs like 78704 also work.
locations array Alternative to searchUrls. Also accepts 5-digit US ZIP codes or Redfin region URLs.
listingType string (dropdown) forSale, sold (recently sold) or rent. forSale
propertyType string (dropdown) Restrict to House, Condo, Townhouse, Multi-family, Land or Mobile — or all. all
sortBy string (dropdown) recommended, newest, priceLow or priceHigh. recommended
minPrice / maxPrice integer Keep only homes at/above and at/below these USD prices.
minBeds integer Keep only homes with at least this many bedrooms.
maxResults integer Global cap on homes saved across all locations. Each page returns up to 350 homes. 0 = unlimited. 1000
proxyConfiguration object Redfin requires US residential proxies — keep the default (RESIDENTIAL · US). Residential · US

Finding a Redfin URL: open redfin.com, type a city or ZIP into the search box, and copy the resulting URL — a city path like .../city/30818/TX/Austin, a ZIP path like .../zipcode/90210, or a neighborhood page. Or skip the URL and paste a bare 5-digit ZIP such as 78704.

📤 Output

One row per home — 20+ fields, exportable to JSON, CSV, Excel or XML. Here is a realistic sample record:

{
  "listingId": "179284412",
  "propertyId": "45120983",
  "mlsId": "1234567",
  "mlsStatus": "For Sale",
  "address": "1234 Barton Springs Rd",
  "city": "Austin",
  "state": "TX",
  "zip": "78704",
  "price": 749000,
  "pricePerSqFt": 412,
  "beds": 3,
  "baths": 2.5,
  "fullBaths": 2,
  "partialBaths": 1,
  "sqFt": 1817,
  "lotSize": 6534,
  "stories": 2,
  "yearBuilt": 1998,
  "propertyType": "House",
  "hoaFee": 0,
  "status": "Active",
  "daysOnMarket": 12,
  "soldDate": null,
  "latitude": 30.2549,
  "longitude": -97.7681,
  "numPhotos": 34,
  "isNewConstruction": false,
  "isHot": true,
  "url": "https://www.redfin.com/TX/Austin/1234-Barton-Springs-Rd-78704/home/12345678",
  "sourceUrl": "https://www.redfin.com/city/30818/TX/Austin",
  "scrapedAt": "2026-07-12T12:00:00.000Z"
}

The dataset's Listings table view surfaces address, city, state, zip, price, beds, baths, sqFt, yearBuilt, propertyType, status, daysOnMarket and url; the full field set is always available in the raw JSON/CSV export.

🔌 Integrations & automation

  • Schedules — run the Actor daily or weekly on Apify to track a metro's inventory and price movements automatically.
  • Webhooks — trigger a webhook on run completion to push fresh listings into your own systems.
  • Google Sheets / Drive — sync each run's dataset straight into a spreadsheet for agents and analysts.
  • Amazon S3 / storage — export datasets to S3 or any bucket for warehousing and BI.
  • Zapier · Make · n8n · Pipedream — route new listings into Slack, Notion, a CRM or any HTTP endpoint via the Apify integrations.
  • Apify API — pull results into any language/database with a single REST call (see examples/api-curl.md).

📦 Export formats

Every run's dataset downloads or streams via API as JSON, JSONL, CSV, Excel (XLSX), HTML or XML — the field set stays identical across formats, so it drops cleanly into spreadsheets, databases, GIS tools and BI dashboards.

❓ FAQ

Is this a Redfin API alternative?

Yes. Redfin has no public listings API, so this Actor works as an unofficial Redfin API alternative: paste a region URL or ZIP and get structured home data back as JSON, CSV or Excel — no developer key required.

Do I need a Redfin account or API key?

No. The Actor reads only public Redfin listing data through US residential proxies — no login, no cookies and no API key. You just need a free Apify account.

How do I scrape Redfin without an API or login?

Open the Actor, paste a region URL or ZIP (or pick a metro), and press Start. It reads only public listing data — no API key, account or cookies.

How do I scrape Redfin listings by ZIP code?

Paste a Redfin ZIP URL such as https://www.redfin.com/zipcode/90210, or just a bare 5-digit ZIP such as 78704, into searchUrls — the scraper returns every listing in that ZIP with full property detail.

Can I scrape sold homes with MLS data to build real-estate comps?

Yes. Set listingType to sold and pass a city or ZIP URL to pull sold homes with mlsId, mlsStatus, price, pricePerSqFt, sqFt and daysOnMarket — everything needed for CMAs and comps.

Can I get for-rent listings too?

Yes. Set listingType to rent to pull rental homes with price, beds, baths, sqFt and location — useful for yield modelling next to sale and sold data.

How much data can I get per run?

Each Redfin page returns up to 350 homes and the Actor paginates automatically. Use maxResults to cap output or set it to 0 for unlimited — a busy metro can return thousands of homes per run.

How do I export Redfin data to Excel or CSV?

After a run, download the dataset as CSV, Excel, JSON or XML from the Apify Console, or pull it via the Apify API. It's a quick Redfin data export for spreadsheets and BI tools.

Why does Redfin require a US residential proxy?

Redfin blocks datacenter and non-US traffic, so the Actor defaults to Apify US residential proxy to read public listing data reliably. Keep the default proxy setting for the best success rate.

Is scraping Redfin legal?

This Actor collects only publicly available listing data. You are responsible for complying with Redfin's terms and applicable laws (such as GDPR/CCPA where personal data is involved). Use it responsibly.

🔗 Related actors by logiover

Building a cross-market property dataset? Pair Redfin with:

👉 Browse all logiover scrapers on Apify Store — 180+ actors across real estate, jobs, crypto, social media & B2B data.


📄 Documentation only — the Actor runs on the Apify platform. ▶️ Run it: https://apify.com/logiover/redfin-scraper

Released under the MIT License · © 2026 logiover

About

Scrape Redfin US home listings — price, price/sqft, beds, baths, sqft, MLS#, days on market, HOA, year built & GPS. For sale, sold or rent. No API key, no login. Redfin API alternative.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors