Zillow sold homes
Homes sold in an area on Zillow, with sale price, sale date and how the price is known. Costs 1 credit.
GET
https://api.realtycrawl.com/v1/zillow/soldHomes 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;citywithstate;bbox; orlatwithlngandradius_mi. None, or more than one, returns 422 withparamset tolocation. - filters: Optional filters for area searches.
- paging: Paging. The first call sends no cursor. Send
result.next_cursorto get the next page. It is null on the last page.
| Parameter | Type | Default | Description |
|---|---|---|---|
zip | string | Five-digit ZIP code. | |
city | string | City name. Send with state. | |
state | string | Two-letter state code. Send with city. | |
bbox | string | Map box as west,south,east,north in decimal degrees. | |
lat | number, -90–90 | Center latitude. Send with lng and radius_mi. | |
lng | number, -180–180 | Center longitude. | |
radius_mi | number, 0.1–10 | Search radius in miles, up to 10. | |
min_price | integer, 0–∞ | Lowest price in dollars. On rentals, the lowest monthly rent. | |
max_price | integer, 0–∞ | Highest price in dollars. On rentals, the highest monthly rent. | |
beds_min | integer, 0–10 | Fewest bedrooms. | |
baths_min | number, 0–10 | Fewest bathrooms. | |
sqft_min | integer, 0–∞ | Smallest living area in square feet. | |
sqft_max | integer, 0–∞ | Largest living area in square feet. | |
property_type | One or more of single_family, condo, townhouse, multi_family, land, manufactured, apartment, comma-separated | One or more home types, separated by commas, like single_family,townhouse. | |
cursor | string | The next_cursor from the previous page. It only works on the route that made it and with the same inputs. | |
sold_within_days | 7, 14, 30, 90, 180, 365, 730 or 1095 | 90 | Only 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=90Try it
#Fields
| Field | Type | Description |
|---|---|---|
request_id | string | ID of this request. Poll it at /v1/jobs/{request_id}. |
status | string: pending, complete, failed | pending, complete or failed. Always check it, even on HTTP 200. |
credits | integer | Credits charged. The route's price when complete; 0 while pending, when failed, or for a page past the last one. |
cached | boolean | True when the result came from our cache. |
poll_url | string or null | Where to poll while pending. Null when complete. |
error | object or null | {code, message, param} when failed. Null otherwise. |
result | object or null | The result when complete. Null otherwise. |
result.source | string | Source of the rows, like zillow. |
result.query | object | The inputs you sent, as we read them. |
result.count | integer | Rows in data. |
result.reported_total | integer or null | Total matches the source reported for the whole search, when it shows one. |
result.next_cursor | string or null | Send as cursor for the next page. Null on the last page and on lookups. |
result.collected_at | string | When we read the source (ISO 8601, UTC). |
result.schema_version | integer | Version of the row schema. Changes only with a new, opt-in version. |
result.completeness | string: complete, partial | complete, or partial when the source returned less than a full page for a reason other than reaching the end. |
result.summary | object or null | Maths over this page for area searches. Null on lookups. |
result.data | array | The rows. |
result.field_notes | array | Why a field is null: {field, reason, detail}. One note covers every row where it applies. |
result.summary | object | Maths 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[].source | string | Which source the row came from. New sources may be added, so handle values you don't know. |
result.data[].source_id | string | The source's own ID for the home or building. On Zillow, a home's ID is its zpid. |
result.data[].source_url | string | Page for this home or building on the source site. |
result.data[].sold_date | string or null | Sale date (YYYY-MM-DD). |
result.data[].sale_price | Money or null | Sale price. Null when the price is not disclosed; field_notes says why. Never filled with a list price or estimate. |
result.data[].sale_price_disclosure | string: public_record, mls_reported, not_disclosed, unknown | How 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_price | Money or null | Last asking price before the sale. Null when the source does not show it. |
result.data[].list_date | string or null | Date the sold listing started (YYYY-MM-DD). |
result.data[].sale_to_list_ratio | number or null | sale_price divided by list_price. |
result.data[].days_on_market | integer or null | Days 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_sqft | number or null | Sale price divided by living area. |
result.data[].beds | number or null | Bedrooms. |
result.data[].baths | number or null | Bathrooms as the source counts them. |
result.data[].living_area_sqft | integer or null | Living area in square feet. |
result.data[].property_type | string or null: single_family, condo, townhouse, multi_family, land, manufactured, apartment, other | Home type. |
result.data[].address | Address | Address. |
result.data[].location | Location or null | Map point. |
result.data[].broker_name | string or null | Listing brokerage at the time of sale. |
result.data[].extras | object | Fields only this source has. Each source lists its own on its docs page. {} when there are none. |
result.data[].extras.home_type_raw | string or null | Zillow's own home type code. |
result.data[].extras.days_on_zillow | integer or null | On sold rows, Zillow counts days since the sale here, not days on market. |
result.data[].extras.zestimate | Money or null | Zillow's Zestimate on the search card. |
result.data[].extras.rent_zestimate | Money or null | Zillow's Rent Zestimate on the search card. |
result.data[].extras.tax_assessed_value | Money or null | Zillow's "tax assessed value". |