Redfin Scraper API
for listings and full property detail
Pull Redfin listings and full property detail as clean JSON. Search a market by ZIP or filters, or fetch a single home by URL, and get price, beds, baths, area, status, and days on market, with proxies handled for you.
of requests succeed
median response
95% finish faster
per 1k requests at volume
Redfin changes its markup often. Your parser shouldn't care.
- Listing data buried in inline JSON
- Prices, beds, and baths in mixed shapes
- Photos behind lazy-loaded CDNs
- Proxies and captchas at scale
- Re-parse listings after each redesign
One GET Request. That's the whole integration.
Start with just a query. Add more parameters when your use case needs them.
curl -G 'https://api.hasdata.com/scrape/redfin/listing' \
--data-urlencode 'keyword=33321' \
--data-urlencode 'type=forSale' \
--header 'x-api-key: <YOUR_API_KEY>' \
--header 'Content-Type: application/json'keyword * Locationtype * Listing Typesort Sort Byprice[min] Price Minprice[max] Price MaxmonthlyPayment[min] Monthly Payment MinmonthlyPayment[max] Monthly Payment MaxmonthlyPayment[interestRate] Interest RatemonthlyPayment[insuranceRate] Insurance RatemonthlyPayment[downPaymentPercent] Down Payment PercentmonthlyPayment[downPaymentAmount] Down Payment AmountmonthlyPayment[mortgageTerm] Mortgage Termcost[hoa] HOAcost[pricePerSqft][min] Price per Sqft Mincost[pricePerSqft][max] Price per Sqft Maxcost[excludeLandLeases] Exclude Land Leasescost[maxPropertyTaxPerYear] Max Property Tax per Yearcost[acceptedFinancing] Accepted Financingcost[priceReduced] Price ReducedhomeTypes[] Home Typesbeds[min] Beds Minbeds[max] Beds Maxbaths BathsforSaleSquareFeet[min] For Sale Square Feet MinforSaleSquareFeet[max] For Sale Square Feet MaxforRentSquareFootage[min] For Rent Square Footage MinforRentSquareFootage[max] For Rent Square Footage MaxlotSize[min] Lot Size MinlotSize[max] Lot Size MaxyearBuilt[min] Year Built MinyearBuilt[max] Year Built Maxstories[min] Stories Minstories[max] Stories MaxlistingType[category][] Listing CategorylistingType[excludeShortSales] Exclude Short SaleslistingType[redfinListingsOnly] Redfin Listings OnlystatusOptions[] Status OptionsonlyWithDealOrPromotion Only With Deal or Promotionexclude55PlusCommunities Exclude 55+ CommunitiestimeOnRedfin Time on RedfinsoldWithinOption Sold WithinmoveInDate Move In DateopenHouseAndTour[openHouse] Open HouseopenHouseAndTour[videoTour] Video TourhomeFeatures[options][] Home FeatureshomeFeatures[garageSpotsMin] Garage Spots MinhomeFeatures[poolType] Pool TypehomeFeatures[basement] BasementhomeFeatures[keywordSearch] Keyword SearchrentalAmenities[] Rental AmenitiesrentalOtherTerms[] Rental Other Termspets[] Petsschools[greatSchoolRating] GreatSchools Ratingschools[schoolType][] School Typeschools[includeUnratedSchools] Include Unrated SchoolstransportScores[walkScore] Walk ScoretransportScores[transitScore] Transit ScoretransportScores[bikeScore] Bike Scorepage Pagecurl -G 'https://api.hasdata.com/scrape/redfin/property' \
--data-urlencode 'url=https://www.redfin.com/IL/Chicago/1322-S-Prairie-Ave-60605/unit-1106/home/12694628' \
--header 'x-api-key: <YOUR_API_KEY>' \
--header 'Content-Type: application/json'url * Property URLEvery listing, one predictable schema
Each home comes back with the same keys, price, beds, baths, area, and a structured address. Map the fields once and forget about it.
[
{
"id": 41552774,
"mlsId": "B26056826",
"url": "https://www.redfin.com/FL/Tamarac/8211-NW-91st-Ave-33321/home/41552774",
"homeType": "House",
"status": "FOR_SALE",
"price": 475000,
"currency": "USD",
"beds": 4,
"baths": 2,
"area": 1909,
"yearBuilt": 1974,
"daysOnSite": 1,
"address": {
"street": "8211 NW 91st Ave",
"city": "Tamarac",
"state": "FL",
"zipcode": "33321"
},
"image": "https://ssl.cdn-redfin.com/photo/106/islphoto/826/genIslnoResize.826.jpg"
}
]id / mlsId number / stringRedfin ID and the MLS listing number
url stringListing page on Redfin
homeType stringHouse, Condo, Townhouse, and so on
status stringFOR_SALE | PENDING | SOLD and variants
price / currency number / stringList price and its currency
beds / baths / area numberBedrooms, bathrooms, and square footage
yearBuilt / daysOnSite numberBuild year and days live on Redfin
address objectstreet, city, state, zipcode
// The property endpoint: full detail for one home by URL.
{
"id": 41552774,
"homeType": "Single Family Residential",
"status": "FOR_SALE",
"price": 475000,
"beds": 4,
"baths": 2,
"area": 1909,
"lotSize": 6500,
"yearBuilt": 1974,
"geo": { "latitude": 26.2278273, "longitude": -80.2729794 },
"atAGlanceFacts": [
{ "factLabel": "Property Type", "factValue": "Single-family" }
],
"propertyDetails": {
"interior": [ ... ],
"exterior": [ ... ],
"financial": [ ... ],
"utilities": [ ... ]
}
}homeType / status stringProperty type and sale status
price / beds / baths / area / lotSize numberPrice and the core stats
yearBuilt numberYear the home was built
geo objectlatitude and longitude
atAGlanceFacts[] object[]Key facts as label/value pairs
propertyDetails objectInterior, exterior, financial, and utility sections
An all-in-one scraping service
Every feature you need to collect data from thousands to millions of requests.
Discover similar
scrapers and APIs
to expand your projects.
Redfin Scraper
Real Estate Listings • $0.75 / 1k Rows
Zillow Scraper API
Real Estate Listings • $0.37 / 1k Request
Fits right into your stack.
Works with the tools you already use.
View Documentation ->Teams that deleted their scraper
Now it's the part of the pipeline they don't think about
HasData delivers exactly what we need: speed and comprehensive search features. It's the fastest API we've used in this space. Plus, their customer support is fantastic.
We rely on HasData for search performance data and broader scraping needs. Their APIs deliver highly structured data that integrates directly into our platforms.
Great web scraping API which is incredibly easy to use. It requires minimal effort to get up and running, and the documentation is very clear and helpful.
I needed to scrape some information they didn't already support, and they wrote the code for me right away, which was super nice of them.
We were particularly impressed with how easily we could integrate HasData into our existing workflow.
Plans that get cheaper at scale
Fixed price, fixed volume, no surprises at the end of the month. Upgrade when you need more.
Free
Startup
Business
RecommendedEnterprise
Monthly request volume
Start with 200 free requests. No credit card required.
Questions, answered
Both. The listing endpoint takes a location and filters and returns the matching homes. The property endpoint takes a Redfin URL and returns one home in full detail. Same field names, so you can mix them in one pipeline.
Pass a location such as a ZIP or city and a type like forSale, forRent, or sold. Results come back as a paginated list of properties, each with price, beds, baths, and address.
Per successful request, whether it's a search page or a single property. A failed request costs nothing.
Yes, a one-time trial of 200 requests with every field included. No credit card required. When you're done testing, pick a plan that fits your volume.
One request costs 5 credits. The unit price drops with volume, from about $1.23 down to $0.37 per 1,000 requests. Need more than the top plan covers? We'll set a custom rate.
No. Requests run on HasData's infrastructure, so there's nothing to provision or maintain. You're responsible for using the results in line with each target site's terms and applicable law.
Yes, you can cancel your subscription at any time from your dashboard in a few seconds. Once cancelled, there are no recurring payments.
Your first request
is minutes away
200 requests free · no credit card