Redfin Scraper - For Sale, Sold Comps & Every Listing avatar

Redfin Scraper - For Sale, Sold Comps & Every Listing

Pricing

from $0.40 / 1,000 listings

Go to Apify Store
Redfin Scraper - For Sale, Sold Comps & Every Listing

Redfin Scraper - For Sale, Sold Comps & Every Listing

[$0.50 / 1K listings] Scrape Redfin for-sale listings and sold comps from any search URL or ZIP code, past the 350-per-search cap, with listing agent, days on market and badges. New-only monitoring. No start fee.

Pricing

from $0.40 / 1,000 listings

Rating

0.0

(0)

Developer

WebData Labs

WebData Labs

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Paste any Redfin search and get every matching home as a clean row, for sale or recently sold, past Redfin's 350-per-search cap, at $0.50 per 1,000 listings with no start fee.

Redfin shows at most 350 homes for one search, so a scraper that just reads the search results quietly stops at 350 while Austin alone has around 6,000 homes for sale. This Actor asks Redfin how many homes match first, splits big searches into price bands until each one fits, and stitches them back together without duplicates. You keep every filter you set on Redfin, get sold comps with their sale dates, and can schedule it to return only the listings that are new since the last run.

✅ What you get / ❌ what this isn't

✅ What you get❌ What this isn't
Every listing in a search, split into price bands automatically when Redfin has more than 350Not a hard stop at the first 350
The filters from your Redfin URL, applied exactly (price, beds, baths, type, sold window, sort)Not a scraper that ignores half the URL
Sold comps with sale price and sale date, from 1 week to 5 years backNot active listings only
Days on market, listing date, price per sq ft, HOA, lot size, year builtNot just price and address
Redfin's own badges (Price Drop, Open House, Coming Soon, New) and key factsNot a bare listing list
Only-new mode that remembers what it already returnedNot paying again for the same listings every day
$0.50 per 1,000 listings, no start feeNot a per-run fee before any row exists

🔎 Why use this Actor

  • Complete coverage. Before fetching, the Actor asks Redfin how many homes match. When the answer is above 350, it splits the price range in half and asks again, until each band holds 350 or fewer, then fetches every band. In testing, a search for Austin condos matching 1,429 homes returned 1,428.
  • Your Redfin filters, not an approximation. Paste the URL from your browser after setting filters on Redfin. The filter part of the URL is translated by Redfin itself into its search parameters, so what you get is what the website shows.
  • Sold comps. Switch Listings to Sold, or paste a Redfin URL that already shows sold homes, and every row carries soldDate and the sale price. Useful for comparable-sales analysis and price-per-square-foot studies.
  • New-listing monitoring. Turn on Only new listings since the last run and schedule it. Each search remembers the listings it already returned, so every run delivers only what is new, and you are only charged for those.
  • ZIP codes too. No URL handy? Give ZIP codes and set price, beds, baths and property type in the form.
  • Fast and light. It reads Redfin's own search data rather than rendering pages: 350 listings in about 4 seconds, 1,400 in under 30.

👥 Who it's for

Real-estate investors, agents and brokerages, proptech and data teams, and anyone pricing or tracking a US housing market.

  • Pull every active listing in a city or ZIP and screen by price per square foot, days on market or HOA.
  • Build a comps set: all homes sold in a ZIP in the last 3 or 6 months, with sale price, size and date.
  • Get a daily feed of new listings matching your buy box, and act before other buyers.
  • Track which listings show a Price Drop badge in a market.
  • Map listings with latitude and longitude for a market study.

⚙️ How to scrape Redfin

  1. Open Redfin, search a city, ZIP code, county or neighborhood, and set any filters you want (price, beds, home type, sold).
  2. Copy the URL from the address bar into Redfin search URLs. Add as many as you like.
  3. Or put ZIP codes in instead and use the filter fields below them.
  4. Choose For sale or Sold (comps), and set Maximum listings per search (0 = every listing).
  5. Click Start. Export the results from the Output or Storage tab as JSON, CSV or Excel.

Get only new listings every day

Turn on Only new listings since the last run, save the input as a task, and add a daily schedule. The first run returns everything that matches; each run after that returns only listings it has not returned before, so you pay only for new ones. The memory is kept per search, so different URLs or filters never mask each other.

📥 Input

{
"searchUrls": ["https://www.redfin.com/city/30818/TX/Austin/filter/property-type=house,min-price=400k,max-price=800k,min-beds=3"],
"zipCodes": ["78704"],
"listingType": "for-sale",
"maxResultsPerSearch": 0,
"onlyNewListings": false
}
  • searchUrls - Redfin search pages (city, ZIP code, county or neighborhood), with or without filters.
  • zipCodes - US ZIP codes to search.
  • listingType - for-sale (default) or sold. A URL that already has a sold filter keeps it.
  • soldWithinDays - for sold listings, how far back. Default 90. Redfin's windows are 7, 30, 90, 180, 365, 730, 1095 and 1825 days; other values round up.
  • maxResultsPerSearch - listings per URL or ZIP. Default 100. 0 returns every listing, splitting large searches automatically.
  • propertyTypes - any of house, condo, townhouse, multifamily, land, manufactured, co-op, other.
  • minPrice, maxPrice, minBeds, minBaths - filters for ZIP codes, and for URLs that do not set their own.
  • onlyNewListings - return only listings not returned by an earlier run of the same search.

startUrls, urls, maxResults and maxItems are accepted as aliases, so input written for another Redfin Actor usually runs as is.

📤 Output

addresscitypricebedsbathssqftstatusdaysOnMarketbadges
2825 22nd Ave WSeattle1,950,00063.753,538Coming Soon2Coming Soon, 3D Walkthrough
4502 Avenue HAustin799,000321,560Coming Soon1Early Access, Sotheby's Realty Coming Soon

Each row also carries propertyId, listingId, url, unit, state, zip, neighborhood, propertyType, lotSqft, pricePerSqft, yearBuilt, hoaMonthly, listedAt, soldDate (sold rows), latitude, longitude, listingAgentName, listingAgentRedfinId, brokerName, mlsNumber, keyFacts, listingTags, description (the listing remarks), isNewConstruction, isHot, hasVirtualTour, openHouseStart, and searchUrl / searchLabel to say which search produced it. The run summary (OUTPUT in the key-value store) lists, per search, the region, the filter applied, how many homes matched on Redfin and how many were returned.

All output fields

FieldWhat it is
propertyIdRedfin property id
listingIdRedfin listing id
urlListing page on Redfin
statusMLS status: Active, Coming Soon, Pending, Closed and so on
listingTypefor-sale or sold
priceList price, or sale price for sold listings, USD
soldDateSale date for sold listings, ISO 8601
addressStreet address
unitUnit number
cityCity
stateState
zipZIP code
neighborhoodNeighborhood as Redfin names it
propertyTypehouse, condo, townhouse, multi-family, land, manufactured, co-op or other
bedsBedrooms
bathsBathrooms
sqftInterior square feet
lotSqftLot size, square feet
pricePerSqftPrice per square foot, USD
yearBuiltYear built
hoaMonthlyHOA dues per month, USD
daysOnMarketDays on market
listedAtWhen the listing appeared on Redfin, ISO 8601 (for-sale listings)
latitudeLatitude
longitudeLongitude
listingAgentNameListing agent
listingAgentRedfinIdListing agent's Redfin id, when they have one
brokerNameListing brokerage, when Redfin shows it
mlsNumberMLS number, when the MLS allows Redfin to show it
badgesRedfin badges on the card: Price Drop, Open House, New, Coming Soon, 3D Walkthrough and so on
keyFactsRedfin's highlighted features
listingTagsFeature tags extracted from the listing
descriptionListing remarks
isNewConstructionNew construction
isHotRedfin marks the home as hot (likely to sell fast)
hasVirtualTourHas a 3D, video or virtual tour
openHouseStartNext open house start, ISO 8601
searchUrlThe search the row came from
searchLabelRegion name of that search
scrapedAtWhen the row was collected, ISO 8601

💵 How much does it cost?

$0.50 per 1,000 listings on the Free plan, down to $0.40 on higher Apify plans, charged per listing returned as listing-scraped. There is no start fee, so a search that matches nothing costs nothing, and in only-new mode you pay only for new listings. Every listing for sale in Austin (around 6,000 homes) costs about $3.

🔁 Run it on the Apify platform

Save a search as a task and schedule it daily or weekly, call it from the Apify API, and export as JSON, CSV, Excel or XML. Webhooks and the Make, Zapier and n8n integrations can push new listings into a sheet, a CRM or a Slack channel as they appear.

Use with AI agents via MCP

Add Apify's MCP server to Claude Code, Claude Desktop or Cursor and ask the agent to run webdata_labs/redfin-scraper on a Redfin URL, then analyze the rows: median price per square foot by ZIP, days on market by price band, or the cheapest three-bedroom houses near a point. Keep your Apify token in the client's secret settings, not in a prompt.

Use this Actor in n8n

Call the Actor's run endpoint from an HTTP Request node (or run-sync-get-dataset-items for small searches), store the Apify token in n8n credentials, and map the dataset items onward. A typical flow: daily schedule, a run with only-new mode on over your buy-box URL, and an email or Slack message per new listing.

⚠️ Limits and caveats

  • US listings on Redfin only. Redfin's Canadian pages are not supported.
  • Rentals are not included. This Actor covers homes for sale and sold homes; Redfin's rental search is a separate system.
  • Listing agent coverage depends on the MLS. Some MLSs let Redfin show the listing agent on search results (Seattle: nearly every listing) and some do not (Austin: a small share). When Redfin does not show it, listingAgentName is empty; agent phone numbers and emails are not in Redfin's search data.
  • Some fields depend on the MLS too. mlsNumber, brokerName and a few sold prices are hidden by some MLSs and come back empty rather than guessed.
  • Identical prices can exceed the cap. If more than 350 homes in one search share exactly the same price, the band cannot be split further and the extra ones are counted in the run summary as missedAtIdenticalPrice. This is rare.
  • Search pages for ZIP codes are read once per ZIP to find Redfin's internal region id; city, county and neighborhood URLs need no page at all.
  • listedAt is derived from Redfin's time-on-site counter, so it is accurate to the minute of the run, not the MLS listing timestamp.

❓ FAQ

Yes. Set Maximum listings per search to 0. Searches with more matches are split into price bands, each fetched in full, and duplicates removed.

Does it keep the filters from my Redfin URL?

Yes. Everything after /filter/ in the URL is translated by Redfin's own search into the same parameters the website uses, including sort order and sold windows.

How do I get sold comps?

Set Listings to Sold (comps) and pick Sold within (days), or paste a Redfin URL that already shows sold homes. Each row carries soldDate.

How does only-new mode know what is new?

It keeps the ids of listings it returned, per search, in a named store on your Apify account. The next run of the same search skips those ids. Listings beyond your result limit are not marked as seen, so a capped run never hides them.

Am I charged when nothing matches?

No. There is no start fee; you pay only per listing returned.

Scraping publicly available data can be lawful in many situations, but it depends on your jurisdiction, purpose and Redfin's terms. This Actor reads only what Redfin shows any logged-out visitor, and does not log in or bypass access controls. Listing data can be subject to MLS rules, so check them for commercial redistribution, and get legal advice for high-risk use.

Is this a Redfin API?

Effectively yes: run it over the Apify API and read structured JSON, CSV or Excel with stable field names.

Changelog

  • 2026-09-26 - First release: search URLs with their own filters, ZIP codes with filter fields, for-sale and sold listings, automatic price-band splitting past the 350-per-search cap, only-new monitoring, and pay-per-listing pricing with no start fee.

🛠️ Support

Something wrong or missing? Open an Actor issue with the run URL, the input you used and what you expected. That is the fastest route to a fix.

⭐ Rate this Actor

If this saved you time, please leave a rating on the Reviews tab. Review count is the main trust signal buyers have on the Store, and reviews decide which Actors get improved next. If something is broken, please open an issue first so it can be fixed.