↑ ↓ to move ↵ to open
Redfin Real Estate API reference

redfin.listings.sold

Sold homes search from Redfin Real Estate, as JSON.

At a glance

Endpoint ID
redfin.listings.sold
Price
1 credit per call; failed calls are free
Runs for up to
45 seconds
Request
POST /execute
Run an endpoint
MCP tool when pinned
redfin__listings__sold
Pin tools
OpenAPI
openapi.json
Download

Request

Send the endpoint ID as capability and its fields as input. Set UPSCRAPE_API_KEY to your key first.

curl --request POST \  --url https://data.upscrape.com/execute \  --header "Authorization: Bearer $UPSCRAPE_API_KEY" \  --header "Content-Type: application/json" \  --header "Prefer: wait=30" \  --data '{  "capability": "redfin.listings.sold",  "input": {    "max_pages": 1,    "page": 1,    "region_id": 16163,    "region_type": 6,    "sold_within_days": 90  }}'

Input

FieldTypeRequiredWhat it doesExample
region_id integer yes Resolved Redfin region id (for example 16163 for the Seattle, WA city region). Redfin's map-search route rejects a free-text location. At least 1. 16163
max_pages integer no Maximum number of result pages to fetch. From 1 to 10. 1
page integer no One-based result page to fetch. From 1 to 50. 1
region_type integer no Redfin region type; 6 is a city. Defaults to 6. From 1 to 100. Default: 6. 6
sold_within_days integer no Recency window for recently sold homes. Redfin honours these discrete buckets only. Allowed values: 30, 90, 180, 365, 730, 1095. Default: 90. 90

Response

A finished call answers with HTTP 200; the data is in results[0].data, and billing.credits_charged is what it cost. A call still running after the wait answers 202: see jobs and results.

This is results[0].data from a real run:

results[0].data
{  "end_page": 1,  "has_more": false,  "next_page": 0,  "start_page": 1,  "total_count": 1,  "listings": [    {      "title": "2327 N 140th St",      "price": 800000,      "address": "2327 N 140th St, Seattle, WA 98133",      "area_sqft": 2570,      "baths": 2,      "beds": 3,      "collected_at": "2026-10-15T06:03:37Z",      "currency": "USD",      "page": 1,      "position": 1,      "property_id": "102610",      "sold_date": "2026-10-13",      "status": "Sold",      "url": "https://www.redfin.com/WA/Seattle/2327-N-140th-St-98133/home/102610",      "year_built": 1947    }  ]}

Fields

FieldTypeExample
listings[].title string 2327 N 140th St
listings[].price integer 800,000
listings[].address string 2327 N 140th St, Seattle, WA 98133
listings[].area_sqft integer 2570
listings[].baths integer 2
listings[].beds integer 3
listings[].collected_at string 2026-10-15T06:03:37Z
listings[].currency string USD
listings[].page integer 1
listings[].position integer 1
listings[].property_id string 102610
listings[].sold_date string 2026-10-13
listings[].status string Sold
listings[].url string https://www.redfin.com/WA/Seattle/2327-N-140th-St-98133/home/10…
listings[].year_built integer 1947
end_page integer 1
has_more boolean false
listings array 1 records
next_page integer 0
start_page integer 1
total_count integer 1

If a call fails

A failed call costs nothing. The response carries an error.code you can branch on; Errors and retries lists every code and which ones to retry.

Other Redfin Real Estate endpoints

Something missing or unclear? Ask the team that builds the Redfin Real Estate endpoints.