ScavioScavio
ToolsPricing
Sign InsGet Startedg
Quick StartAPI & SDKsEcosystem

Redfin

Redfin Search API

Search Redfin listings for sale, sold or for rent: price, price per sqft, beds, baths, living area, lot size, year built, coordinates, listing remarks and full photo galleries, as JSON. Up to 350 listings per page. Costs 1 credit per request.

POST/api/v1/redfin/search

Authorizations

Authorizationstringheaderrequired

Bearer authentication header of the form Bearer <token>, where <token> is your Scavio API key (e.g. Bearer sk_live_your_key).

Body

application/json
locationstring

A redfin.com region URL (/city/, /neighborhood/, /county/ or /zipcode/) or a bare 5-digit ZIP, 1-500 characters. CITY NAMES ARE NOT ACCEPTED - "Austin, TX" will not resolve. Redfin's own name lookup is the one path its edge blocks us from, so pass a region URL, a ZIP, or region_id + region_type. Required unless region_id AND region_type are both given.

Example: https://www.redfin.com/city/30818/TX/Austin

region_idinteger

Redfin's internal region id (>= 1), sent together with region_type. NOT a ZIP code: the two are different number spaces, and a ZIP passed here resolves to some other city instead of failing. Read it out of a redfin.com region URL, or off `region.id` in a previous response.

Example: 30818

region_typeenum<integer>

What region_id refers to. Must be sent TOGETHER with region_id - with only one half present, both are ignored and the request falls back to location.

  • 1 — Neighborhood.
  • 2 — ZIP code.
  • 5 — County.
  • 6 — City.
listing_statusenum<string>default:for_sale

Which market to search.

  • for_sale — Active for-sale listings (default).
  • sold — Recently sold homes; see sold_within_days.
  • for_rent — Rentals. min_price / max_price become MONTHLY RENT.
sold_within_daysintegerdefault:90

Sold within the last N days (>= 1). REJECTED with a 400 unless listing_status is "sold" - it only widens what listing_status already chose. The default of 90 applies there.

Example: 30

pageinteger

Results page, 1-based. No upper bound; the page size is whatever limit is set to.

Example: 2

limitintegerdefault:100

Listings per page, 1-350.

Example: 350

sortenum<string>default:recommended

Result ordering.

  • recommended — Redfin's own ranking (default).
  • price_low — Cheapest first.
  • price_high — Most expensive first.
  • newest — Most recently listed first.
  • oldest — Longest-listed first.
  • sqft_low — Smallest living area first.
  • sqft_high — Largest living area first.
  • price_per_sqft_low — Lowest price per sqft first.
  • price_per_sqft_high — Highest price per sqft first.
min_pricenumber

Minimum price, inclusive (>= 0). This is MONTHLY RENT, not sale price, when listing_status is "for_rent".

Example: 400000

max_pricenumber

Maximum price, inclusive (>= 0). Monthly rent when listing_status is "for_rent".

Example: 900000

beds_mininteger

Minimum bedrooms. Whole numbers only - every numeric filter is truncated into Redfin's query, so fractional bounds are rejected rather than silently floored.

Example: 3

beds_maxinteger

Maximum bedrooms. Whole numbers only.

Example: 5

baths_mininteger

Minimum bathrooms. WHOLE BATHS ONLY - 1.5 is rejected, not rounded down to 1. There is no baths_max.

Example: 2

sqft_mininteger

Minimum living area in square feet. Whole numbers only.

Example: 1500

sqft_maxinteger

Maximum living area in square feet. Whole numbers only.

Example: 3000

lot_size_mininteger

Minimum lot size in square feet. Whole numbers only. There is no lot_size_max.

Example: 5000

year_built_mininteger

Earliest year built. Whole numbers only.

Example: 1990

year_built_maxinteger

Latest year built. Whole numbers only.

Example: 2024

max_hoanumber

Maximum monthly HOA fee in dollars (>= 0).

Example: 300

property_typeenum<string>

Restrict to one property class. Redfin's uipt code 7 is deliberately not exposed here: its meaning could not be confirmed, and guessing would silently search a different class.

  • house — Single-family house.
  • condo — Condominium.
  • townhouse — Townhouse.
  • multi_family — Multi-family building.
  • land — Vacant land.
  • other — Everything Redfin folds into its residual class.
  • co_op — Co-operative.
has_poolboolean

Only return listings with a pool.

Example: true

max_days_on_marketinteger

Listed at most N days ago. CANNOT be combined with min_days_on_market - Redfin expresses both bounds through one parameter, so sending both is a 400 rather than a request that quietly drops the minimum.

Example: 14

min_days_on_marketinteger

Listed at least N days ago. Cannot be combined with max_days_on_market.

Example: 60

Request

from scavio import ScavioClient

client = ScavioClient(api_key="sk_live_your_key")
results = client.redfin.search(
    location="https://www.redfin.com/city/30818/TX/Austin",
    min_price=400000,
    beds_min=3,
    limit=100,
)
print(results)

Response

"url": "https://www.redfin.com/stingray/api/gis?al=1&v=8&mpt=99&region_id=30818&region_type=6&num_homes=100&start=0&page_number=1&…",
"listing_status": "for_sale",
"total_results": null,
"count": 100,
},
"response_time": 2086,
"credits_used": 1,
"credits_remaining": 4820
}
PreviousZillow Agent ReviewsNextRedfin Property
ScavioScavio

One scraper API for every social, search and ecommerce platform. Built for AI agents.

Product

  • Features
  • Pricing
  • Dashboard
  • Affiliates

Developers

  • Documentation
  • API Reference
  • Quickstart
  • MCP Integration
  • Python SDK

Alternatives

  • Tavily Alternative
  • SerpAPI Alternative
  • Firecrawl Alternative
  • Exa Alternative
  • Serper Alternative
  • Tavily vs Scavio
  • SerpAPI vs Scavio
  • All alternatives
  • Compare Scavio vs alternatives

Search APIs

  • Google Search API
  • Amazon Product API
  • YouTube API
  • Reddit API
  • Walmart Product API
  • TikTok API
  • Instagram API

Tools

  • All Tools

© 2026 Scavio. All rights reserved.

Featured on TAAFT
Terms of ServicePrivacy Policy