Redfin API
The Redfin API returns US real-estate data — for-sale, recently-sold and rental listings — as clean JSON.
🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.
The primary search endpoint returns properties with property id, URL, address, city, state, postal code and list price (or sold price and date), and you can pull a listing_detail, find similar homes, autocomplete a location and read market_stats. It is built for real-estate investors, brokerage tools and property dashboards that need live Redfin data without a scraper. One ReefAPI key, one shared credit pool, the standard envelope.
Real request and response JSON
Captured from the indexed primary action, search, on .
{
"method": "POST",
"url": "https://api.reefapi.com/redfin/v1/search",
"headers": {
"x-api-key": "$REEF_KEY",
"content-type": "application/json"
},
"body": {
"location": "Austin, TX",
"max_results": 30
}
}{
"ok": true,
"meta": {
"api": "redfin",
"endpoint": "search",
"mode": "live",
"latency_ms": 1062.9,
"record_count": 30,
"bytes": 1022700,
"cache_hit": false
},
"data": {
"items": [
{
"property_id": "31896771",
"listing_id": "[redacted-phone]",
"url": "https://www.redfin.com/TX/Austin/5138-Mansfield-View-Ct-78732/home/31896771",
"address_line": "5138 Mansfield View Ct",
"city": "Austin",
"state_code": "TX",
"postal_code": "78732",
"neighborhood": {
"value": "Hughes Park Lake 02",
"level": 1
},
"list_price_usd": 1100000,
"beds": 4,
"baths": 3,
"sqft": 3423,
"lot_sqft": 17519,
"year_built": 2000,
"price_per_sqft_usd": 321,
"hoa_fee_monthly_usd": 133,
"property_type": "Single Family Residential",
"property_type_code": 1,
"status": "Active",
"days_on_market": 1,
"mls_id": "7164248",
"latitude": 30.3904309,
"longitude": -97.8820456,
"num_photos": 24,
"last_sold_date": "[redacted-phone]",
"listing_remarks": "Welcome home to the perfect blend of privacy, space, and convenience. Nestled on an oversized lot in the gated Mansfield Estates community, this home backs to a peaceful greenbelt, creating a quiet setting with beautiful Hill Country views. The open layout is designed for easy everyday living and effortless entertaining, with inviting indoor and outdoor spaces you'll enjoy year-round. Whether you're hosting friends, relaxing on the patio, or simply taking in the scenery, this home offers the lifestyle you've been looking for. Just minutes from Lake Travis, shopping, dining, parks, and highly r",
"sashes": [
{
"sashType": "[trimmed-depth]",
"sashTypeId": "[trimmed-depth]",
"sashTypeName": "[trimmed-depth]",
"sashTypeColor": "[trimmed-depth]",
"isRedfin": "[trimmed-depth]",
"isActiveKeyListing": "[trimmed-depth]",
"timeOnRedfin": "[trimmed-depth]",
"openHouseText": "[trimmed-depth]",
"lastSaleDate": "[trimmed-depth]",
"lastSalePrice": "[trimmed-depth]"
}
],
"source": "redfin"
},
{
"property_id": "[redacted-phone]",
"listing_id": "[redacted-phone]",
"url": "https://www.redfin.com/TX/Austin/2502-Leon-St-78705/unit-508/home/[redacted-phone]",
"address_line": "2502 Leon St #508",
"city": "Austin",
"state_code": "TX",
"postal_code": "78705",
"neighborhood": {
"value": "Austin",
"level": 1
},
"list_price_usd": 369000,
"beds": 3,
"baths": 2,
"sqft": 1036,
"lot_sqft": 87,
"year_built": 2007,
"price_per_sqft_usd": 356,
"hoa_fee_monthly_usd": 558,
"property_type": "Condo/Co-op",
"property_type_code": 2,
"status": "Coming Soon",
"days_on_market": 1,
"mls_id": "117385",
"latitude": 30.2901664,
"longitude": -97.7497008,
"num_photos": null,
"last_sold_date": "[redacted-phone]",
"listing_remarks": null,
"sashes": [
{
"sashType": "[trimmed-depth]",
"sashTypeId": "[trimmed-depth]",
"sashTypeName": "[trimmed-depth]",
"sashTypeColor": "[trimmed-depth]",
"isRedfin": "[trimmed-depth]",
"isActiveKeyListing": "[trimmed-depth]",
"openHouseText": "[trimmed-depth]",
"lastSaleDate": "[trimmed-depth]",
"lastSalePrice": "[trimmed-depth]"
},
{
"sashType": "[trimmed-depth]",
"sashTypeId": "[trimmed-depth]",
"sashTypeName": "[trimmed-depth]",
"sashTypeColor": "[trimmed-depth]",
"isRedfin": "[trimmed-depth]",
"isActiveKeyListing": "[trimmed-depth]",
"openHouseText": "[trimmed-depth]",
"lastSaleDate": "[trimmed-depth]",
"lastSalePrice": "[trimmed-depth]"
}
],
"source": "redfin"
},
{
"property_id": "32757422",
"listing_id": "[redacted-phone]",
"url": "https://www.redfin.com/TX/Austin/12410-Burlywood-Trl-78750/home/32757422",
"address_line": "12410 Burlywood Trl",
"city": "Austin",
"state_code": "TX",
"postal_code": "78750",
"neighborhood": {
"value": "Austin",
"level": 1
},
"list_price_usd": 460000,
"beds": 3,
"baths": 2.5,
"sqft": 2090,
"lot_sqft": 10410,
"year_built": 1978,
"price_per_sqft_usd": 220,
"hoa_fee_monthly_usd": null,
"property_type": "Single Family Residential",
"property_type_code": 1,
"status": "Coming Soon",
"days_on_market": 9,
"mls_id": "117021",
"latitude": 30.4628173,
"longitude": -97.806229,
"num_photos": null,
"last_sold_date": "[redacted-phone]",
"listing_remarks": null,
"sashes": [
{
"sashType": "[trimmed-depth]",
"sashTypeId": "[trimmed-depth]",
"sashTypeName": "[trimmed-depth]",
"sashTypeColor": "[trimmed-depth]",
"isRedfin": "[trimmed-depth]",
"isActiveKeyListing": "[trimmed-depth]",
"openHouseText": "[trimmed-depth]",
"lastSaleDate": "[trimmed-depth]",
"lastSalePrice": "[trimmed-depth]"
},
{
"sashType": "[trimmed-depth]",
"sashTypeId": "[trimmed-depth]",
"sashTypeName": "[trimmed-depth]",
"sashTypeColor": "[trimmed-depth]",
"isRedfin": "[trimmed-depth]",
"isActiveKeyListing": "[trimmed-depth]",
"openHouseText": "[trimmed-depth]",
"lastSaleDate": "[trimmed-depth]",
"lastSalePrice": "[trimmed-depth]"
}
],
"source": "redfin"
}
],
"count": 30,
"status": "for_sale",
"pages_fetched": 1,
"filters_applied": {},
"region": {
"region_id": 30818,
"region_type": 6,
"name": "[redacted-name]",
"resolved_via": "seed"
}
}
}What the Redfin API does
| Action | Description | Concrete use case | Key params |
|---|---|---|---|
| search | Search Redfin listings by location (for sale / recently sold / for rent) with structured filters: price, beds, baths, property type, square feet, lot size, year built, HOA and days-on-market, plus result sorting. | Real-estate investors call search to search Redfin listings by location (for sale / recently sold / for rent) with structured filters. | location, url, status, sort, max_results, ... |
| listing_detail | Full property record: 17-year price & tax history, schools, amenities, agent, photos, description, Redfin Estimate, mortgage, parcel. | Brokerage tools call listing_detail to get full property record. | property_id, listing_id, url |
| similar | Comparable/similar listings near a property, with the comp price band. | Property dashboards call similar to get comparable/similar listings near a property, with the comp price band.. | property_id, listing_id, url |
| autocomplete | Resolve free text to Redfin places / agents / schools / buildings (ids + types). | Lead-generation teams call autocomplete to resolve free text to Redfin places / agents / schools / buildings (ids + types).. | query |
| market_stats | Derived market snapshot for an area: median list price, $/sqft, days on market, inventory, price band. | Real-estate investors call market_stats to get derived market snapshot for an area. | location, url |
Call search from your stack
curl -X POST https://api.reefapi.com/redfin/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"location":"Austin, TX","max_results":30}'import requests
r = requests.post(
"https://api.reefapi.com/redfin/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"location": "Austin, TX",
"max_results": 30
},
)
print(r.json()["data"])const res = await fetch("https://api.reefapi.com/redfin/v1/search", {
method: "POST",
headers: {
"x-api-key": process.env.REEF_KEY,
"content-type": "application/json",
},
body: JSON.stringify({
"location": "Austin, TX",
"max_results": 30
}),
});
const { ok, data, meta, error } = await res.json();Ask your MCP-connected assistant: call reefapi.redfin.search with {"location":"Austin, TX","max_results":30}.Who uses this API and why
- Real-estate investors call search then similar to find and compare properties in a target area.
- Market dashboards use market_stats to track median price, inventory and days-on-market trends.
- Lead-gen tools use listing_detail to enrich a property with price history and listing specifics.
Questions developers ask before integrating
What is the Redfin API?
Redfin API is a ReefAPI endpoint group for us homes for sale, sold and rentals with history. It returns live JSON through POST requests under /redfin/v1.
Is the Redfin API free to try?
Yes. ReefAPI starts with 1,000 free credits, no card required. Redfin calls use the same shared credit balance as every other ReefAPI engine.
Do I need a Redfin login or account?
No login to Redfin is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.
How fresh is the Redfin data?
The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.
How many credits does the Redfin API use?
Redfin actions currently cost 1-3 credits per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.
Can I call Redfin from an AI assistant or MCP client?
Yes. Connect ReefAPI once through MCP and your assistant can call redfin actions with the same key, credit pool and JSON envelope used by normal REST requests.
Is the Redfin API a Redfin scraper?
It is the managed alternative to a DIY Redfin scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same us homes for sale, sold and rentals with history back as clean JSON.
Why does my Redfin scraper keep getting blocked?
Most Redfin scrapers break on anti-bot defenses, rate limits and IP bans that need rotating residential proxies and browser fingerprinting to clear. ReefAPI handles all of that for you — no proxies, no captchas, no maintenance — and returns live JSON. Blocked or failed calls are free.