Redfin Property Scraper 🏠 avatar

Redfin Property Scraper 🏠

Pricing

Pay per usage

Go to Apify Store
Redfin Property Scraper 🏠

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

Shahid Irfan

Maintained by Community

Actor stats

2

Bookmarked

28

Total users

3

Monthly active users

2 days ago

Last modified

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

ParameterTypeRequiredDefaultDescription
startUrlStringYesChicago URLRedfin city or region URL to target. Region ID is auto-extracted.
regionIdStringNoAuto-detectedManual override for region ID when auto-detection is not enough.
regionTypeIntegerNo6Region type: 6=city, 5=zipcode, 4=neighborhood, 2=county, 1=state.
results_wantedIntegerNo20Maximum number of properties to collect.
max_pagesIntegerNo3Maximum result pages to process.
min_priceIntegerNoEmptyOptional minimum listing price.
max_priceIntegerNoEmptyOptional maximum listing price.
proxyConfigurationObjectNoApify ProxyProxy settings for production reliability.

Output Data

Each dataset item can include the following fields:

FieldTypeDescription
propertyIdString/NumberUnique Redfin property identifier.
urlStringFull listing URL on Redfin.
addressStringFull formatted address.
streetAddressStringStreet address only.
cityStringCity name.
stateStringTwo-letter state code.
zipStringZIP or postal code.
priceStringFormatted price string (e.g. "$319,900").
priceRawNumberNumeric price value for calculations.
pricePerSqFtNumberPrice per square foot when available.
bedsNumberNumber of bedrooms.
bathsNumberNumber of bathrooms.
sqftNumberInterior square footage.
propertyTypeString/NumberProperty type code or identifier.
propertyTypeLabelStringHuman-readable property type.
statusStringCurrent listing status (Active, Pending, Sold, etc.).
listingTypeStringListing category.
searchStatusStringSearch status label.
listingDateStringDate the property was listed.
daysOnMarketNumberDays the listing has been active.
timeOnRedfinNumberDays on Redfin platform.
descriptionStringListing remarks or marketing description.
latitudeNumberDecimal latitude.
longitudeNumberDecimal longitude.
mlsNumberStringMLS listing number.
listingIdString/NumberRedfin listing identifier.
lotSizeNumber/StringLot size in square feet.
yearBuiltNumberConstruction year.
hoaNumber/StringMonthly HOA fee when available.
isNewConstructionBooleanNew construction flag.
isHotBooleanHigh-interest listing indicator.
isRedfinBooleanRedfin-hosted listing flag.
has3DTourBoolean3D virtual tour availability.
hasVirtualTourBooleanVirtual tour availability.
hasVideoTourBooleanVideo tour availability.
photoCountNumberNumber of photos for the listing.
photoFormatStringPhoto format (typically webp).
primaryPhotoUrlStringDirect URL for the main listing photo.
imageGalleryArrayFlat array of direct gallery image URLs.
soldDateStringSold date for closed listings.
keyFactsArray/ObjectAdditional listing facts and features.
sourceStringData source identifier.
fetched_atStringISO 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/Chicago are 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, and listingId to identify and compare listings across runs.
  • Monitor price, status, and daysOnMarket to 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


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.