Skip to main content
GET
List historical sold listing cycles

Authorizations

Authorization
string
header
required

API key from the developer console (starts with zpka_). Create one at https://developers.investorlift.com/get-a-key. The same key works on POST /mcp.

Query Parameters

lat
number

Point latitude (with lng). With radius_miles it is the search geometry. With bbox it is the reference point only.

Required range: -90 <= x <= 90
lng
number

Point longitude (with lat).

Required range: -180 <= x <= 180
bbox
string

Viewport as west,south,east,north (WGS84 degrees). West must be less than east, south less than north, and the diagonal at most 40 mi. It must intersect a loaded market's coverage bbox (422 outside_coverage otherwise). It can carry lat + lng (without radius_miles) as the reference point for distances and sort=distance.

radius_miles
number

Search radius in miles around the point or around the centre of the property_id parcel, 0.25 to 20 (default 2). Not allowed with bbox.

Required range: 0.25 <= x <= 20
address
string

Street address to resolve before the radius search. Needs one five-digit ZIP or a city. ZIP takes precedence over city.

Required string length: 1 - 200
unit
string

Unit of the address. Only with address. An explicit unit takes precedence over a unit in the street line.

Required string length: 1 - 16
property_id
string

Parcel geometry: search around the centre of that parcel, with radius_miles. Not allowed with lat, lng or bbox.

Pattern: ^prop_[0-9a-f]{32}$
zip
string[]

ZIP list for a place search. With address, use exactly one five-digit ZIP. ZIP takes precedence over city for an address.

Required array length: 1 - 50 elements
Pattern: ^\d{5}$
city
string

Postal city for a place search or address resolution. With address, ZIP takes precedence when both are present.

Required string length: 1 - 100
segment
enum<string>[]

Keep these assessor segments: SFR, CONDO_TH, or OTHER.

Minimum array length: 1

Parcel segment: SFR, CONDO_TH (condo or townhouse) or OTHER, a mixed bucket of manufactured, multi-family, land and commercial parcels.

Available options:
SFR,
CONDO_TH,
OTHER
beds_min
integer

Minimum assessor bedroom count, inclusive.

Required range: 0 <= x <= 9007199254740991
beds_max
integer

Maximum assessor bedroom count, inclusive.

Required range: 0 <= x <= 9007199254740991
baths_min
number

Minimum assessor bathroom count, inclusive. A half bathroom counts as 0.5.

Required range: 0 <= x <= 9007199254740991
baths_max
number

Maximum assessor bathroom count, inclusive. A half bathroom counts as 0.5.

Required range: 0 <= x <= 9007199254740991
sqft_min
integer

Minimum living area in square feet, inclusive.

Required range: 0 <= x <= 9007199254740991
sqft_max
integer

Maximum living area in square feet, inclusive.

Required range: 0 <= x <= 9007199254740991
year_built_min
integer

Earliest assessor year built, inclusive.

Required range: 1600 <= x <= 2100
year_built_max
integer

Latest assessor year built, inclusive.

Required range: 1600 <= x <= 2100
sold_since
string<date>

Inclusive earliest closing date. Cycles without a closing date do not match.

sold_until
string<date>

Inclusive latest closing date. Cycles without a closing date do not match.

sold_price_min
integer

Inclusive minimum positive closing price, in whole US dollars.

Required range: 0 <= x <= 9007199254740991
sold_price_max
integer

Inclusive maximum positive closing price, in whole US dollars.

Required range: 0 <= x <= 9007199254740991
sort
enum<string>

Order by distance, newest closing date, or closing price. Null values come last. Market and cycle ID break ties.

Available options:
distance,
sold_desc,
sold_price_asc,
sold_price_desc
limit
integer
default:100

Page size, 1-500 (default 100).

Required range: 1 <= x <= 500
cursor
string

Opaque cursor from page.next_cursor of the previous page. A change of query, sort, weights or data version invalidates it (400 invalid_cursor). Then restart from page 1.

Required string length: 1 - 4096

Response

Default Response

data
object[]
required

The rows of this page.

page
object
required

Pagination: the page size, the rows returned and the cursor for the next page. Paged lists carry no total. The summary block does.

meta
object
required

Response metadata: when the API produced it, which markets it covers, and how fresh they are.

summary
object
required