Investorlift Data Services API

Homes for sale and for rent near a place, one listing in full, and recent sales.


List properties for sale near a place

GET
https://api.investorliftdata.com
/v1/data/listings
Bearer (API key)
or
OpenID Connect

Cost: $0.25 per page

Returns a page of the sale listings near one place.

Where. Send exactly one place: a point (lat and lng) with an optional radius_miles of at most 20; a street address with its zip; a list of up to 60 ZIP codes (zip); or a box (bbox). None, or two at once, is rejected.

on_market and is_rental narrow the listings; sort, limit and cursor page through them.

This is a Metered Call: one page is one call, whatever the page holds. If the data service rejects the request, answers that what it names does not exist, fails or does not answer in time, the charge is returned to the Account as a Refund. An empty page for a place inside the data’s coverage is an answer, and it is charged.

Coverage. A place outside the data’s coverage is refused before anything is charged; the docs page states where the data covers. When the place a request names cannot be checked against the coverage and the answer is empty, the call answers 422 property-not-found and its charge is returned.

List properties for sale near a place › query Parameters

lat
​number · min: -90 · max: 90

Latitude of the point. Send with lng.

lng
​number · min: -180 · max: 180

Longitude of the point. Send with lat.

radius_miles
​number · max: 20

The radius around the point, in miles, at most 20.

address
​string

A street line, sent with its one five-digit zip: the data service finds that property and searches around it.

zip
​string[] · maxItems: 60

Up to 60 five-digit ZIP codes, comma-separated or as repeated zip parameters — or the one ZIP code of an address.

bbox
​string

A box to search inside.

on_market
​boolean

Whether to return only listings on the market now. Defaults to true.

Default: true
is_rental
​boolean

Narrows the listings by whether each one is a rental.

sort
​string

One of the data service’s sort orders. Some need a point.

limit
​integer · min: 1 · max: 500

How many rows to return, from 1 to 500. Defaults to 100.

Default: 100
cursor
​string

The next_cursor of the previous page, to ask for the next one. A cursor stops working when the data is refreshed: start again from the first page.

List properties for sale near a place › Headers

Authorization
​string · required

The Authorization header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE.

Idempotency-Key
​string

An opaque string of your choosing that makes retrying this request safe. Optional — a request without one is never an error, and is charged per call. Reusing a key with the same request — the same path and the same query string — within 24 hours returns the stored result and is not charged again, but only when the earlier call succeeded and its response was stored. If the earlier call was refunded or ended without a stored response, the key is taken over: the new request runs and is charged. Otherwise reusing a key with a different request, or on another endpoint, is refused as a conflict, and nothing is charged for it. If an identical request carrying the same key is still in flight, this one waits briefly for that result; if it does not arrive, the response is 409 with a Retry-After header and nothing is consumed for it. Keys are scoped to your Account — one Account never replays another Account’s result.

X-Customer-Reference
​string · pattern: ^[A-Za-z0-9._:-]{1,6…

Optional. Your own ID for the customer this call is for — an ID, not a name or email. Shown back to you grouped by customer on the Usage page.

List properties for sale near a place › Responses

The data service’s answer: a JSON object carrying data and meta. A valid answer with nothing in it is still an answer, and it is charged.


Read one listing in full

GET
https://api.investorliftdata.com
/v1/data/listings/{listing_id}
Bearer (API key)
or
OpenID Connect

Cost: $0.10 per item

Returns one listing with every version of it, its agents and the holder at the time of listing.

This is a Metered Call. If the data service rejects the request, finds no such listing, fails or does not answer in time, the charge is returned to the Account as a Refund.

Read one listing in full › path Parameters

listing_id
​string · pattern: ^[0-9a-f]{32}$ · required

The data service’s own identifier for one listing: 32 lowercase hexadecimal characters, with no prefix. An identifier in any other form is refused before anything is charged.

Read one listing in full › Headers

Authorization
​string · required

The Authorization header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE.

Idempotency-Key
​string

An opaque string of your choosing that makes retrying this request safe. Optional — a request without one is never an error, and is charged per call. Reusing a key with the same request — the same path and the same query string — within 24 hours returns the stored result and is not charged again, but only when the earlier call succeeded and its response was stored. If the earlier call was refunded or ended without a stored response, the key is taken over: the new request runs and is charged. Otherwise reusing a key with a different request, or on another endpoint, is refused as a conflict, and nothing is charged for it. If an identical request carrying the same key is still in flight, this one waits briefly for that result; if it does not arrive, the response is 409 with a Retry-After header and nothing is consumed for it. Keys are scoped to your Account — one Account never replays another Account’s result.

X-Customer-Reference
​string · pattern: ^[A-Za-z0-9._:-]{1,6…

Optional. Your own ID for the customer this call is for — an ID, not a name or email. Shown back to you grouped by customer on the Usage page.

Read one listing in full › Responses

The data service’s answer: a JSON object carrying data and meta. A valid answer with nothing in it is still an answer, and it is charged.


List rentals near a place

GET
https://api.investorliftdata.com
/v1/data/rental-listings
Bearer (API key)
or
OpenID Connect

Cost: $0.25 per page

Returns a page of the rental listings near one place.

Where. Send exactly one place: a point (lat and lng) with an optional radius_miles of at most 20; a street address with its zip; a list of up to 60 ZIP codes (zip); or a box (bbox). None, or two at once, is rejected.

sort, limit and cursor page through them.

This is a Metered Call: one page is one call, whatever the page holds. If the data service rejects the request, answers that what it names does not exist, fails or does not answer in time, the charge is returned to the Account as a Refund. An empty page for a place inside the data’s coverage is an answer, and it is charged.

Coverage. A place outside the data’s coverage is refused before anything is charged; the docs page states where the data covers. When the place a request names cannot be checked against the coverage and the answer is empty, the call answers 422 property-not-found and its charge is returned.

List rentals near a place › query Parameters

lat
​number · min: -90 · max: 90

Latitude of the point. Send with lng.

lng
​number · min: -180 · max: 180

Longitude of the point. Send with lat.

radius_miles
​number · max: 20

The radius around the point, in miles, at most 20.

address
​string

A street line, sent with its one five-digit zip: the data service finds that property and searches around it.

zip
​string[] · maxItems: 60

Up to 60 five-digit ZIP codes, comma-separated or as repeated zip parameters — or the one ZIP code of an address.

bbox
​string

A box to search inside.

sort
​string

One of the data service’s sort orders. Some need a point.

limit
​integer · min: 1 · max: 500

How many rows to return, from 1 to 500. Defaults to 100.

Default: 100
cursor
​string

The next_cursor of the previous page, to ask for the next one. A cursor stops working when the data is refreshed: start again from the first page.

List rentals near a place › Headers

Authorization
​string · required

The Authorization header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE.

Idempotency-Key
​string

An opaque string of your choosing that makes retrying this request safe. Optional — a request without one is never an error, and is charged per call. Reusing a key with the same request — the same path and the same query string — within 24 hours returns the stored result and is not charged again, but only when the earlier call succeeded and its response was stored. If the earlier call was refunded or ended without a stored response, the key is taken over: the new request runs and is charged. Otherwise reusing a key with a different request, or on another endpoint, is refused as a conflict, and nothing is charged for it. If an identical request carrying the same key is still in flight, this one waits briefly for that result; if it does not arrive, the response is 409 with a Retry-After header and nothing is consumed for it. Keys are scoped to your Account — one Account never replays another Account’s result.

X-Customer-Reference
​string · pattern: ^[A-Za-z0-9._:-]{1,6…

Optional. Your own ID for the customer this call is for — an ID, not a name or email. Shown back to you grouped by customer on the Usage page.

List rentals near a place › Responses

The data service’s answer: a JSON object carrying data and meta. A valid answer with nothing in it is still an answer, and it is charged.


List recent sales near a place

GET
https://api.investorliftdata.com
/v1/data/sold-listing-history
Bearer (API key)
or
OpenID Connect

Cost: $0.25 per page

Returns a page of the sold listings near one place, each with the recorded deed it matched.

Where. Send exactly one place: a point (lat and lng) with an optional radius_miles of at most 20; a street address with its zip; a list of up to 60 ZIP codes (zip); or a box (bbox). None, or two at once, is rejected.

from and to bound the sale date; sort, limit and cursor page through them.

This is a Metered Call: one page is one call, whatever the page holds. If the data service rejects the request, answers that what it names does not exist, fails or does not answer in time, the charge is returned to the Account as a Refund. An empty page for a place inside the data’s coverage is an answer, and it is charged.

Coverage. A place outside the data’s coverage is refused before anything is charged; the docs page states where the data covers. When the place a request names cannot be checked against the coverage and the answer is empty, the call answers 422 property-not-found and its charge is returned.

List recent sales near a place › query Parameters

lat
​number · min: -90 · max: 90

Latitude of the point. Send with lng.

lng
​number · min: -180 · max: 180

Longitude of the point. Send with lat.

radius_miles
​number · max: 20

The radius around the point, in miles, at most 20.

address
​string

A street line, sent with its one five-digit zip: the data service finds that property and searches around it.

zip
​string[] · maxItems: 60

Up to 60 five-digit ZIP codes, comma-separated or as repeated zip parameters — or the one ZIP code of an address.

bbox
​string

A box to search inside.

from
​string · date

The earliest sale date to include. Without from and to, the twelve months before the end of the data service’s listing records.

to
​string · date

The latest sale date to include.

sort
​string

One of the data service’s sort orders. Some need a point.

limit
​integer · min: 1 · max: 500

How many rows to return, from 1 to 500. Defaults to 100.

Default: 100
cursor
​string

The next_cursor of the previous page, to ask for the next one. A cursor stops working when the data is refreshed: start again from the first page.

List recent sales near a place › Headers

Authorization
​string · required

The Authorization header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE.

Idempotency-Key
​string

An opaque string of your choosing that makes retrying this request safe. Optional — a request without one is never an error, and is charged per call. Reusing a key with the same request — the same path and the same query string — within 24 hours returns the stored result and is not charged again, but only when the earlier call succeeded and its response was stored. If the earlier call was refunded or ended without a stored response, the key is taken over: the new request runs and is charged. Otherwise reusing a key with a different request, or on another endpoint, is refused as a conflict, and nothing is charged for it. If an identical request carrying the same key is still in flight, this one waits briefly for that result; if it does not arrive, the response is 409 with a Retry-After header and nothing is consumed for it. Keys are scoped to your Account — one Account never replays another Account’s result.

X-Customer-Reference
​string · pattern: ^[A-Za-z0-9._:-]{1,6…

Optional. Your own ID for the customer this call is for — an ID, not a name or email. Shown back to you grouped by customer on the Usage page.

List recent sales near a place › Responses

The data service’s answer: a JSON object carrying data and meta. A valid answer with nothing in it is still an answer, and it is charged.