US Real Estate Listings & Sold Homes Scraper for Redfin avatar

US Real Estate Listings & Sold Homes Scraper for Redfin

Pricing

from $2.00 / 1,000 results

Go to Apify Store
US Real Estate Listings & Sold Homes Scraper for Redfin

US Real Estate Listings & Sold Homes Scraper for Redfin

Scrape US real estate from Redfin.com: homes for sale & rent — address, price, beds, baths, sqft, lot size, property type, MLS, agent, photos & coordinates. Fast, no login. Independent tool, not affiliated with or endorsed by Redfin; all trademarks belong to their respective owners.

Pricing

from $2.00 / 1,000 results

Rating

0.0

(0)

Developer

Haketa

Haketa

Maintained by Community

Actor stats

0

Bookmarked

23

Total users

1

Monthly active users

2 days ago

Last modified

Share

Redfin Scraper — US Real Estate Listings, Prices, Beds/Baths, $/sqft, MLS & GPS

This is a fast, no-code Redfin scraper that turns one of the largest US real estate marketplaces into clean, structured data. Use it to scrape Redfin.com listings by city, ZIP code, neighborhood or county and pull price, beds, baths, square footage, price per sqft, lot size, HOA, year built, listing status, MLS number, days on market, GPS coordinates and full descriptions — with no login, no API key and no coding.

Export every listing to JSON, CSV, Excel, or API.

🏠 Built for real estate investors, flippers, agents, brokers, appraisers, proptech startups, mortgage/insurance teams, data analysts and lead-generation teams who need bulk, structured Redfin data instead of copy-pasting listings by hand.

ℹ️ Disclaimer: This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Redfin Corporation or any of its subsidiaries. "Redfin" and all related names and logos are trademarks of their respective owners and are used here only to describe the data source. Please use this Actor in compliance with Redfin's Terms of Service and all applicable laws.


🔎 Why scrape Redfin?

Redfin is a leading US real estate platform with rich, MLS-backed property data — asking prices, square footage, price per square foot, year built, HOA fees, listing status and precise map coordinates — that investors, agents and analysts rely on every day. The catch: Redfin offers no public API for bulk data, and copy-pasting listings one by one simply doesn't scale when you need a whole city, ZIP or county.

This Redfin scraper bridges that gap. It reads Redfin's own structured JSON data layer (the same one that powers the map search), normalizes it into one tidy row per home, and hands you a spreadsheet-ready dataset in seconds. No browser automation, no fragile HTML parsing, no manual region lookups.

Because each record ships with coordinates, status and the full listing description, you get a dataset that's immediately useful for comps, valuation models, deal sourcing, market dashboards and lead lists.

Common reasons people scrape Redfin:

  • 📊 Build US housing datasets for market research, affordability studies and trend dashboards.
  • 🏦 Source investment deals — find underpriced homes by price per sqft and stale inventory by days on market.
  • 🧑‍💼 Run a comparative market analysis (CMA) for any neighborhood in minutes.
  • 🗺️ Power a proptech product, map or valuation model with a continuously refreshed Redfin listings feed.
  • 📣 Build targeted real estate lead lists by city and property type.
  • 🏛️ Enrich mortgage, insurance and relocation workflows with up-to-date property attributes.
  • 📈 Track asking prices, inventory and $/sqft across cities and ZIP codes over time.

✨ What this Redfin scraper does

  • ✅ No login & no API key — start scraping Redfin instantly, right out of the box.
  • ✅ Pick a city from a dropdown — 24 major US markets (New York, Los Angeles, Chicago, Houston, Austin, Miami, Seattle, San Francisco and more). No URL typing required.
  • ✅ Or paste any Redfin search URL — city, ZIP code, neighborhood or county pages all work, including filtered searches you build on redfin.com.
  • ✅ Complete property data — price, pricePerSqFt, beds, baths, sqFt, lotSize, yearBuilt, status, mlsId, daysOnMarket, hoaMonthly, latitude/longitude, description and more.
  • ✅ Property-type filtering — houses, condos/co-ops, townhouses, multi-family, land and other/mobile.
  • ✅ Automatic de-duplication — every home is unique by Redfin propertyId, so you never get the same listing twice.
  • ✅ Fast & low-cost — powered by Redfin's own JSON data layer, not a slow headless browser.
  • ✅ Bulk export — JSON, CSV, Excel (XLSX), HTML and XML, or pull straight from the Apify API.
  • ✅ Automation-ready — schedule daily/weekly runs and connect to Google Sheets, Slack, Zapier, Make, n8n, webhooks, or use it as an AI-agent tool.

Keywords this tool covers: Redfin scraper, Redfin.com scraper, scrape Redfin, Redfin data extraction, Redfin API alternative, US real estate scraper, real estate listings scraper, MLS data, property data scraper, comps tool, CMA data, $/sqft data, housing market analytics, real estate lead generation, proptech data feed.


🎯 Use cases

  • 🏦 Investors & house flippers — pull every listing in a target city/ZIP, sort by $/sqft, filter by type, and spot underpriced homes and aging inventory fast.
  • 🧑‍💼 Agents, brokers & appraisers — export comparable listings (price, $/sqft, beds, baths, sqft, year built) for a data-backed CMA and monitor your farm area.
  • 🏗️ Proptech & real estate startups — feed maps, valuation models, search portals and CRMs with a fresh Redfin listings feed including coordinates and descriptions.
  • 📊 Data analysts & researchers — build structured US housing datasets and track prices, inventory and $/sqft across markets over time.
  • 🏛️ Mortgage, insurance & relocation — enrich underwriting, valuation and relocation packages with property size, year built, HOA, type and location.
  • 📣 Marketers & lead-gen teams — build targeted lists by location and property type for ABM, direct mail and neighborhood outreach.
  • 🏠 Buyers & relocators — snapshot an entire market into a spreadsheet to compare homes side by side.

📥 Input

You don't need any technical skills. Pick cities from the dropdown, or paste Redfin URLs for full control. All inputs are optional — leave everything empty to auto-scrape a diverse sample of popular US markets.

FieldTypeDescription
searchLocationsarray (select)Pick one or more of 24 popular US cities from the dropdown — no URL needed. Leave empty to auto-scrape a diverse sample of major markets.
propertyTypesarray (select)Which property types to include: house, condo, townhouse, multifamily, land, other. Leave all selected for everything.
startUrlsarray of URLsAdvanced. Paste Redfin.com city / ZIP / neighborhood / county search URLs to scrape exactly the filtered results you built on redfin.com. Each search returns up to ~350 homes.
maxItemsintegerMaximum listings to scrape across the whole run. Use it to control cost. 0 = no limit (up to ~350 per area). Default 0.
maxConcurrencyintegerMaximum searches processed in parallel. Default 5.
maxRequestRetriesintegerRetries per failed request before it's marked failed. Default 3.
proxyConfigurationobjectProxy settings. Apify Proxy (US) is enabled by default and recommended for Redfin.

Example input — easy mode (pick cities)

{
"searchLocations": ["Austin, TX", "Miami, FL"],
"propertyTypes": ["house", "condo", "townhouse"],
"maxItems": 300
}

Example input — advanced (paste Redfin URLs)

{
"startUrls": [
{ "url": "https://www.redfin.com/city/30749/NY/New-York" },
{ "url": "https://www.redfin.com/zipcode/78731" },
{ "url": "https://www.redfin.com/county/321/TX/Travis-County" }
],
"propertyTypes": ["house", "condo"],
"maxItems": 500
}

📤 Output

Each home is saved as one clean, flat record. Below is a real record from a live run (New York, NY):

{
"url": "https://www.redfin.com/NY/Arverne/6702-Almeda-Ave-11692/home/20672836",
"mlsId": "1068016",
"status": "Active",
"listingType": 1,
"price": 519000,
"pricePerSqFt": 492,
"beds": 3,
"baths": 2,
"sqFt": 1054,
"lotSize": 1350,
"yearBuilt": 1930,
"propertyType": "House",
"hoaMonthly": null,
"address": "67-02 Almeda Ave",
"unitNumber": null,
"city": "Arverne",
"state": "NY",
"zip": "11692",
"latitude": 40.5971215,
"longitude": -73.7968017,
"daysOnMarket": 1,
"timeOnRedfinMs": 3665486,
"soldDate": "2026-02-17T08:00:00.000Z",
"isNewConstruction": false,
"hasVirtualTour": false,
"has3DTour": false,
"isHot": false,
"photoCount": 32,
"photo": null,
"description": "Renovated in 2026 and move in ready: 3 bedroom, 2 full bath detached corner bungalow with hardwood floors...",
"propertyId": 20672836,
"listingId": 215615566,
"scrapedAt": "2026-11-01T23:47:07.000Z"
}

Field reference

FieldDescription
urlDirect link to the Redfin listing (absolute URL).
mlsIdMLS number.
statusCurrent listing status (Active, Coming Soon, …). Use this for the current state.
listingTypeRedfin internal listing-type code.
priceList price in USD.
pricePerSqFtPrice per square foot (present when sqft is published).
bedsNumber of bedrooms.
bathsNumber of bathrooms.
sqFtInterior square footage (present when published).
lotSizeLot size in square feet (typically absent for condos).
yearBuiltYear the home was built.
propertyTypeHouse, Condo/Co-op, Townhouse, Multi-family, Land, Other.
hoaMonthlyMonthly HOA fee in USD (present for HOA properties).
addressStreet address.
unitNumberUnit number (present for units/condos).
cityCity.
stateState code.
zipZIP code.
latitude / longitudeGPS coordinates.
daysOnMarketDays the listing has been on market.
timeOnRedfinMsTime the listing has been live on Redfin (ms).
soldDateLast recorded sale date (price history) in ISO format — not the current status.
isNewConstructionNew-construction flag.
hasVirtualTourVirtual-tour available.
has3DTour3D-tour available.
isHotRedfin "hot home" flag.
photoCountNumber of photos on the listing.
photoMain photo URL when Redfin exposes a usable image URL (often null; use photoCount to know how many photos exist).
descriptionFull listing description / remarks.
propertyIdRedfin internal property ID (the natural de-duplication key).
listingIdRedfin internal listing ID.
scrapedAtExtraction timestamp (ISO).

Fill rates (from a fresh 350-home run): core fields are rich — url, price, address, city, state, propertyType, status all 100%; beds 99%, baths 97%, sqFt/pricePerSqFt 84%. Data-dependent fields vary honestly: hoaMonthly ~41% (only HOA homes), lotSize ~57% (rare for condos), soldDate ~54% (only homes with price history), unitNumber ~54% (only units). Missing values are returned as null — never a wrong value.


🔁 Pagination & scale

Redfin serves map results from a region-based JSON endpoint that returns up to ~350 homes per area (city, ZIP, county or neighborhood). The scraper:

  1. Resolves the region (region ID + type) straight from the Redfin URL path — so any city/ZIP/county/neighborhood URL works instantly, with no extra page load.
  2. Requests up to ~350 homes for that region in a single call and de-duplicates by propertyId so you never get the same home twice.
  3. Repeats across every city/URL you provide, stopping at your maxItems cap.

To cover an entire metro beyond the ~350-per-area ceiling, pass several ZIP codes or neighborhoods as startUrls — each is a separate area with its own ~350-home budget, and results are combined and de-duplicated into one dataset. Control total volume and cost with maxItems.


⚙️ How to use

  1. Open the Actor on the Apify Console.
  2. Pick cities from the Cities / markets to scrape dropdown — or paste Redfin URLs in the Redfin search URLs (advanced) field. (Leave both empty to auto-scrape a diverse sample.)
  3. (Optional) choose property types and set a Max items limit to control cost.
  4. Click Start ▶️ and let it run.
  5. When finished, open Storage → Dataset and export as JSON, CSV, Excel, HTML or XML — or pull via the Apify API.
  6. Automate: schedule daily/weekly runs and connect via webhook to Make, Zapier, n8n, Google Sheets or Slack, or call the Actor as an MCP / AI-agent tool.

Run via API (Node.js)

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const input = {
startUrls: [{ url: 'https://www.redfin.com/zipcode/78731' }],
propertyTypes: ['house', 'condo'],
maxItems: 300,
};
const run = await client.actor('haketa/redfin-scraper').call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.length, 'listings');

Run via API (Python)

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run_input = {
"startUrls": [{"url": "https://www.redfin.com/city/30818/TX/Austin"}],
"propertyTypes": ["house"],
"maxItems": 300,
}
run = client.actor("haketa/redfin-scraper").call(run_input=run_input)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["address"], "-", item.get("price"), "-", item.get("sqFt"), "sqft")

💡 Tips

  • Control cost with maxItems. Start with 50–100 to preview, then scale up.
  • Scrape ZIP codes for full metro coverage — each city page is capped at ~350 homes, so a list of ZIP/neighborhood URLs is the most reliable way to capture an entire metro.
  • Mix URL types in one run — city, ZIP, county and neighborhood URLs can all go in startUrls together; results are combined and de-duplicated.
  • Filter by property type to keep datasets focused (e.g. only condo for a rental study).
  • Use coordinates (latitude/longitude) to map listings or join with other geo datasets.
  • Track price + daysOnMarket over time to spot price drops and stale inventory.
  • Keep US proxies on — Redfin is a US site and serves best from US IPs (enabled by default).

❓ FAQ

This Actor collects only publicly available information that anyone can view on redfin.com without logging in. Scraping public data is generally legal, but how you use the data is your responsibility — respect Redfin's Terms of Service, MLS rules and privacy laws (GDPR, CCPA), and don't republish copyrighted photos or descriptions in infringing ways. If unsure, consult a legal professional.

Do I need a Redfin account or API key?

No. No login, cookies or Redfin API key required — this is a true Redfin API alternative built on public data.

How many listings can I scrape, and how fast?

Each search area (city/ZIP/county/neighborhood) returns up to ~350 homes. Runs are fast because the scraper uses Redfin's JSON data layer, not a browser — a single city of 350 homes completes in well under a minute. Use multiple ZIP/neighborhood URLs and maxItems to scale to thousands.

Do I need proxies?

US-based proxies are recommended and Apify Proxy (US) is on by default. You generally don't need to change anything.

In what formats can I export the data?

JSON, CSV, Microsoft Excel (XLSX), HTML table and XML — plus direct Apify API access and dataset views.

Is there a Redfin API?

Redfin has no public bulk API. This scraper is the practical Redfin API alternative: call it via the Apify API and get clean JSON back.

How fresh is the data?

Every run fetches live data from Redfin.com, so results reflect the site's current state. Schedule the Actor to keep your dataset up to date.

Can I filter by property type?

Yes — choose any combination of house, condo/co-op, townhouse, multi-family, land or other. The filter is applied to each area's results.

What does soldDate mean?

It's the property's last recorded sale date (price history), which can appear on an active listing from a previous sale. Always use status for the current state (Active, Coming Soon, …).

Why are some fields null?

Redfin doesn't publish every field for every listing (e.g. lot size for condos, HOA for non-HOA homes), and occasionally restricts a field on pre-market listings. Missing values are returned as null rather than a guessed/wrong value.

Can I scrape sold homes?

This version focuses on active and coming-soon listings (the most reliable data). Each listing still includes its last soldDate (price history). Need full sold-history coverage? Open an issue and let us know.


Building a cross-border real estate dataset? Pair this Redfin scraper with our other property and listings scrapers:

Explore more on the Haketa Apify profile.


🧰 Troubleshooting

  • "Could not resolve region" — make sure the URL is a real Redfin search page (city/ZIP/neighborhood/county), not a single listing or account page.
  • Fewer results than expected — remember the ~350-per-area cap; split large cities into several ZIP codes.
  • Getting blocked or empty results — keep US-based Apify Proxy enabled and avoid setting concurrency too high.
  • A field is null — it may simply not be published for that listing.

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Redfin Corporation. "Redfin" is a trademark of its respective owner.

👉 Ready to turn Redfin into a spreadsheet? Pick a city (or paste a URL), press Start, and export your US real estate dataset in seconds.