Zillow sold homes

Homes sold in an area on Zillow, with sale price, sale date and how the price is known. Costs 1 credit.

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

Homes sold in an area on Zillow, with sale price, sale date and how the price is known. Sold prices in non-disclosure states may be null. Large areas are split and paged with next_cursor.

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

#Inputs

  • location: Where to search. Send exactly one of: zip; city with state; 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.
citystringCity name. Send with state.
statestringTwo-letter state code. Send with city.
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.
cursorstringThe next_cursor from the previous page. It only works on the route that made it and with the same inputs.
sold_within_days7, 14, 30, 90, 180, 365, 730 or 109590Only homes sold in this many past days. Optional; 90 when not sent.

#Example

curl -G https://api.realtycrawl.com/v1/zillow/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/zillow/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.
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.home_type_rawstring or nullZillow's own home type code.
result.data[].extras.days_on_zillowinteger or nullOn sold rows, Zillow counts days since the sale here, not days on market.
result.data[].extras.zestimateMoney or nullZillow's Zestimate on the search card.
result.data[].extras.rent_zestimateMoney or nullZillow's Rent Zestimate on the search card.
result.data[].extras.tax_assessed_valueMoney or nullZillow's "tax assessed value".