Discover/Redfin API
live

Redfin APIredfin.com

Search Redfin active listings by city, ZIP, neighborhood, or county. Returns price, beds/baths, sqft, HOA, MLS status, photos, and site medians.

Endpoint health
verified 3h ago
search_homes_for_sale
1/1 passing latest checkself-healing
Endpoints
1
Updated
3h ago

What is the Redfin API?

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.

This call costs3 credits / call— charged only on success
Try it
Ordering of the returned listings.
Maximum number of listings to return; values above 350 are clamped to 350.
Location keyword: city with state (one shape: 'Austin, TX'), 5-digit ZIP code, neighborhood name, or county name.
Minimum number of bedrooms. Omitted = any.
Maximum listing price in USD. Omitted = no upper bound.
Minimum number of bathrooms (e.g. 1.5). Omitted = any.
Minimum listing price in USD. Omitted = no lower bound.
api.parse.bot/scraper/42a57ed6-2f0f-4e11-91da-ec38adc0e023/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/42a57ed6-2f0f-4e11-91da-ec38adc0e023/search_homes_for_sale?sort=price_asc&limit=5&location=Austin%2C+TX' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace redfin-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: Redfin homes-for-sale search — bounded, re-runnable."""
from parse_apis.redfin_com_api import Redfin, SortOrder, LocationInvalid

client = Redfin()

# Market overview: median stats and resolved location for Austin, TX.
market = client.markets.search(location="Austin, TX", sort=SortOrder.PRICE_ASC)
if market.location is not None:
    print(f"Market: {market.location.full_name} ({market.location.region_kind})")
if market.median is not None:
    print(f"Median price: ${market.median.price:,}  |  $/sqft: {market.median.price_per_sqft}")
print(f"Returned {market.count} listings (limit {market.limit})")

# Browse cheapest listings with filters; limit= caps total items fetched.
for home in client.homes.search(
    location="Austin, TX",
    sort=SortOrder.PRICE_ASC,
    min_beds=2,
    max_price=500000,
    limit=5,
):
    beds = f"{home.beds} bd" if home.beds is not None else "N/A bd"
    baths = f"{home.baths} ba" if home.baths is not None else "N/A ba"
    print(f"  ${home.price:,}  {beds} / {baths}  —  {home.address.street}, {home.address.city}")

# Drill into the first result for full detail.
first = client.homes.search(location="78759", limit=1).first()
if first is not None:
    print(f"\nFirst in 78759: {first.url}")
    print(f"  {first.house_info}  |  {first.days_on_market} days on market")
    print(f"  Description: {first.description[:120]}...")
    if first.key_facts:
        print(f"  Key facts: {', '.join(first.key_facts)}")

# Graceful error handling for bad location input.
try:
    client.homes.search(location="zzqxv nowhere", limit=1).first()
except LocationInvalid as e:
    print(f"\nCaught LocationInvalid: {e.message}")

print("\nexercised: markets.search / homes.search / LocationInvalid")
All endpoints · 1 totalmissing one? ·

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
ParamTypeDescription
sortstringOrdering of the returned listings.
limitintegerMaximum number of listings to return; values above 350 are clamped to 350.
locationrequiredstringLocation keyword: city with state (one shape: 'Austin, TX'), 5-digit ZIP code, neighborhood name, or county name.
min_bedsnumberMinimum number of bedrooms. Omitted = any.
max_pricenumberMaximum listing price in USD. Omitted = no upper bound.
min_bathsnumberMinimum number of bathrooms (e.g. 1.5). Omitted = any.
min_pricenumberMinimum listing price in USD. Omitted = no lower bound.
Response
{
  "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,
          "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,
        "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"
  }
}

About the Redfin API

What the API Returns

The 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.

Listing-Level Fields

Each 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.

Filtering and Sorting

You 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.

Aggregate Statistics

Alongside 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.

Reliability & maintenanceVerified

The Redfin API is a managed, monitored endpoint for redfin.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when redfin.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official redfin.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
3h ago
Latest check
1/1 endpoint passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common 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
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does Redfin offer an official developer API?+
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.
What does the location field in the response tell me, and what happens when my keyword doesn't match?+
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.
Can I retrieve rental listings or recently sold homes through this API?+
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.
Is there a way to paginate beyond the 350-listing cap?+
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.
Does the API return property tax, school ratings, or walk score data?+
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.
Page content last updated . Spec covers 1 endpoint from redfin.com.
Related APIs in Real EstateSee all →
realtor.com API
Search millions of real estate listings on Realtor.com, view detailed property information, find qualified agents in your area, and access market analytics to understand pricing trends. Get location suggestions and property insights all in one place to help you make informed decisions about buying, selling, or investing in real estate.
reddoorcompany.com API
Search residential and commercial property listings for rent or sale across the Triangle region of North Carolina to find your next home or investment property. Browse available properties with detailed information to compare options in this dynamic North Carolina market.
zillow.com API
Search for homes for sale, rent, or recently sold listings on Zillow while accessing detailed property information, Zestimates, agent profiles, and current mortgage rates all in one place. Streamline your real estate research by gathering comprehensive property details, agent information, and financing options without navigating multiple pages.
homes.com API
Search for real estate agents and properties available for sale or rent, while accessing detailed agent profiles with their 1-year transaction history, active listings, and performance statistics. Get comprehensive property details and agent information all in one place to help you find the right agent or property that matches your needs.
rew.ca API
Search rental and for-sale properties across Canada, get detailed listing information, explore neighbourhoods, and find real estate agents in your area. Access property details, agent profiles, and neighbourhood data all in one place.
properstar.co.uk API
Search for homes for sale across UK cities on Properstar and instantly access detailed property information including prices, photos, bedroom and bathroom counts, square footage, and exact locations. Find your next home with comprehensive listings that show you everything you need to know at a glance.
opendoor.com API
Search for homes on Opendoor across US markets and instantly access listing prices, addresses, and detailed property information to compare available options. Use the data to find properties that match your criteria and get comprehensive details on homes you're interested in.
trulia.com API
Search real estate listings for properties available for sale, rent, or recently sold, and access detailed information like property photos, price history, nearby schools, and local amenities. Compare similar homes, calculate mortgage estimates, and make informed decisions with comprehensive property data all in one place.