Redfin sold homes

Homes sold on Redfin in a ZIP code or map area, with sale price, sale date and how the price is known. Prices hidden in non-disclosure states come back null. Page with `next_cursor`. Costs 1 credit.

GEThttps://api.realtycrawl.com/v1/redfin/sold

Homes sold on Redfin in a ZIP code or map area, with sale price, sale date and how the price is known. Prices hidden in non-disclosure states come back null. Page with next_cursor.

Cost: 1 credit when complete. Failed calls are free.

#Inputs

  • location: Where to search. Send exactly one of: zip; bbox; or lat with lng and radius_mi. None, or more than one, returns 422 with param set to location.
  • filters: Optional filters for area searches.
  • paging: Paging. The first call sends no cursor. Send result.next_cursor to get the next page. It is null on the last page.
ParameterTypeDefaultDescription
zipstringFive-digit ZIP code.
bboxstringMap box as west,south,east,north in decimal degrees.
latnumber, -90–90Center latitude. Send with lng and radius_mi.
lngnumber, -180–180Center longitude.
radius_minumber, 0.1–10Search radius in miles, up to 10.
min_priceinteger, 0–∞Lowest price in dollars. On rentals, the lowest monthly rent.
max_priceinteger, 0–∞Highest price in dollars. On rentals, the highest monthly rent.
beds_mininteger, 0–10Fewest bedrooms.
baths_minnumber, 0–10Fewest bathrooms.
sqft_mininteger, 0–∞Smallest living area in square feet.
sqft_maxinteger, 0–∞Largest living area in square feet.
property_typeOne or more of single_family, condo, townhouse, multi_family, land, manufactured, apartment, comma-separatedOne or more home types, separated by commas, like single_family,townhouse.
year_built_mininteger, 1700–2100Oldest year built.
year_built_maxinteger, 1700–2100Newest year built.
sortnewest, price_high or price_lowResult order. newest is the newest listing first, or on sold the most recent sale first. When not sent, the source's own order. Zillow shows at most about 820 results per search, so sort to get the ones you want first.
cursorstringThe next_cursor from the previous page. It only works on the route that made it and with the same inputs.
sold_within_days7, 30, 90, 180, 365, 730 or 109590Only homes sold in this many past days. Optional; 90 when not sent. Redfin has no 14-day window.

#Example

curl -G https://api.realtycrawl.com/v1/redfin/sold \  -H "Authorization: Bearer $REALTYCRAWL_KEY" \  -d zip=80221 \  -d sold_within_days=90
Try it
LocationSend exactly one
Request
curl -G https://api.realtycrawl.com/v1/redfin/sold \  -H "Authorization: Bearer $REALTYCRAWL_KEY" \  -d zip=80221
Sign in to runFree account, no card.

#Fields

FieldTypeDescription
request_idstringID of this request. Poll it at /v1/jobs/{request_id}.
statusstring: pending, complete, failedpending, complete or failed. Always check it, even on HTTP 200.
creditsintegerCredits charged. The route's price when complete; 0 while pending, when failed, or for a page past the last one.
cachedbooleanTrue when the result came from our cache.
poll_urlstring or nullWhere to poll while pending. Null when complete.
errorobject or null{code, message, param} when failed. Null otherwise.
resultobject or nullThe result when complete. Null otherwise.
result.sourcestringSource of the rows, like zillow.
result.queryobjectThe inputs you sent, as we read them.
result.countintegerRows in data.
result.reported_totalinteger or nullTotal matches the source reported for the whole search, when it shows one.
result.next_cursorstring or nullSend as cursor for the next page. Null on the last page and on lookups.
result.collected_atstringWhen we read the source (ISO 8601, UTC).
result.schema_versionintegerVersion of the row schema. Changes only with a new, opt-in version.
result.completenessstring: complete, partialcomplete, or partial when the source returned less than a full page for a reason other than reaching the end.
result.summaryobject or nullMaths over this page for area searches. Null on lookups.
result.dataarrayThe rows.
result.field_notesarrayWhy a field is null: {field, reason, detail}. One note covers every row where it applies.
result.summaryobjectMaths over the rows on this page: priced_count, disclosed_count, median_sale_price, p25, p75, median_price_per_sqft, earliest_sold_date, latest_sold_date. Rows without a sale price are left out of the price maths but stay in data.
result.data[].sourcestringWhich source the row came from. New sources may be added, so handle values you don't know.
result.data[].source_idstringThe source's own ID for the home or building. On Zillow, a home's ID is its zpid; on Redfin, its property ID.
result.data[].source_urlstringPage for this home or building on the source site.
result.data[].sold_datestring or nullSale date (YYYY-MM-DD).
result.data[].sale_priceMoney or nullSale price. Null when the price is not disclosed; field_notes says why. Never filled with a list price or estimate.
result.data[].sale_price_disclosurestring: public_record, mls_reported, not_disclosed, unknownHow the sale price is known. public_record: from county records. mls_reported: the source shows an MLS price. not_disclosed: the price is hidden, usually in a non-disclosure state. unknown: the source shows a price but not where it came from.
result.data[].list_priceMoney or nullLast asking price before the sale. Null when the source does not show it.
result.data[].list_datestring or nullDate the sold listing started (YYYY-MM-DD).
result.data[].sale_to_list_rationumber or nullsale_price divided by list_price.
result.data[].days_on_marketinteger or nullDays from list_date to the first pending date, or to sold_date when there was no pending date. Null when the source does not say.
result.data[].price_per_sqftnumber or nullSale price divided by living area.
result.data[].bedsnumber or nullBedrooms.
result.data[].bathsnumber or nullBathrooms as the source counts them.
result.data[].living_area_sqftinteger or nullLiving area in square feet.
result.data[].property_typestring or null: single_family, condo, townhouse, multi_family, land, manufactured, apartment, otherHome type.
result.data[].addressAddressAddress.
result.data[].locationLocation or nullMap point.
result.data[].broker_namestring or nullListing brokerage at the time of sale.
result.data[].extrasobjectFields only this source has. Each source lists its own on its docs page. {} when there are none.
result.data[].extras.property_type_codeinteger or nullRedfin's own property type code, like 6 for a single-family home.
result.data[].extras.mls_statusstring or nullThe MLS status Redfin shows, like Active, Coming Soon or Closed.
result.data[].extras.year_builtinteger or nullYear built.
result.data[].extras.lot_area_sqftinteger or nullLot area in square feet.
result.data[].extras.hoa_fee_monthlyMoney or nullMonthly HOA dues Redfin shows on the search card.