{"id":"dce12225-5e78-477e-bd17-e6679be53b56","slug":"redfin-com-api","name":"redfin.com API","description":"redfin.com API","front_facing_description":"Access data from redfin.com.","source_url":"https://www.redfin.com/","is_authenticated":false,"canonical_scraper_id":"42a57ed6-2f0f-4e11-91da-ec38adc0e023","apis":[{"method":"GET","endpoint_name":"search_homes_for_sale","description":"Searches homes for sale in a location given as a free-text keyword (a city like 'Austin, TX', a 5-digit ZIP code, a neighborhood, or a county). The keyword is resolved to the first matching Redfin region (city, zipcode, neighborhood, county or state); when no region matches, the call succeeds with location null and an empty homes list. One call returns up to `limit` listings (default 50, hard-capped at 350) in a single round trip after the region lookup; there is no further pagination beyond the 350 cap, so narrow the search with price/bed/bath filters or a smaller region to see more of a large market. Each home is one listing with price (null for undisclosed coming-soon listings), address and coordinates, beds, baths, sqft plus a pre-formatted `house_info` string such as '4 beds 3 baths 3,337 sq ft', MLS status, description, tags, and a `photos` list of image URLs (built from the listing's photo count, so `num_photos` equals the length of `photos`). Results are for-sale listings only (no rentals or sold homes). `median` summarises price/sqft/beds/baths across the returned set as reported by the site.","input_params":{"sort":{"type":"string","required":false,"description":"Ordering of the returned listings.","default":"recommended","enum":"SortOrder","closed":true,"domain":{"kind":"enum","generator":{"type":"enum_pick","member":"PRICE_DESC","strategy":"first"},"exhaustive":true,"source_selector":"sort menu on the search results page"}},"limit":{"type":"integer","required":false,"description":"Maximum number of listings to return; values above 350 are clamped to 350.","default":50,"domain":{"kind":"open","example":"20","generator":{"type":"static","value":"5"}}},"location":{"type":"string","required":true,"description":"Location keyword: city with state (one shape: 'Austin, TX'), 5-digit ZIP code, neighborhood name, or county name.","domain":{"kind":"open","example":"Austin, TX","generator":{"type":"static","value":"Austin, TX"}}},"min_beds":{"type":"number","required":false,"description":"Minimum number of bedrooms. Omitted = any."},"max_price":{"type":"number","required":false,"description":"Maximum listing price in USD. Omitted = no upper bound."},"min_baths":{"type":"number","required":false,"description":"Minimum number of bathrooms (e.g. 1.5). Omitted = any."},"min_price":{"type":"number","required":false,"description":"Minimum listing price in USD. Omitted = no lower bound."}},"return_schema":{"type":"object","fields":{"count":"number of homes returned","homes":"array of listing objects: property_id, listing_id, mls_id, mls_status, url, price (USD or null), price_per_sqft, hoa_monthly, beds, baths, sqft, lot_size_sqft, year_built, stories, house_info ('<beds> beds <baths> baths <sqft> sq ft'), property_type (site numeric code), is_new_construction, address {street, unit, city, state, zip, country, neighborhood, latitude, longitude}, days_on_market, description, key_facts, tags, badges, has_virtual_tour, num_photos, photos (array of image URLs)","limit":"effective limit applied after clamping","median":"site-reported medians over the returned listings: price, sqft, price_per_sqft, beds, baths (null when no region matched)","location":"resolved region object (name, full_name, region_kind one of city|zipcode|neighborhood|county|state, url) or null when the keyword matched no region"},"sample":{"data":{"count":1,"homes":[{"url":"https://www.redfin.com/TX/Austin/5658-Rain-Creek-Pkwy-78759/home/31313447","beds":3,"sqft":2408,"tags":[],"baths":2.0,"price":939000,"badges":["EARLY ACCESS","COMPASS COMING SOON"],"mls_id":"2188079208865838593","photos":["https://ssl.cdn-redfin.com/photo/641/islphoto/593/genIslnoResize.2188079208865838593_0.webp","https://ssl.cdn-redfin.com/photo/641/islphoto/593/genIslnoResize.2188079208865838593_1.webp","https://ssl.cdn-redfin.com/photo/641/islphoto/593/genIslnoResize.2188079208865838593_2.webp"],"address":{"zip":"78759","city":"Austin","unit":null,"state":"TX","street":"5658 Rain Creek Pkwy","country":"US","latitude":30.4030079,"longitude":-97.7596508,"neighborhood":"Great Hills"},"stories":null,"key_facts":["Built 2003"],"house_info":"3 beds 2 baths 2,408 sq ft","listing_id":"223217295","mls_status":"Coming Soon","num_photos":3,"year_built":2003,"description":"Rare single story backing to the 13th at Great Hills Country Club.","hoa_monthly":null,"property_id":"31313447","lot_size_sqft":null,"property_type":6,"days_on_market":1,"price_per_sqft":390,"has_virtual_tour":false,"is_new_construction":false}],"limit":1,"median":{"beds":3,"sqft":2408,"baths":2.0,"price":939000,"price_per_sqft":390},"location":{"url":"https://www.redfin.com/city/30818/TX/Austin","name":"Austin","full_name":"Austin, TX, USA","region_kind":"city"}},"status":"success"}},"initiates_session":false,"price":3,"verification":{"assertions":[{"path":"$.status","op":"equals","value":"success"},{"path":"$.data.location","op":"not_null"},{"path":"$.data.homes","op":"array_min_len","value":1},{"path":"$.data.homes[*]","op":"field_present","value":"property_id"},{"path":"$.data.homes[*]","op":"field_present","value":"house_info"},{"path":"$.data.homes[*]","op":"field_present","value":"photos"},{"path":"$.data.homes[*].address","op":"field_present","value":"city"}],"empty_is_valid":false,"recipe_version":1}}],"sample_inputs":{"search_homes_for_sale":{"sort":"price_desc","limit":"5","location":"Austin, TX"}},"prefill_inputs":{"search_homes_for_sale":{"sort":"price_desc","limit":"5","location":"Austin, TX"}},"last_verified_at":"2026-10-28T12:02:25.21189+00:00","endpoint_health":[{"endpoint_name":"search_homes_for_sale","status":"healthy","last_checked_at":"2026-10-28T12:02:25.21189+00:00","last_verified_at":"2026-10-28T12:02:25.21189+00:00","recent_runs":[{"at":"2026-10-28T12:02:25.211890+00:00","status":"healthy"},{"at":"2026-10-21T11:05:52.881956+00:00","status":"healthy"},{"at":"2026-10-14T11:03:52.929364+00:00","status":"healthy"},{"at":"2026-10-07T10:03:52.897381+00:00","status":"healthy"},{"at":"2026-10-07T09:03:52.962921+00:00","status":"ambiguous"}]}],"sdk_usage_example":{"code":"\"\"\"Walkthrough: Redfin homes-for-sale search — bounded, re-runnable.\"\"\"\nfrom parse_apis.redfin_com_api import Redfin, SortOrder, LocationInvalid\n\nclient = Redfin()\n\n# Market overview: median stats and resolved location for Austin, TX.\nmarket = client.markets.search(location=\"Austin, TX\", sort=SortOrder.PRICE_ASC)\nif market.location is not None:\n    print(f\"Market: {market.location.full_name} ({market.location.region_kind})\")\nif market.median is not None:\n    print(f\"Median price: ${market.median.price:,}  |  $/sqft: {market.median.price_per_sqft}\")\nprint(f\"Returned {market.count} listings (limit {market.limit})\")\n\n# Browse cheapest listings with filters; limit= caps total items fetched.\nfor home in client.homes.search(\n    location=\"Austin, TX\",\n    sort=SortOrder.PRICE_ASC,\n    min_beds=2,\n    max_price=500000,\n    limit=5,\n):\n    beds = f\"{home.beds} bd\" if home.beds is not None else \"N/A bd\"\n    baths = f\"{home.baths} ba\" if home.baths is not None else \"N/A ba\"\n    print(f\"  ${home.price:,}  {beds} / {baths}  —  {home.address.street}, {home.address.city}\")\n\n# Drill into the first result for full detail.\nfirst = client.homes.search(location=\"78759\", limit=1).first()\nif first is not None:\n    print(f\"\\nFirst in 78759: {first.url}\")\n    print(f\"  {first.house_info}  |  {first.days_on_market} days on market\")\n    print(f\"  Description: {first.description[:120]}...\")\n    if first.key_facts:\n        print(f\"  Key facts: {', '.join(first.key_facts)}\")\n\n# Graceful error handling for bad location input.\ntry:\n    client.homes.search(location=\"zzqxv nowhere\", limit=1).first()\nexcept LocationInvalid as e:\n    print(f\"\\nCaught LocationInvalid: {e.message}\")\n\nprint(\"\\nexercised: markets.search / homes.search / LocationInvalid\")\n","endpoints":["search_homes_for_sale"],"has_session":false,"shape":"parse_sdk","hover_map":[{"line":4,"col":9,"len":6,"label":"Redfin — API client","kind":"class"},{"line":38,"col":7,"len":15,"label":"LocationInvalid — error: The location keyword could not be resolved to a known region","kind":"error"},{"line":7,"col":69,"len":9,"label":"SortOrder.PRICE_ASC","kind":"enum-member"},{"line":17,"col":19,"len":9,"label":"SortOrder.PRICE_ASC","kind":"enum-member"},{"line":7,"col":59,"len":9,"label":"SortOrder — enum: PRICE_ASC, PRICE_DESC, RECOMMENDED","kind":"enum"},{"line":17,"col":9,"len":9,"label":"SortOrder — enum: PRICE_ASC, PRICE_DESC, RECOMMENDED","kind":"enum"},{"line":39,"col":39,"len":1,"label":"e: LocationInvalid","kind":"variable"}]},"sdk_delivery_state":"available","summary":"Search Redfin for homes currently for sale (active and coming-soon listings) by city, ZIP code, neighborhood, or county keyword, returning price, address, beds/baths/square footage, description and photo URLs for each listing.","updated_at":"2026-10-07T09:21:12.311141+00:00","user_variants":[],"latest_version":3,"user_status":null,"user_scraper_id":null,"contributes_to_marketplace":true,"pinned_version":null,"seo_content":{"faqs":[{"a":"Redfin does not publish a public developer API or official documentation for third-party data access. There is no key-based program or partner portal available to the general public as of mid-2025.","q":"Does Redfin offer an official developer API?"},{"a":"When a match is found, the `location` object returns the region's `name`, `full_name`, `region_kind` (city, zipcode, neighborhood, county, or state), and a Redfin URL for that region. When the keyword resolves to nothing, `location` is null, `median` is null, and the `homes` array will be empty. You should check `location` before trusting the results.","q":"What does the location field in the response tell me, and what happens when my keyword doesn't match?"},{"a":"No. The API covers active and coming-soon for-sale listings only. Rental listings and sold/off-market history are not returned by any current endpoint. You can fork this API on Parse and revise it to add an endpoint targeting those data types.","q":"Can I retrieve rental listings or recently sold homes through this API?"},{"a":"The `limit` parameter is clamped to 350, and there is no offset or cursor parameter for pagination. To cover a large market, you can break the query into smaller geographic units — for example, querying individual ZIP codes rather than an entire city — and merge the results client-side.","q":"Is there a way to paginate beyond the 350-listing cap?"},{"a":"Those fields are not included in the current response shape, which focuses on listing price, physical attributes, MLS identifiers, photos, and regional medians. You can fork this API on Parse and revise it to pull those additional detail fields from individual listing pages.","q":"Does the API return property tax, school ratings, or walk score data?"}],"keywords":["redfin api homes for sale","redfin listing data api","redfin property search api","real estate listing api by zip code","redfin mls data api","home price data api redfin","redfin neighborhood search api","redfin beds baths sqft api","redfin hoa monthly data","real estate market median price api","redfin coming soon listings api","redfin county property search","parse redfin api integration","redfin price per sqft api","redfin active listings api"],"use_cases":["Build a neighborhood price-trend tracker using median price and price_per_sqft across multiple ZIP codes","Screen investment markets by filtering min_price/max_price and checking hoa_monthly against expected rental income","Populate a home-search app with listing photos, descriptions, and direct Redfin URLs for each result","Compare median sqft and beds across city vs. county regions to identify underpriced submarkets","Alert buyers when new coming-soon listings appear for a saved ZIP code query","Aggregate MLS status distributions across neighborhoods to monitor active vs. coming-soon inventory ratios","Cross-reference mls_id fields against county assessor records to enrich listings with tax data"],"meta_title":"Redfin Homes For Sale API","generated_at":"2026-09-08T05:54:50.510914+00:00","lead_paragraph":"The Redfin API exposes one endpoint — `search_homes_for_sale` — that returns up to 350 active and coming-soon property listings for any city, ZIP code, neighborhood, or county keyword. Each result includes over a dozen fields: price, beds, baths, square footage, price-per-sqft, HOA fees, MLS ID and status, listing URL, and photo URLs. The response also surfaces site-reported median statistics across the matched region.","schema_version":2,"meta_description":"Search Redfin active listings by city, ZIP, neighborhood, or county. Returns price, beds/baths, sqft, HOA, MLS status, photos, and site medians.","primary_category":"real_estate","long_description_md":"## What the API Returns\n\nThe `search_homes_for_sale` endpoint accepts a free-text `location` parameter — examples include `'Austin, TX'`, `'90210'`, `'Brooklyn Heights'`, or a county name — and resolves it to the first matching Redfin region. The `location` object in the response tells you which region was matched, its `region_kind` (one of `city`, `zipcode`, `neighborhood`, `county`, or `state`), its display name, and a direct Redfin URL. When no region matches the keyword, `location` is `null` and the `median` block is also `null`.\n\n## Listing-Level Fields\n\nEach entry in the `homes` array carries `property_id`, `listing_id`, `mls_id`, and `mls_status` for cross-referencing with MLS systems. Financial fields include `price` (USD, nullable for listings without a posted price), `price_per_sqft`, and `hoa_monthly`. Physical attributes cover `beds`, `baths`, and square footage. Each listing also provides a Redfin `url` and an array of photo URLs, plus a text description where Redfin provides one.\n\n## Filtering and Sorting\n\nYou can narrow results before they are returned using `min_price`, `max_price`, `min_beds`, and `min_baths`. The `sort` parameter controls ordering (for example, by price or listing date). The `limit` parameter caps how many listings come back, with a hard ceiling of 350 — values above that are silently clamped. The response always echoes the `count` of homes returned and the `limit` actually applied, so you can detect clamping in your code.\n\n## Aggregate Statistics\n\nAlongside the individual listings, the response includes a `median` object with site-reported medians for `price`, `sqft`, `price_per_sqft`, `beds`, and `baths` across the matched region. This lets you characterize a market without doing your own aggregation over the returned array.","generated_with_model":"global.anthropic.claude-sonnet-4-6","secondary_categories":["maps_geo","finance"]},"primary_category":"real_estate","secondary_categories":["maps_geo","finance"],"access_requirements":[]}