Redfin Scraper — Active Listings & Sold Comps avatar

Redfin Scraper — Active Listings & Sold Comps

Pricing

from $5.00 / 1,000 property founds

Go to Apify Store
Redfin Scraper — Active Listings & Sold Comps

Redfin Scraper — Active Listings & Sold Comps

Scrape Redfin homes for sale and homes sold in the last 90 days from any US city or neighborhood URL. Each row has price, sold price and date, beds, baths, sqft, year built, type and MLS number.

Pricing

from $5.00 / 1,000 property founds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

9

Total users

1

Monthly active users

a month ago

Last modified

Share

What is Redfin Scraper?

Redfin Scraper returns one dataset row per US home from a Redfin city or neighborhood URL. In search mode you get the homes for sale now; in sold mode you get the homes sold in the last 90 days, with sold price and sold date. Each row has the address, coordinates, price, beds, baths, square feet, lot size, year built, property type, price per square foot, HOA fee and MLS number. Investors, agents, appraisers and analysts use it to pull listings and comparable sales for a market, with no Redfin account.

Why investors use it for listings and comps

  • Active listings and sold comps. One Actor covers both the for-sale market and recent closed sales.
  • Real sale prices. Sold mode reads Redfin's sold-homes export, so soldPrice and soldDate are the recorded sale.
  • Whole cities. Pages through Redfin's results in blocks of 350 homes until maxResults is reached.
  • Ready for analysis. Numbers come as numbers, coordinates are included, and propertyType is a readable label such as Condo/Co-op.
  • Clear outcome. OUTPUT reports COMPLETE, PARTIAL, VALID_EMPTY or INVALID_INPUT with the row count.

How to use it

Homes for sale in Austin:

{
"mode": "search",
"searchUrl": "https://www.redfin.com/city/30818/TX/Austin",
"maxResults": 100
}

Homes sold in Miami in the last 90 days:

{
"mode": "sold",
"searchUrl": "https://www.redfin.com/city/11458/FL/Miami",
"maxResults": 200
}
InputWhat it controls
modesearch for active listings or sold for homes sold in the last 90 days
searchUrlA Redfin city or neighborhood URL, such as https://www.redfin.com/city/30818/TX/Austin
maxResultsMost homes to save (default 100)
proxyConfigurationProxy for Redfin requests; Apify Residential US by default
debugLogExtra log detail for troubleshooting (default off)

To find a city URL, open the city on redfin.com and copy the address bar. City and neighborhood pages work; ZIP code pages are rejected with an INVALID_INPUT outcome.

Output: Redfin home data you receive

A real sold-mode row (empty fields removed):

{
"mode": "sold",
"redfinUrl": "https://www.redfin.com/FL/Miami/14873-SW-104th-St-33196/unit-6-203/home/43176847",
"propertyId": "43176847",
"mlsNumber": "A12029342",
"address": "14873 SW 104th St Unit 6-203",
"city": "Miami",
"state": "FL",
"zip": "33196",
"latitude": 25.6720266,
"longitude": -80.4359628,
"status": "Sold",
"price": 283506,
"soldPrice": 283506,
"soldDate": "2026-08-28T00:00:00.000Z",
"pricePerSqft": 368,
"beds": 2,
"baths": 2,
"sqft": 770,
"yearBuilt": 1982,
"propertyType": "Condo/Co-op",
"hoaFee": 285,
"scrapedAt": "2026-10-02T11:31:21.748Z"
}

A search-mode row has the same shape, with status such as Active or Coming Soon, daysOnMarket, listedAt, listingId and the listing description.

FieldWhat it contains
address, city, state, zip, latitude, longitudeWhere the home is
price, pricePerSqft, hoaFeeList price (search) or sale price (sold), price per square foot and monthly HOA
soldPrice, soldDateRecorded sale for sold homes
lastSoldDatePrevious sale date of an active listing, when Redfin shows it
beds, baths, sqft, lotSize, yearBuilt, propertyTypeHome facts
status, daysOnMarket, listedAtListing status and time on market
mlsNumber, propertyId, listingId, redfinUrlIdentifiers and the Redfin page

Some public-record sales in sold mode carry a sale price without an MLS number or exact sale date; those fields stay null.

Example workflow: a comps pull for an offer

An investor is pricing a two-bedroom condo in Miami. They pull sold mode for the city with maxResults at 500, filter the rows by propertyType Condo/Co-op, beds 2 and a radius around the target using latitude and longitude, then compare pricePerSqft. They run search mode next to see what similar condos list for today. They continue with Skip Trace Property Owner on the addresses they want to approach off-market.

Pricing

This Actor uses Pay per event. Apify platform usage is included in the event price. You pay a small start event and one event per home saved. The live Pricing tab on this page shows the current price.

  • 1 city, maxResults 200 = up to 200 home events.
  • Search and sold modes cost the same per home.
  • maxResults is the cost ceiling for the whole job.

Redfin data with AI agents (MCP)

Connect this Actor to an AI agent through Apify MCP and ask in plain language:

Get the condos sold in Miami in the last 90 days from Redfin and tell me the median price per square foot.

Agent checklist:

  1. Set mode to sold for comps or search for current listings.
  2. Put a Redfin city or neighborhood URL in searchUrl.
  3. Keep maxResults close to what the user needs.
  4. Read rows with get-dataset-items and OUTPUT.outcome for the result status.

API example

curl -X POST "https://api.apify.com/v2/acts/khadinakbar~redfin-all-in-one-scraper/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"mode": "sold", "searchUrl": "https://www.redfin.com/city/16163/WA/Seattle", "maxResults": 50}'
Your next stepUseWhy
When you then want owner phone and email for chosen addressesSkip Trace Property OwnerOwner contact details per US address
When you compare the same market on ZillowZillow Search ScraperZillow listings by ZIP, city or map area
When you want Zillow listings with agent leadsZillow ScraperListings plus listing-agent details
When your market is in the UKRightmove ScraperUK sale, rent and sold prices

Best results

Starting situationHelpful actionExpected outcome
Pricing a homeUse sold mode and filter by type, beds and distanceA focused comps set
Watching new inventorySchedule search mode dailyThe latest listings each day
A large metroUse neighborhood URLsSmaller, targeted pulls
Testing the outputSet maxResults to 5A quick, low-cost sample

Builder's note

I found that most people asking for a Redfin scraper want comps, so sold mode was rebuilt on Redfin's sold-homes export, which carries the recorded sale price and date. I learned that Redfin's map data reports the previous sale on active listings, so that value now lives in lastSoldDate and never fills soldPrice for a home that is still for sale.

FAQ

Do I need a Redfin account?

No. The Actor reads Redfin's public search data.

Which URLs work?

Redfin city and neighborhood URLs, for example https://www.redfin.com/city/30818/TX/Austin. For a ZIP code area, use the city or neighborhood that contains it.

How far back does sold mode go?

The last 90 days of sales.

Can I get more than 350 homes?

Yes. The Actor pages through results in blocks of 350 until it reaches maxResults.

Why is soldDate empty on some sold rows?

Some sales come from public records without an exact close date. Those rows still carry the sale price, address and home facts.

Responsible use

This Actor collects publicly visible Redfin listing and sale data. Use it for market research and analysis, and follow Redfin's terms and the laws that apply to you. Read Apify's guide on whether web scraping is legal for more context. Redfin is a trademark of Redfin Corporation. This independent Actor is not affiliated with, associated with, or endorsed by Redfin. For questions or bugs, open a ticket in the Issues tab.