Listings and sales
Homes for sale and for rent near a place, one listing in full, and recent sales.
List properties for sale near a place
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.
query Parameters
latLatitude of the point. Send with lng.
lngLongitude of the point. Send with lat.
radius_milesThe radius around the point, in miles, at most 20.
addressA street line, sent with its one five-digit zip: the data service finds that property and searches around it.
zipUp to 60 five-digit ZIP codes, comma-separated or as repeated zip parameters — or the one ZIP code of an address.
bboxA box to search inside.
on_marketWhether to return only listings on the market now. Defaults to true.
is_rentalNarrows the listings by whether each one is a rental.
sortOne of the data service’s sort orders. Some need a point.
limitHow many rows to return, from 1 to 500. Defaults to 100.
cursorThe 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.
Headers
AuthorizationThe Authorization header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE.
Idempotency-KeyAn 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^[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
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.
path Parameters
listing_id^[0-9a-f]{32}$ · requiredThe 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.
Headers
AuthorizationThe Authorization header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE.
Idempotency-KeyAn 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^[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
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.
query Parameters
latLatitude of the point. Send with lng.
lngLongitude of the point. Send with lat.
radius_milesThe radius around the point, in miles, at most 20.
addressA street line, sent with its one five-digit zip: the data service finds that property and searches around it.
zipUp to 60 five-digit ZIP codes, comma-separated or as repeated zip parameters — or the one ZIP code of an address.
bboxA box to search inside.
sortOne of the data service’s sort orders. Some need a point.
limitHow many rows to return, from 1 to 500. Defaults to 100.
cursorThe 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.
Headers
AuthorizationThe Authorization header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE.
Idempotency-KeyAn 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^[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
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.
query Parameters
latLatitude of the point. Send with lng.
lngLongitude of the point. Send with lat.
radius_milesThe radius around the point, in miles, at most 20.
addressA street line, sent with its one five-digit zip: the data service finds that property and searches around it.
zipUp to 60 five-digit ZIP codes, comma-separated or as repeated zip parameters — or the one ZIP code of an address.
bboxA box to search inside.
fromThe earliest sale date to include. Without from and to, the twelve months before the end of the data service’s listing records.
toThe latest sale date to include.
sortOne of the data service’s sort orders. Some need a point.
limitHow many rows to return, from 1 to 500. Defaults to 100.
cursorThe 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.
Headers
AuthorizationThe Authorization header is used to authenticate with the API using your API key. Value is of the format Bearer YOUR_KEY_HERE.
Idempotency-KeyAn 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^[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.