Redfin Property Search Scraper
Pricing
from $0.65 / 1,000 results
Redfin Property Search Scraper
Scrape listings from Redfin search results: for-sale, rental, and sold properties. Returns prices, photos, MLS codes, agent phones, and property specs. Input: search URL or ZIP code list with filters.
Pricing
from $0.65 / 1,000 results
Rating
5.0
(2)
Developer
Maksym Bohomolov
Maintained by CommunityActor stats
11
Bookmarked
166
Total users
23
Monthly active users
8 days ago
Last modified
Categories
Share
Bulk-scrape listings from Redfin search results - properties for sale, for rent, and recently sold. Provide a Redfin search URL or a list of ZIP codes with a filter template; the scraper returns every matching listing with address, price, photos, MLS code, property specs, and (for rentals) phone numbers.
This scraper processes Redfin search results pages, not individual property detail pages. Input must be a URL that shows a list of listings (e.g. redfin.com/zipcode/..., redfin.com/city/...), not a single home URL like redfin.com/CA/Los-Angeles/.../home/177150500.
Built without a headless browser - runs on direct HTTP requests to Redfin's internal endpoints. Takes more development effort upfront but makes every run dramatically cheaper to execute, without losing data quality.
Common use cases
- Rental lead generation - phone numbers from rental listings, filtered by area and property type
- Market monitoring - daily delta of new listings in selected ZIP codes using the
onlyNewflag - Investment research - price, days on market, HOA dues, lot size across multiple markets in one run
- Sold-comp analysis - recent sales with full pricing; some sold listings are gated by Redfin behind sign-in (see Gated listings below)
- Aggregator feeds - bulk extraction for portals combining Redfin with other sources
How to use it
Two input formats are supported.
Option 1: paste search URLs from Redfin
Copy any search URL from redfin.com (with or without filters) and pass it in urls. The scraper returns every listing the URL matches.
{"urls": ["https://www.redfin.com/zipcode/21234/filter/min-parking=1,include=forsale+mlsfsbo+construction,air-conditioning"],"onlyNew": false,"searchLimit": null,"proxySettings": { "useApifyProxy": false }}
Option 2: apply one filter template across many locations
When you need the same filters across many ZIP codes or cities, pass one example URL as sampleUrl and the location list separately. The scraper applies the filter pattern to each location.
{"locations": ["20001", "Philadelphia"],"sampleUrl": "https://www.redfin.com/zipcode/21234/filter/min-parking=1,include=forsale+mlsfsbo+construction,air-conditioning","searchLimit": 50,"onlyNew": false,"proxySettings": { "useApifyProxy": false }}
Other parameters
searchLimit- cap on results returned. Leave empty for all results.onlyNew- when enabled, returns only listings added since the last run. The first run with this flag does a full scan; subsequent runs return only new listings. Useful for daily monitoring.proxySettings- standard Apify proxy configuration.
Output
Data is saved to an Apify dataset. The dataset has five preconfigured views - Overview, Sale Listings, Rental Listings, Location Data, and Full Data - so you can switch between summary tables and the complete schema without writing transformations. Download in JSON, CSV, XML, Excel, HTML, RSS, or JSONL.
Gated listings
Redfin gates some sold listings behind sign-in. For these, fields like price, mls, beds, sqft, yearBuilt, lotSize, and hoaDues come back as null. The scraper flags each such row with:
requiresAuth: true- the listing is gatedpriceDisplayLevel- the gate type (accessible,sign_in,vow_up, orcensored)
Active for-sale and rental listings are not affected.
Sample output - property for sale (active)
{"propertyId": "3180722","category": "sale","url": "https://www.redfin.com/CA/Oceanside/342-Rimhurst-Ct-92058/home/3180722","propertyType": "single_family_residential","latitude": 33.2366226,"longitude": -117.3505077,"address": "342 Rimhurst Ct","city": "Oceanside","state": "CA","zipCode": "92058","status": "active","mainPhoto": "https://ssl.cdn-redfin.com/photo/45/bigphoto/767/NDP2604767_0.jpg","photos": ["...55 photo URLs"],"mls": "NDP2604767","redfinListingType": "mls","beds": 4,"baths": 2.5,"bathFull": 2,"bathPartial": 1,"bathTotal": 2.5,"sqft": 1968,"yearBuilt": 1999,"lotSize": 27007,"price": 1195000,"priceType": "listing_price","priceDisplayLevel": "accessible","hoaDues": 110,"daysOnMarket": 1,"listingAddedDate": "2026-05-17T17:36:04+00:00","lastSaleDate": "2017-12-19T08:00:00+00:00","brokerName": "","requiresAuth": false,"isNewConstruction": false,"hasVirtualTour": true,"sashes": [{ "name": "Open House", "openHouseText": "OPEN TODAY, 12:30PM TO 2:30PM", "timeOnRedfin": 0.0 },{ "name": "3D Walkthrough", "openHouseText": "", "timeOnRedfin": 0.0 }]}
Sample output - recently sold
{"propertyId": "20585481","category": "sale","url": "https://www.redfin.com/NY/Rosedale/13703-244th-St-11422/home/20585481","propertyType": "single_family_residential","address": "137-03 244th St","city": "Rosedale","state": "NY","zipCode": "11422","status": "sold","photos": ["...4 photo URLs"],"mls": "957545","redfinListingType": "mls","beds": 3,"baths": 2.0,"bathFull": 2,"bathPartial": 0,"bathTotal": 2.0,"sqft": 968,"yearBuilt": 1925,"lotSize": 4000,"price": 720000,"priceType": "last_sale_price","priceDisplayLevel": "accessible","hoaDues": 0,"listingAddedDate": "2026-02-02T22:18:45+00:00","lastSaleDate": "2026-04-23T07:00:00+00:00","brokerName": "RE/MAX Southshore Realty","requiresAuth": false,"sashes": [{ "name": "Sold", "openHouseText": "", "timeOnRedfin": 0.0 }]}
Sample output - rental
{"propertyId": "196662798","category": "rental","url": "https://www.redfin.com/CA/San-Diego/AMLI-Aero/apartment/196662798","propertyType": "multi_family_5_plus","address": "3585 Aero Ct","city": "San Diego","state": "CA","zipCode": "92123","status": "available","photos": ["...34 photo URLs"],"rentPropertyName": "AMLI Aero","rentBedMin": 0,"rentBedMax": 3,"rentBathMin": 1.0,"rentBathMax": 2.0,"rentSqftMin": 576,"rentSqftMax": 1627,"rentPriceMin": 2965,"rentPriceMax": 6828,"rentScore": 8.0,"rentPhones": ["858867****", "858867****"],"numAvailableUnits": 298,"feedSource": "RentPath","descriptionSnippet": "At AMLI Aero, life flows effortlessly between connection and calm. Step outside our San Diego apartments to the flavors of the Convoy District...","requiresAuth": false,"sashes": [{ "name": "New", "openHouseText": "", "timeOnRedfin": 4.09 },{ "name": "DEAL", "openHouseText": "", "timeOnRedfin": 0.0 }]}
The full field list with type descriptions is available in the dataset schema, accessible from the Storage tab after each run.
Is it legal to scrape Redfin?
This scraper accesses only data that is publicly visible on redfin.com without authentication. It does not bypass paywalls, sign-in walls, or rate limits beyond what respectful scraping permits - including the gated listings noted above, which it explicitly flags rather than attempting to access.
Scraping publicly available data is generally legal - see Apify's overview: Is web scraping legal? Yes, if you know the rules. You are responsible for ensuring your specific use case complies with Redfin's Terms of Service and applicable data protection laws (CCPA, GDPR).
Bugs and feedback
If something doesn't work or a field is missing, the Issues tab is the fastest way to reach me.