Redfin Property Scraper π
Pricing
Pay per usage
Redfin Property Scraper π
Extract real estate listings, property details, and market insights from Redfin. This lightweight scraper is optimized for speed and efficiency. For consistent results and to prevent blocking, the use of residential proxies is highly recommended.
Pricing
Pay per usage
Rating
5.0
(3)
Developer
Shahid Irfan
Maintained by CommunityActor stats
2
Bookmarked
28
Total users
3
Monthly active users
2 days ago
Last modified
Categories
Share
Redfin Property Listings Scraper
Extract comprehensive Redfin property listing data for real estate research, market monitoring, and investment analysis. Collect pricing, listing status, address details, property attributes, and location coordinates in a structured format. Built for fast, reliable recurring collection with configurable limits and region targeting.
Features
- Complete property data - Collect pricing, beds, baths, square footage, lot size, year built, listing status, and timeline fields for every property.
- Geo-ready output - Get structured address parts (street, city, state, zip) plus latitude/longitude for mapping and spatial analysis.
- Clean normalized records - Deduplication and empty-value cleanup built in. Every record includes identifiers for cross-run comparison.
- Flexible controls - Set your desired result count, page limit, target region, and optional price filters. Works with any Redfin city or region URL.
- Large-market collection - Automatically splits broad city searches by price range when result caps are reached, helping collect beyond the first 350 listings.
- Image-rich output - Extract primary photo URLs, structured gallery image objects, photo count, and format details for each listing.
- Fast extraction - Collects hundreds of listings per minute with concurrent processing and intelligent rate limiting.
Use Cases
Real Estate Market Research
Track listing activity and asking prices across a city or region over time. Build weekly snapshots to analyze price movements, inventory trends, and market velocity. Compare days-on-market and price-per-square-foot across neighborhoods.
Investment Property Screening
Quickly surface and compare listings by price range, property type, bedroom count, and other key criteria. Create prioritized lead lists for fix-and-flip, buy-and-hold, or rental property strategies.
Competitive Pricing Analysis
Benchmark properties against similar listings in the same area. Analyze price-per-square-foot distributions, listing timeline patterns, and status changes to inform pricing strategy and offer positioning.
Real Estate Portfolio Monitoring
Track owned or watched properties across multiple runs. Detect price drops, status changes, and new listings matching your criteria. Build a historical record of listing behavior for any target market.
Data Pipeline Integration
Feed structured listing data into BI dashboards, spreadsheets, or internal tools. Use recurring runs to power weekly reports, market alerts, or automated valuation models.
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
startUrl | String | Yes | Chicago URL | Redfin city or region URL to target. Region ID is auto-extracted. |
regionId | String | No | Auto-detected | Manual override for region ID when auto-detection is not enough. |
regionType | Integer | No | 6 | Region type: 6=city, 5=zipcode, 4=neighborhood, 2=county, 1=state. |
results_wanted | Integer | No | 20 | Maximum number of properties to collect. |
max_pages | Integer | No | 3 | Maximum result pages to process. |
min_price | Integer | No | Empty | Optional minimum listing price. |
max_price | Integer | No | Empty | Optional maximum listing price. |
proxyConfiguration | Object | No | Apify Proxy | Proxy settings for production reliability. |
Output Data
Each dataset item can include the following fields:
| Field | Type | Description |
|---|---|---|
propertyId | String/Number | Unique Redfin property identifier. |
url | String | Full listing URL on Redfin. |
address | String | Full formatted address. |
streetAddress | String | Street address only. |
city | String | City name. |
state | String | Two-letter state code. |
zip | String | ZIP or postal code. |
price | String | Formatted price string (e.g. "$319,900"). |
priceRaw | Number | Numeric price value for calculations. |
pricePerSqFt | Number | Price per square foot when available. |
beds | Number | Number of bedrooms. |
baths | Number | Number of bathrooms. |
sqft | Number | Interior square footage. |
propertyType | String/Number | Property type code or identifier. |
propertyTypeLabel | String | Human-readable property type. |
status | String | Current listing status (Active, Pending, Sold, etc.). |
listingType | String | Listing category. |
searchStatus | String | Search status label. |
listingDate | String | Date the property was listed. |
daysOnMarket | Number | Days the listing has been active. |
timeOnRedfin | Number | Days on Redfin platform. |
description | String | Listing remarks or marketing description. |
latitude | Number | Decimal latitude. |
longitude | Number | Decimal longitude. |
mlsNumber | String | MLS listing number. |
listingId | String/Number | Redfin listing identifier. |
lotSize | Number/String | Lot size in square feet. |
yearBuilt | Number | Construction year. |
hoa | Number/String | Monthly HOA fee when available. |
isNewConstruction | Boolean | New construction flag. |
isHot | Boolean | High-interest listing indicator. |
isRedfin | Boolean | Redfin-hosted listing flag. |
has3DTour | Boolean | 3D virtual tour availability. |
hasVirtualTour | Boolean | Virtual tour availability. |
hasVideoTour | Boolean | Video tour availability. |
photoCount | Number | Number of photos for the listing. |
photoFormat | String | Photo format (typically webp). |
primaryPhotoUrl | String | Direct URL for the main listing photo. |
imageGallery | Array | Flat array of direct gallery image URLs. |
soldDate | String | Sold date for closed listings. |
keyFacts | Array/Object | Additional listing facts and features. |
source | String | Data source identifier. |
fetched_at | String | ISO datetime of extraction. |
Usage Examples
Basic City Extraction
{"startUrl": "https://www.redfin.com/city/29470/IL/Chicago"}
Large Scale Collection
{"startUrl": "https://www.redfin.com/city/30749/CA/Los-Angeles","results_wanted": 200,"max_pages": 10}
Price Filtered Collection
{"startUrl": "https://www.redfin.com/city/16163/WA/Seattle","results_wanted": 500,"min_price": 0,"max_price": 1200000}
Custom Region Targeting
{"startUrl": "https://www.redfin.com/city/30753/NY/New-York","regionId": "30753","regionType": 6,"results_wanted": 50}
Production Run with Proxy
{"startUrl": "https://www.redfin.com/city/13271/PA/Philadelphia","results_wanted": 100,"max_pages": 4,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Sample Output
{"propertyId": 13251998,"url": "https://www.redfin.com/IL/Chicago/4906-W-Gladys-Ave-60644/home/13251998","address": "4906 W Gladys Ave, Chicago, IL 60644","city": "Chicago","state": "IL","zip": "60644","price": "$319,900","priceRaw": 319900,"pricePerSqFt": 128,"beds": 5,"baths": 2,"sqft": 2500,"propertyTypeLabel": "Single Family","status": "Active","listingDate": "2026-03-14","daysOnMarket": 14,"latitude": 41.8760414,"longitude": -87.7476147,"mlsNumber": "12592283","listingId": 9456210,"lotSize": 5000,"yearBuilt": 1901,"photoCount": 22,"photoFormat": "webp","primaryPhotoUrl": "https://ssl.cdn-redfin.com/photo/68/bigphoto/283/12592283_0.webp","imageGallery": ["https://ssl.cdn-redfin.com/photo/68/bigphoto/283/12592283_0.webp","https://ssl.cdn-redfin.com/photo/68/bigphoto/283/12592283_1_0.webp"],"source": "json-api","fetched_at": "2026-03-15T05:19:29.020Z"}
Tips for Best Results
Validate Your Target URL First
- Start with a small test run (
results_wanted: 10) to confirm the URL resolves to the correct region. - Check the startup logs for detected region ID, type, and market name.
Use Stable Region URLs
- City URLs like
/city/29470/IL/Chicagoare the most stable and reliable targets. - ZIP code and neighborhood URLs may return fewer results.
Start Small, Then Scale
- Begin with default settings to confirm everything works before increasing limits.
- For broad markets, request more than 350 results and the actor automatically splits capped result windows by price.
Optimize for Production
- Enable proxy settings for repeated or high-volume runs to avoid rate limiting.
- Schedule weekly or daily runs for ongoing market monitoring.
Track Changes Across Runs
- Use
fetched_at,propertyId, andlistingIdto identify and compare listings across runs. - Monitor
price,status, anddaysOnMarketto detect price drops and status changes.
Integrations
Connect your extracted data with:
- Google Sheets - Build shareable market trackers and dashboards.
- Airtable - Organize listings into searchable, filterable bases.
- Looker Studio - Visualize pricing trends and inventory metrics.
- Webhooks - Send data to custom endpoints for real-time processing.
- Zapier / Make - Trigger alerts, enrichment workflows, and reporting automations.
Export Formats
- JSON - Best for APIs, apps, and programmatic data pipelines.
- CSV - Best for spreadsheet analysis and quick insights.
- Excel - Best for business reviews and stakeholder reporting.
- XML - Best for legacy system integrations.
Frequently Asked Questions
How many properties can I collect per run?
Set your target with results_wanted. The actor automatically stops once it reaches your target or collects all available listings for the region.
Can I run this for different cities?
Yes. Just replace startUrl with any Redfin city or region URL. The actor auto-detects the region ID from the URL.
Why are some fields missing in some records?
Not all listings expose every data field. The actor saves what is available and skips empty values. Missing fields are not an error.
How do I keep runs under Apify platform time limits?
Start with results_wanted: 20 and max_pages: 3 for quick validation. Most city runs complete in under 5 seconds at default settings.
Can I use this for ongoing market monitoring?
Yes. Schedule recurring runs and use fetched_at with property identifiers to track changes across snapshots.
Does it work with proxy settings?
Yes. Pass proxyConfiguration with Apify Proxy residential groups for improved reliability at higher volumes.
How do I export data after a run?
Use the Apify Console dataset export options. Download in JSON, CSV, Excel, or XML format.
Support
For issues or feature requests, use the Apify Console issue and support channels.
Resources
Legal Notice
This actor is intended for lawful data collection and analysis. You are responsible for complying with website terms of service, local laws, and platform policies. Use reasonable request volume and handle collected data responsibly.